Files
syndarix/mcp-servers
Felipe Cardoso 9dfa76aa41 feat(mcp): implement Git Operations MCP server with Gitea provider
Implements the Git Operations MCP server (Issue #58) providing:

Core features:
- GitPython wrapper for local repository operations (clone, commit, push, pull, diff, log)
- Branch management (create, delete, list, checkout)
- Workspace isolation per project with file-based locking
- Gitea provider for remote PR operations

MCP Tools (17 registered):
- clone_repository, git_status, create_branch, list_branches
- checkout, commit, push, pull, diff, log
- create_pull_request, get_pull_request, list_pull_requests
- merge_pull_request, get_workspace, lock_workspace, unlock_workspace

Technical details:
- FastMCP + FastAPI with JSON-RPC 2.0 protocol
- pydantic-settings for configuration (env prefix: GIT_OPS_)
- Comprehensive error hierarchy with structured codes
- 131 tests passing with 67% coverage
- Async operations via ThreadPoolExecutor

Closes: #105, #106, #107, #108, #109

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 20:48:20 +01:00
..

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:

  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.

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