forked from cardosofelipe/fast-next-template
Updated line breaks and indentation for improved readability in circuit state recovery logic, ensuring consistent style.
Syndarix MCP Servers
Model Context Protocol (MCP) servers providing tool access for Syndarix agents.
Per ADR-005, 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:
- Exposes tools via Model Context Protocol
- Requires
project_idfor all operations (explicit scoping) - Uses Redis for pub/sub communication with agents
- 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.
# 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:
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.