Skip to main content
Glama
jiteshzope

Developer Productivity MCP

by jiteshzope

Developer Productivity MCP

Un servidor FastMCP que expone las capacidades de GitHub, Jira y métricas de ingeniería como herramientas MCP, además de un cliente del OpenAI Agents SDK que las impulsa como flujos de trabajo de múltiples pasos.

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

El modelo nunca habla directamente con GitHub, Jira o PostgreSQL. El servidor MCP posee las credenciales, la paginación, el manejo de errores y la configuración de las respuestas, y devuelve hechos; el agente contribuye con razonamiento y explicación. La prosa no es, por tanto, una herramienta — una herramienta de explicación transferiría el juicio al servidor, donde no puede ver los resultados de las otras herramientas.

Las cuatro herramientas

Herramienta

Backend

Qué hace más allá de envolver la API

search_github_code

GitHub REST

Normaliza los resultados de búsqueda a {repository, path, name, url}

get_jira_sprint_status

Jira Agile

% de finalización, progreso de puntos de historia, tickets bloqueados / de alta prioridad / atrasados / sin asignar / en riesgo, nivel de riesgo del sprint

analyze_pull_request

GitHub REST

Análisis estático del diff: seguridad, base de datos, contrato de API, detección de dependencias y pruebas; análisis de código eliminado; nivel de riesgo puntuado; cambios incompatibles y recomendaciones de revisión

query_project_metrics

PostgreSQL

Seis métricas detrás de una lista de permitidos — el modelo elige un nombre de métrica, nunca SQL

Diseño

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

Configuración

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

Ejecutar

Terminal 1 — el servidor MCP (Streamable HTTP en http://localhost:8000/mcp):

uv run python -m src.server

Terminal 2 — un flujo de trabajo de agente:

# 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 ejecuta el servidor a través de stdio en su lugar, para clientes que lo lanzan como subproceso.

El flujo de trabajo del agente

main.py sprint plantea una pregunta en lenguaje natural, y el agente decide qué herramientas llamar y en qué orden:

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

El paso 2 no necesita ninguna llamada a herramienta. get_jira_sprint_status ya tiene todas las incidencias a mano, por lo que la clasificación de bloqueadas / de alta prioridad / atrasadas se realiza allí, y el agente razona sobre las blocked_tickets y high_priority_tickets devueltas para elegir qué ver a continuación. Dividir eso en un segundo viaje de ida y vuelta costaría una solicitud y no añadiría nada.

Notas de diseño

  • analyze_pull_request puntúa el riesgo a partir de nombres de archivo, parches del diff y coincidencias de patrones, no a partir de un LLM que lee el código. Es barato, determinista y reproducible; una etapa de revisión con LLM sobre los parches de mayor riesgo es la extensión planificada.

  • Los IDs de los campos personalizados de puntos de historia y los IDs de tablero de Jira difieren según la instalación, por lo que JIRA_BOARD_ID y JIRA_STORY_POINTS_FIELD son configuración en lugar de constantes.

  • query_project_metrics lee las tablas en sql/schema.sql, que esperan un trabajo de ingesta que cargue el historial de GitHub/Jira/CD.

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jiteshzope/Custom-MCP-server-Agentic-workflow-for-developer-productivity'

If you have feedback or need assistance with the MCP directory API, please join our Discord server