ZenHub
Acesse a API GraphQL do ZenHub para gerenciar fluxos de trabalho de projetos e aumentar a produtividade.
Documentação
Servidor MCP ZenHub
Um servidor MCP (Model Context Protocol) que fornece acesso completo à API GraphQL do ZenHub.
Recursos
- Acesso GraphQL Completo: Execute qualquer consulta GraphQL contra a API do ZenHub
- Operações Comuns: Ferramentas integradas para tarefas frequentes como criar issues, épicos, workspaces e sprints
- Autenticação Segura: Autenticação baseada em chave de API para todas as solicitações
- Tratamento de Erros: Tratamento e validação abrangentes de erros
Instalação
Para Desenvolvimento
npm install
npm run build
Configurar Chave de API
-
Obtenha sua chave de API do ZenHub em Configurações do ZenHub
-
Defina a variável de ambiente:
export ZENHUB_API_KEY=your_api_key_here
Ou crie um arquivo .env (copie de .env.example):
cp .env.example .env
# Edit .env and add your API key
Para Claude Desktop
- Compile o servidor:
npm install
npm run build
- Adicione à configuração do Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.jsonno macOS):
{
"mcpServers": {
"zenhub": {
"command": "npx",
"args": ["zenhub-mcp-server"],
"env": {
"ZENHUB_API_KEY": "your_api_key_here"
}
}
}
}
Para Cursor
- Compile o servidor:
npm install
npm run build
- No Cursor, vá para Configurações > Servidores MCP e adicione:
{
"name": "zenhub",
"command": "node",
"args": ["/path/to/zenhub-mcp/dist/index.js"],
"env": {
"ZENHUB_API_KEY": "zh_",
"GITHUB_PAT": "github_pat_"
}
}
Ou use o servidor de desenvolvimento:
{
"name": "zenhub-dev",
"command": "npm",
"args": ["run", "dev"],
"cwd": "/path/to/zenhub-mcp",
"env": {
"ZENHUB_API_KEY": "your_api_key_here"
}
}
Ferramentas
O servidor fornece 54 ferramentas em 10 categorias, implementando as operações mais comuns do ZenHub:
Nenhuma chave de API necessária nas chamadas de ferramenta - Defina a variável de ambiente ZENHUB_API_KEY uma vez e use todas as ferramentas!
Ferramentas de Consulta (7 ferramentas)
zenhub_query
Execute qualquer consulta GraphQL contra a API do ZenHub.
query(obrigatório): String de consulta GraphQLvariables(opcional): Variáveis para a consulta
zenhub_search_issues
Pesquise issues em um pipeline.
pipeline_id(obrigatório): ID do pipeline para pesquisarquery(opcional): Consulta de pesquisa para o títulofilters(opcional): Objeto com filtros para labels e responsáveis
zenhub_search_issues_in_repository
Pesquise e filtre issues dentro do repositório.
repository_id(obrigatório): ID do repositório para pesquisarquery(opcional): Consulta de pesquisafilters(opcional): Opções de filtro
zenhub_get_workspace_issues
Obtenha todas as issues em um workspace (paginado).
workspace_id(obrigatório): ID do workspaceafter(opcional): Cursor para paginação
zenhub_get_viewer
Obtenha informações do usuário atual do ZenHub.
zenhub_get_issue_by_info
Consulte uma issue por repositório e número da issue.
repository_gh_id(obrigatório): ID do repositório GitHubissue_number(obrigatório): Número da issue
zenhub_get_repositories
Consulte repositórios pelos seus IDs do GitHub.
repository_gh_ids(obrigatório): Matriz de IDs de repositórios GitHub
Gerenciamento de Issues (13 ferramentas)
zenhub_create_issue
Crie uma nova issue no GitHub via ZenHub.
title(obrigatório): Título da issuerepository_id(obrigatório): ID do repositóriobody(opcional): Descrição da issuelabels(opcional): Matriz de nomes de labelsassignees(opcional): Matriz de nomes de usuários GitHub
zenhub_close_issues
Feche uma ou mais issues.
issue_ids(obrigatório): Matriz de IDs de issues
zenhub_reopen_issues
Reabra uma ou mais issues fechadas.
issue_ids(obrigatório): Matriz de IDs de issuespipeline_id(obrigatório): ID do pipeline para mover as issuesposition(opcional): Posição no pipeline (START ou END)
zenhub_move_issue
Mova issues para uma posição em um pipeline.
issue_ids(obrigatório): Matriz de IDs de issuespipeline_id(obrigatório): ID do pipeline para mover as issuesposition(opcional): Posição no pipeline (baseado em 0)
zenhub_add_assignees_to_issues
Adicione responsáveis a múltiplas issues.
issue_ids(obrigatório): Matriz de IDs de issuesassignees(obrigatório): Matriz de nomes de usuários GitHub
zenhub_add_labels_to_issues
Adicione labels a múltiplas issues.
issue_ids(obrigatório): Matriz de IDs de issueslabels(obrigatório): Matriz de nomes de labels
zenhub_set_estimate
Defina uma estimativa para uma issue.
issue_id(obrigatório): ID da issuevalue(obrigatório): Valor da estimativa
zenhub_set_multiple_estimates
Defina estimativas em múltiplas issues.
estimates(obrigatório): Matriz de pares de ID de issue e valor de estimativa
zenhub_add_issues_to_epics
Adicione issues a épicos.
issue_ids(obrigatório): Matriz de IDs de issuesepic_ids(obrigatório): Matriz de IDs de épicos
Gerenciamento de Épicos (1 ferramenta)
zenhub_create_epic
Crie um novo épico no ZenHub.
title(obrigatório): Título do épicorepository_id(obrigatório): ID do repositóriobody(opcional): Descrição do épico
Gerenciamento de Workspaces (4 ferramentas)
zenhub_get_user_workspaces
Obtenha todos os workspaces acessíveis ao usuário atual.
query(opcional): Consulta de pesquisa para filtrar workspacesfirst(opcional): Número de workspaces a retornar (padrão: 20)
zenhub_get_user_organizations
Obtenha todas as organizações ZenHub acessíveis ao usuário atual.
query(opcional): Consulta de pesquisa para filtrar organizaçõesfirst(opcional): Número de organizações a retornar (padrão: 10)
zenhub_get_organization_workspaces
Obtenha todos os workspaces dentro de uma organização ZenHub específica.
organization_id(obrigatório): ID da organização ZenHubquery(opcional): Consulta de pesquisa para filtrar workspacesfirst(opcional): Número de workspaces a retornar (padrão: 20)
zenhub_create_workspace
Crie um novo workspace no ZenHub.
name(obrigatório): Nome do workspacedescription(opcional): Descrição do workspaceorganization_id(obrigatório): ID da organização ZenHubrepository_ids(obrigatório): Matriz de IDs de repositórios GitHubdefault_repository_id(opcional): ID do repositório padrão
Gerenciamento de Sprints (2 ferramentas)
zenhub_create_sprint
Crie um novo sprint.
name(obrigatório): Nome do sprintstart_date(obrigatório): Data de início (formato ISO)end_date(obrigatório): Data de término (formato ISO)workspace_id(obrigatório): ID do workspacetimezone(opcional): Identificador de fuso horáriosettings(opcional): Objeto de configurações do sprint
zenhub_add_issues_to_sprints
Adicione issues a sprints.
issue_ids(obrigatório): Matriz de IDs de issuessprint_ids(obrigatório): Matriz de IDs de sprints
Arquitetura
O servidor usa uma arquitetura modular para fácil expansão:
src/
├── index.ts # Main MCP server
├── types.ts # TypeScript interfaces
└── tools/
├── index.ts # Tool registry
├── base.ts # Base tool class
├── queries.ts # Query tools
├── issues.ts # Issue management tools
├── epics.ts # Epic management tools
├── workspaces.ts # Workspace management tools
└── sprints.ts # Sprint management tools
Adicionando Novas Ferramentas
- Crie uma nova classe de ferramenta estendendo
BaseToolno arquivo de categoria apropriado - Adicione-a ao array de exportação de ferramentas
- A ferramenta será automaticamente registrada no servidor MCP
Referência de Operações Disponíveis
Todas as 176 operações GraphQL disponíveis do ZenHub estão documentadas em:
zenhub_api_operations.json- Lista completa de operações com descriçõesmutations.json- Todas as 157 mutaçõesqueries.json- Todas as 19 consultas
A implementação atual cobre 54 de 176 operações (30,7%)
Desenvolvimento
npm run dev
Variáveis de Ambiente
ZENHUB_API_KEY(obrigatório): Sua chave de API do ZenHub de Configurações do ZenHubZENHUB_MCP_CUSTOM_INSTRUCTIONS(opcional): Forneça instruções adicionais para o servidor MCP. Se definido, este valor será anexado às instruções padrão que o servidor envia ao modelo. Use novas linhas regulares ou sequências de escape\npara formatar prompts de múltiplas linhas.
Endpoint GraphQL
Este servidor se conecta a: https://api.zenhub.com/public/graphql