A Model Context Protocol (MCP) server implementation for managing development context and workflow.
- Socket-based transport with reliable message framing
- Full JSON-RPC 2.0 protocol support
- Session management with capability negotiation
- Extensible tool registry system
- Project, workpackage, and task management
- Checkpoint and restore functionality
- QA review workflow support
# Install dependencies
npm install
# First-time build
npm run build
# Development mode (no build required, uses tsx for on-the-fly compilation)
npm run dev
# Production mode (requires build)
npm start
# Start with debug logging
DEBUG=1 npm run dev
# Start on specific port
MCP_PORT=44558 npm run dev
# Run with hot reloading (preferred during development)
npm run dev
# Watch mode for TypeScript compilation (if you prefer running the compiled version)
npm run watch
# In a separate terminal when using watch mode
npm start
If you encounter any issues, you can try a clean build:
# Remove build artifacts
rm -rf dist/
# Reinstall dependencies
npm ci
# Rebuild the project
npm run build
# Start in development mode
npm run dev
-
Message Framing
- Content-Length based protocol
- Reliable message boundary handling
- Buffer management
-
Transport Layer
- TCP socket-based communication
- Connection management
- Event-driven architecture
-
Session Management
- Client session tracking
- Capability negotiation
- State persistence
-
Tool Registry
- Dynamic tool registration
- Input validation
- Result formatting
-
Project Management
- Create/Get projects
- Project checkpoints
- State restoration
-
Work Package Management
- Create/Get work packages
- Progress tracking
- Status updates
-
Task Management
- Create/Update tasks
- File change tracking
- Task checkpointing
-
QA Tools
- Review workflow
- Fix requests
- Work package acceptance
Environment variables:
DEBUG
: Enable debug logging (0/1)MCP_PORT
: Server port (default: 44557)
The server implements the Model Context Protocol with JSON-RPC 2.0:
interface MCPMessage {
jsonrpc: "2.0";
id: number;
method?: string; // for requests
params?: any; // for requests
result?: any; // for responses
error?: { // for error responses
code: number;
message: string;
data?: any;
};
}
- Client connects via TCP
- Client sends initialize request
- Server responds with capabilities
- Normal message exchange begins
- Client can shutdown/exit
See Initial Setup and Development Mode sections above.
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
ISC License