Skip to main content
Glama
jiteshzope

Developer Productivity MCP

by jiteshzope

Developer Productivity MCP

Ein FastMCP-Server, der Funktionen für GitHub, Jira und Engineering-Metriken als MCP-Tools bereitstellt, plus einen Client für das OpenAI Agents SDK, der sie als mehrstufige Workflows steuert.

                         ┌──────────────────┐
                         │      User        │
                         └────────┬─────────┘
                                  │
                                  ▼
                         ┌──────────────────┐
                         │ OpenAI Agent     │
                         │ Agents SDK       │
                         └────────┬─────────┘
                                  │
                            MCP Protocol
                                  │
                                  ▼
                    ┌─────────────────────────┐
                    │ FastMCP Server          │
                    │                         │
                    │ search_github_code      │
                    │ get_jira_sprint_status  │
                    │ analyze_pull_request    │
                    │ query_project_metrics   │
                    └──────┬──────┬──────┬────┘
                           │      │      │
                     GitHub API  Jira   PostgreSQL

Das Modell kommuniziert nie direkt mit GitHub, Jira oder PostgreSQL. Der MCP-Server verwaltet die Anmeldedaten, Pagination, Fehlerbehandlung und Antwortformatierung und liefert Fakten; der Agent trägt Begründung und Erklärung bei. Prosa ist daher kein Tool – ein Erklärungstool würde die Bewertung in den Server verlagern, wo er die Ergebnisse der anderen Tools nicht sehen kann.

Die vier Tools

Tool

Backend

Was es über das Kapseln der API hinaus tut

search_github_code

GitHub REST

Normalisiert Suchtreffer auf {repository, path, name, url}

get_jira_sprint_status

Jira Agile

Abschluss in %, Story-Point-Fortschritt, blockierte / hochpriorisierte / überfällige / nicht zugewiesene / gefährdete Tickets, Sprint-Risikostufe

analyze_pull_request

GitHub REST

Statische Analyse des Diffs: Sicherheits-, Datenbank-, API-Vertrags-, Abhängigkeits- und Testerkennung; Analyse des gelöschten Codes; bewertete Risikostufe; Empfehlungen zu Breaking Changes und Review

query_project_metrics

PostgreSQL

Sechs Metriken hinter einer Zulassungsliste – das Modell wählt einen Metriknamen, niemals SQL

Related MCP server: GitHub Dev Copilot

Layout

.
├── main.py                     # agent-side CLI entry point
├── .env.example
├── agent/
│   ├── developer_agent.py      # agent definitions + instructions
│   └── workflows.py            # multi-step agentic workflows
├── src/
│   ├── config.py               # MCP server environment
│   ├── pr_analysis.py          # PR static-analysis helpers
│   └── server.py               # FastMCP server + the four tools
└── sql/
    └── schema.sql              # tables backing query_project_metrics

Einrichtung

uv sync
cp .env.example .env      # then fill in your credentials
psql "$DATABASE_URL" -f sql/schema.sql

Ausführen

Terminal 1 – der MCP-Server (Streamable HTTP auf http://localhost:8000/mcp):

uv run python -m src.server

Terminal 2 – ein Agent-Workflow:

# GitHub code search
uv run python main.py search --repository my-org/payments-api --query retry

# pull-request risk analysis
uv run python main.py pr --repository my-org/payments-api --number 142

# the full multi-tool sprint investigation
uv run python main.py sprint --project PAY --sprint 42

MCP_TRANSPORT=stdio führt den Server stattdessen über stdio aus, für Clients, die ihn als Unterprozess starten.

Der agentenbasierte Workflow

main.py sprint stellt eine Frage in natürlicher Sprache, und der Agent entscheidet, welche Tools er in welcher Reihenfolge aufruft:

1. get_jira_sprint_status()
             ↓
2. Agent selects the tickets worth investigating
             ↓
3. search_github_code()
             ↓
4. analyze_pull_request()
             ↓
5. query_project_metrics()
             ↓
6. Agent generates explanation

Schritt 2 benötigt keinen Tool-Aufruf. get_jira_sprint_status hat bereits alle Tickets zur Hand, sodass die Klassifizierung in blockiert, hohe Priorität und überfällig dort erfolgt, und der Agent denkt über die zurückgegebenen blocked_tickets und high_priority_tickets nach, um zu entscheiden, was er sich als Nächstes ansieht. Dies in eine zweite Runde aufzuteilen würde eine Anfrage kosten und nichts hinzufügen.

Designhinweise

  • analyze_pull_request bewertet Risiken anhand von Dateinamen, Diff-Patches und Musterübereinstimmungen, nicht durch ein LLM, das den Code liest. Es ist kostengünstig, deterministisch und reproduzierbar; eine LLM-Review-Stufe für die Patches mit dem höchsten Risiko ist die geplante Erweiterung.

  • Die benutzerdefinierten Feld-IDs für Story-Points und die Board-IDs unterscheiden sich in Jira je nach Installation, daher sind JIRA_BOARD_ID und JIRA_STORY_POINTS_FIELD Konfiguration und keine Konstanten.

  • query_project_metrics liest die Tabellen in sql/schema.sql, die einen Ingestion-Job erwarten, der den GitHub-/Jira-/CD-Verlauf lädt.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with GitHub via MCP, managing repositories, issues, PRs, and analyzing repository health through tools like list_repositories, read_issues, create_issue, comment_on_pr, and analyze_repo_health.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language analysis of GitHub repositories by exposing repository metadata, source code retrieval, search, and file reading as MCP tools, with answers grounded in the actual repository content.
    -