# 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.