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 运行服务器,适用于客户端 将其作为子进程启动。

代理工作流

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 故事点自定义字段 ID 和看板 ID 因安装而异,因此 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.
    -