feat: Add MCP server stubs, development docs, and Docker updates
- Add MCP server skeleton implementations for all 7 planned servers (llm-gateway, knowledge-base, git, issues, filesystem, code-analysis, cicd) - Add comprehensive DEVELOPMENT.md with setup and usage instructions - Add BACKLOG.md with detailed phase planning - Update docker-compose.dev.yml with Redis and Celery workers - Update CLAUDE.md with Syndarix-specific context Addresses issues #16, #20, #21 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
70
mcp-servers/README.md
Normal file
70
mcp-servers/README.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Syndarix MCP Servers
|
||||
|
||||
Model Context Protocol (MCP) servers providing tool access for Syndarix agents.
|
||||
|
||||
Per [ADR-005](../docs/adrs/ADR-005-mcp-integration.md), all tools require explicit project scoping.
|
||||
|
||||
## Server Overview
|
||||
|
||||
| Server | Priority | Purpose | Phase |
|
||||
|--------|----------|---------|-------|
|
||||
| llm-gateway | 1 | LLM routing with failover and cost tracking | Phase 2 |
|
||||
| knowledge-base | 2 | RAG with pgvector for semantic search | Phase 2 |
|
||||
| git | 3 | Git operations (clone, commit, push, PR) | Phase 2 |
|
||||
| issues | 4 | Issue tracker sync (Gitea, GitHub, GitLab) | Phase 2 |
|
||||
| filesystem | 5 | Sandboxed file operations | Phase 5 |
|
||||
| code-analysis | 6 | AST parsing, linting, type checking | Phase 5 |
|
||||
| cicd | 7 | CI/CD pipeline management | Phase 5 |
|
||||
|
||||
## Architecture
|
||||
|
||||
Each MCP server is a FastMCP application that:
|
||||
1. Exposes tools via Model Context Protocol
|
||||
2. Requires `project_id` for all operations (explicit scoping)
|
||||
3. Uses Redis for pub/sub communication with agents
|
||||
4. Logs all operations to PostgreSQL for audit
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ Agent Runner │
|
||||
│ │ │
|
||||
│ ┌─────────────┼─────────────┐ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||||
│ │ LLM GW │ │ Git │ │ Issues │ ... (7 total) │
|
||||
│ │ MCP │ │ MCP │ │ MCP │ │
|
||||
│ └──────────┘ └──────────┘ └──────────┘ │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Running Locally
|
||||
|
||||
Each MCP server runs as a separate Docker container. See `docker-compose.dev.yml` for configuration.
|
||||
|
||||
```bash
|
||||
# Start all MCP servers (Phase 2+)
|
||||
docker-compose -f docker-compose.dev.yml up -d llm-gateway knowledge-base git issues
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f llm-gateway
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
Each server follows the FastMCP pattern:
|
||||
|
||||
```python
|
||||
from fastmcp import FastMCP
|
||||
|
||||
mcp = FastMCP("server-name")
|
||||
|
||||
@mcp.tool()
|
||||
def my_tool(project_id: str, ...):
|
||||
"""Tool with required project scoping."""
|
||||
# Validate project access
|
||||
# Execute operation
|
||||
# Log for audit
|
||||
pass
|
||||
```
|
||||
|
||||
See individual server READMEs for specific tool documentation.
|
||||
Reference in New Issue
Block a user