Skip to main content
Glama
jiteshzope

Developer Productivity MCP

by jiteshzope

Developer Productivity MCP

Сервер FastMCP, который предоставляет возможности GitHub, Jira и инженерных метрик в виде инструментов MCP, а также клиент OpenAI Agents SDK, который управляет ими как многошаговыми рабочими процессами.

                         ┌──────────────────┐
                         │      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

Модель никогда не обращается к GitHub, Jira или PostgreSQL напрямую. Сервер MCP отвечает за учётные данные, пагинацию, обработку ошибок и формирование ответов и возвращает факты; агент вносит рассуждения и объяснения. Поэтому текст — не инструмент: инструмент объяснений передавал бы принятие решений на сервер, где сервер не видит результаты других инструментов.

Четыре инструмента

Инструмент

Бэкенд

Что делает помимо обёртки над API

search_github_code

GitHub REST

Нормализует результаты поиска до {repository, path, name, url}

get_jira_sprint_status

Jira Agile

Процент завершения, прогресс по стори-пойнтам, заблокированные / высокоприоритетные / просроченные / неназначенные / рискованные задачи, уровень риска спринта

analyze_pull_request

GitHub REST

Статический анализ diff: выявление проблем безопасности, базы данных, API-контракта, зависимостей и тестов; анализ удалённого кода; оценка уровня риска; рекомендации по критическим изменениям и ревью

query_project_metrics

PostgreSQL

Шесть метрик через белый список — модель выбирает имя метрики, а не SQL

Related MCP server: GitHub Dev Copilot

Структура

.
├── 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

Настройка

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

Запуск

Терминал 1 — сервер MCP (Streamable HTTP на http://localhost:8000/mcp):

uv run python -m src.server

Терминал 2 — рабочий процесс агента:

# 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 запускает сервер через stdio вместо HTTP, для клиентов, которые запускают его как подпроцесс.

Агентный рабочий процесс

main.py sprint задаёт один вопрос на естественном языке, а агент решает, какие инструменты вызывать и в каком порядке:

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

Шаг 2 не требует вызова инструмента. get_jira_sprint_status уже имеет все задачи, поэтому классификация заблокированных / высокоприоритетных / просроченных выполняется там, а агент рассуждает над возвращёнными blocked_tickets и high_priority_tickets, чтобы выбрать, что смотреть дальше. Разделение этого на второй раунд обмена обошлось бы в дополнительный запрос и не дало бы ничего.

Заметки по дизайну

  • analyze_pull_request оценивает риск по именам файлов, патчам diff и совпадениям с паттернами, а не по чтению кода LLM. Это дёшево, детерминированно и воспроизводимо; этап ревью LLM для патчей с самым высоким риском — запланированное расширение.

  • Идентификаторы настраиваемых полей стори-пойнтов Jira и идентификаторы досок различаются в зависимости от установки, поэтому JIRA_BOARD_ID и JIRA_STORY_POINTS_FIELD являются конфигурацией, а не константами.

  • query_project_metrics читает таблицы в sql/schema.sql, которые ожидают задачу приёма данных, загружающую историю GitHub/Jira/CD.

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