GitHub Repos Manager MCP Server
Gerenciamento de automação GitHub baseado em token. Sem Docker, configuração flexível, mais de 80 ferramentas com integração direta à API.
Documentação
GitHub Repos Manager MCP Server
Automação de gerenciamento do GitHub baseada em token. Sem Docker para desempenho ideal, configuração flexível para controle refinado, 89 ferramentas com integração direta à API.
Um servidor abrangente do Model Context Protocol (MCP) que permite que seu cliente MCP (Claude Desktop, Roo Code, Cline, Cursor, Windsurf, etc.) interaja com repositórios do GitHub usando seu token de acesso pessoal do GitHub.
Esta ferramenta simplifica o gerenciamento de repositórios do GitHub usando apenas um token do GitHub para configuração. Ao dispensar o Docker, ela evita complexidade desnecessária, entregando resultados rápidos e eficazes por meio de integração direta com a API.
Este servidor é construído usando Node.js e fornece um kit de ferramentas completo para gerenciamento de repositórios, rastreamento de issues, gerenciamento de colaboração e muito mais, tudo aproveitando a API do GitHub para desempenho ideal.
Pular para Configuração Rápida e Configuração do Cliente MCP
🚀 Principais Vantagens sobre Outros Servidores MCP de Automação do GitHub
🎯 Simplicidade: Acesso baseado em token elimina complexidade. 🌿 Eficiência: Sem Docker garante desempenho leve e ideal. 💪 Poder: 89 ferramentas com integração direta à API oferecem flexibilidade incomparável. 🔒 Flexibilidade: Controle refinado com ferramentas configuráveis.
🎯 Configuração e Operação Simples
✅ Sem necessidade de Docker - Servidor Node.js simples que roda em qualquer lugar
✅ Configuração com um token - Apenas um Token de Acesso Pessoal do GitHub é necessário
✅ Integração direta com a API - Sem dependência do CLI gh, mais rápido e confiável
✅ Zero configuração - Funciona imediatamente apenas com o token
🔒 Segurança e Controle Avançados
✅ Repositórios permitidos - Restrinja operações a repositórios ou proprietários específicos
✅ Gerenciamento de ferramentas - Ative/desative ferramentas específicas para controle refinado
✅ Repositório padrão - Defina um repositório padrão para fluxos de trabalho simplificados
✅ Permissões flexíveis - Configure exatamente o que o servidor pode acessar
💪 Recursos Poderosos
✅ Kit de ferramentas abrangente - 89 ferramentas poderosas para fluxo de trabalho completo do GitHub
✅ Gerenciamento de branches e commits - Crie branches, explore histórico, compare alterações
✅ Suporte a upload de imagens - Envie e incorpore imagens diretamente em issues
✅ Filtragem avançada - Classifique, filtre e pesquise com múltiplos critérios
✅ Gerenciamento de limite de taxa - Gerenciamento integrado do limite de taxa da API do GitHub
🎯 Conjunto Completo de Recursos
📁 Gerenciamento de Repositórios
- Listagem inteligente de repositórios com filtragem por visibilidade (público/privado/todos) e opções de classificação
- Informações detalhadas do repositório incluindo estatísticas, URLs e metadados
- Navegação de arquivos e diretórios com suporte a branches/commits específicos
- Pesquisa de repositórios em todo o GitHub com classificação avançada
- Configuração de repositório padrão para fluxos de trabalho simplificados
🎫 Gerenciamento Avançado de Issues
- Ciclo de vida completo de issues - criar, editar, listar e gerenciar estados
- Suporte a conteúdo rico - envie e incorpore imagens diretamente em issues
- Gerenciamento de labels - adicione, remova e organize com labels personalizados
- Gerenciamento de responsáveis - atribua/desatribua membros da equipe
- Bloqueio/desbloqueio de issues com motivos personalizáveis
- Sistema de comentários - crie, edite, exclua e liste comentários de issues
- Gerenciamento de estado - abra, feche e acompanhe o progresso das issues
🔄 Gerenciamento de Pull Requests
- Listagem de pull requests com filtragem por estado e classificação
- Informações abrangentes de PR incluindo detalhes de branch e status
🌿 Gerenciamento de Branches e Commits
- Operações de branch - liste todos os branches com status de proteção e commits mais recentes
- Criação de branches - crie novos branches a partir de branches ou commits existentes
- Histórico de commits - explore o histórico de commits com filtragem avançada (data, autor, branch)
- Detalhes de commits - obtenha informações abrangentes de commits incluindo alterações de arquivos
- Comparação de commits - compare quaisquer dois commits, branches ou tags para ver diferenças
👥 Gerenciamento de Colaboração e Usuários
- Informações de perfil de usuário para qualquer usuário do GitHub ou sua própria conta
- Gerenciamento de colaboradores de repositório com filtragem por permissão
- Ferramentas de colaboração em equipe para gerenciar acesso e permissões
🎨 Recursos Avançados
- Upload e incorporação de imagens - envie imagens locais diretamente para o GitHub
- Operações em lote - gerencie múltiplos responsáveis, labels e comentários
- Autenticação flexível - acesso seguro à API do GitHub baseado em token
- Tratamento inteligente de erros - relatórios abrangentes de erros e recuperação
Pré-requisitos
Requisitos Mínimos - É Simples Assim!
- Node.js (versão 18 ou superior) - Só isso!
- Token de Acesso Pessoal do GitHub (PAT) - A única configuração necessária
- Vá para GitHub → Configurações → Configurações de desenvolvedor → Tokens de acesso pessoal → Tokens (clássico) ou Tokens de granularidade fina.
- Gere um novo token com pelo menos estes escopos:
repo(Controle total de repositórios privados) - Recomendado para funcionalidade completa.user:readouuser:email(para ler dados de perfil de usuário).read:org(se você precisar acessar informações da organização).
- Importante: Armazene este token com segurança. Você precisará fornecê-lo diretamente na configuração do seu cliente MCP para este servidor (veja o Passo 3 abaixo).
Configuração Rápida
Usando npx (Mais Simples - Sem Necessidade de Instalação!)
Certifique-se de ter o Node.js instalado e use npx para executar o servidor diretamente.
Verifique se você exportou seu token do GitHub como uma variável de ambiente chamada GH_TOKEN ou inclua-o na configuração do seu cliente MCP.
Você pode executar este servidor diretamente sem clonar ou instalar:
# Run directly with npx
npx -y github-repos-manager-mcp
Para macOS/Linux:
{
"mcpServers": {
"github-repos-manager": {
"command": "npx",
"args": [
"-y",
"github-repos-manager-mcp"
],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE"
}
}
}
}
Para Windows, em alguns casos você pode precisar usar npx.cmd em vez de npx:
{
"mcpServers": {
"github-repos-manager": {
"command": "npx.cmd",
"args": [
"-y",
"github-repos-manager-mcp"
],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE"
}
}
}
}
Este comando baixará e executará automaticamente a versão mais recente do servidor sem precisar instalar nada localmente.
Clonar, Instalar e Executar Localmente
Se você preferir executar o servidor localmente, clone o repositório e instale as dependências:
git clone https://github.com/kurdin/github-repos-manager.git
cd github-repos-manager
npm install
Em seguida, configure seu cliente MCP para apontar para o servidor local usando o caminho completo para server.cjs:
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/full/path/to/your/project/github-repos-manager-mcp/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE"
}
}
}
}
Importante: Substitua "ghp_YOUR_ACTUAL_TOKEN_HERE" pelo seu Token de Acesso Pessoal do GitHub real.
3. Testar o Servidor
Uma vez que o cliente MCP esteja configurado com o caminho correto para server.cjs e seu GH_TOKEN, o servidor deve iniciar automaticamente quando o cliente tentar usar uma de suas ferramentas.
Você também pode testar o script do servidor diretamente para autenticação básica, mas isso requer definir temporariamente a variável de ambiente GH_TOKEN no seu shell para este teste específico:
# For direct script testing ONLY (normal operation uses MCP client config)
export GH_TOKEN="ghp_YOUR_TEMPORARY_TEST_TOKEN"
node server.cjs
unset GH_TOKEN # Important: unset after testing
Se for bem-sucedido, você deve ver "GitHub API authentication successful" e "GitHub Repos Manager MCP Server running on stdio".
Nota: O servidor só definirá um repositório padrão se você o configurar explicitamente por meio de variáveis de ambiente, argumentos de linha de comando ou usar a ferramenta set_default_repo. Ele nunca define automaticamente um repositório padrão.
Exemplos de Localizações de Arquivos para Claude Desktop claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json(o caminho pode variar)
⚙️ Opções de Configuração
Configuração de Repositório Padrão
Você pode definir um repositório padrão para simplificar seu fluxo de trabalho e evitar especificar owner e repo em cada comando. Há três maneiras de configurar isso:
1. Variáveis de Ambiente (Recomendado para clientes MCP)
Adicione variáveis de ambiente à configuração do seu cliente MCP:
Usando npx:
{
"mcpServers": {
"github-repos-manager": {
"command": "npx",
"args": ["-y", "github-repos-manager-mcp"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "octocat",
"GH_DEFAULT_REPO": "Hello-World"
}
}
}
}
Usando instalação local:
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/full/path/to/your/project/github-repos-manager-mcp/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "octocat",
"GH_DEFAULT_REPO": "Hello-World"
}
}
}
}
2. Argumentos de Linha de Comando
Ao executar o servidor diretamente, você pode passar configurações de repositório padrão:
node server.cjs --default-owner octocat --default-repo Hello-World
3. Chamada de Ferramenta em Tempo de Execução
Use a ferramenta set_default_repo durante sua conversa para definir ou alterar o repositório padrão:
- "Definir repositório padrão para
microsoft/vscode" - "Alterar o padrão para meu próprio repositório
username/my-project"
Prioridade de Configuração (da mais alta para a mais baixa):
- Argumentos de linha de comando (
--default-owner,--default-repo) - Variáveis de ambiente (
GH_DEFAULT_OWNER,GH_DEFAULT_REPO) - Chamadas de ferramenta em tempo de execução (
set_default_repo)
Benefícios do Repositório Padrão:
- Elimina a necessidade de especificar
ownererepoem cada comando - Simplifica fluxos de trabalho ao trabalhar principalmente com um repositório
- Pode ser alterado a qualquer momento durante sua sessão usando a ferramenta
set_default_repo - Opcional - todas as ferramentas funcionam sem um repositório padrão definido
Uma vez que um repositório padrão é definido, você pode omitir os parâmetros owner e repo dos comandos:
- Em vez de: "Listar issues para microsoft/vscode"
- Simplesmente diga: "Listar issues" (após definir microsoft/vscode como padrão)
Controle de Acesso a Repositórios
Você pode restringir quais repositórios o servidor pode acessar usando a variável de ambiente GH_ALLOWED_REPOS ou o argumento de linha de comando --allowed-repos. Este é um recurso de segurança que garante que o servidor só possa operar em repositórios aprovados.
Configuração de Repositórios Permitidos
1. Variável de Ambiente (para clientes MCP)
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/path/to/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_TOKEN",
"GH_ALLOWED_REPOS": "owner1/repo1,owner2/repo2,owner3"
}
}
}
}
2. Argumento de Linha de Comando
node server.cjs --allowed-repos "microsoft/vscode,facebook/react,google"
Como funciona:
- Caminhos completos de repositórios (
owner/repo): Apenas aquele repositório específico é permitido - Somente proprietário (
owner): Todos os repositórios daquele proprietário são permitidos - Misto: Você pode combinar ambos os formatos
Exemplos:
"microsoft/vscode"- Apenas o repositório vscode da Microsoft"kurdin"- Todos os repositórios pertencentes a kurdin"kurdin,microsoft/vscode,facebook/react"- Todos os repositórios de kurdin mais repositórios específicos
Controle de Acesso a Ferramentas
Desativando Ferramentas Específicas
Desative ferramentas que você não deseja que estejam disponíveis definindo a variável de ambiente GH_DISABLED_TOOLS ou usando o argumento de linha de comando --disabled-tools.
Permitindo Apenas Ferramentas Específicas
Para máxima segurança, você pode restringir o servidor para permitir apenas ferramentas específicas definindo a variável de ambiente GH_ALLOWED_TOOLS ou usando o argumento de linha de comando --allowed-tools.
Importante: Se tanto GH_ALLOWED_TOOLS quanto GH_DISABLED_TOOLS estiverem definidos, GH_ALLOWED_TOOLS tem precedência.
Exemplo Completo de Configuração
Usando npx (macOS/Linux):
{
"mcpServers": {
"github-repos-manager": {
"command": "npx",
"args": ["-y", "github-repos-manager-mcp"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "mycompany",
"GH_DEFAULT_REPO": "main-project",
"GH_ALLOWED_REPOS": "mycompany,trusted-org/specific-repo",
"GH_ALLOWED_TOOLS": "list_issues,create_issue,list_prs,get_repo_info"
}
}
}
}
Usando npx (Windows):
{
"mcpServers": {
"github-repos-manager": {
"command": "npx.cmd",
"args": ["-y", "github-repos-manager-mcp"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "mycompany",
"GH_DEFAULT_REPO": "main-project",
"GH_ALLOWED_REPOS": "mycompany,trusted-org/specific-repo",
"GH_ALLOWED_TOOLS": "list_issues,create_issue,list_prs,get_repo_info"
}
}
}
}
Usando instalação local:
{
"mcpServers": {
"github-repos-manager": {
"command": "node",
"args": ["/full/path/to/your/project/github-repos-manager-mcp/server.cjs"],
"env": {
"GH_TOKEN": "ghp_YOUR_ACTUAL_TOKEN_HERE",
"GH_DEFAULT_OWNER": "mycompany",
"GH_DEFAULT_REPO": "main-project",
"GH_ALLOWED_REPOS": "mycompany,trusted-org/specific-repo",
"GH_ALLOWED_TOOLS": "list_issues,create_issue,list_prs,get_repo_info"
}
}
}
}
Equivalentes de Linha de Comando:
node server.cjs \
--default-owner mycompany \
--default-repo main-project \
--allowed-repos "mycompany,trusted-org/specific-repo" \
--allowed-tools "list_issues,create_issue,list_prs,get_repo_info"
🛠️ Referência Completa de Ferramentas
Este servidor fornece 89 ferramentas abrangentes para gerenciamento completo do fluxo de trabalho do GitHub:
Gerenciamento Avançado de Pull Requests
create_pull_request: Crie um novo pull request com título, corpo e especificações de branch.- Args:
owner(string, opcional),repo(string, opcional),title(string, obrigatório),body(string, opcional),head(string, obrigatório - branch com alterações),base(string, obrigatório - branch de destino),draft(boolean, opcional),maintainer_can_modify(boolean, opcional)
- Args:
edit_pull_request: Atualize o título, corpo, estado ou branch base de um pull request existente.- Args:
owner(string, opcional),repo(string, opcional),pull_number(integer, obrigatório),title(string, opcional),body(string, opcional),state(string, opcional - "open" ou "closed"),base(string, opcional)
- Args:
get_pr_details: Obtenha informações abrangentes sobre um pull request, incluindo status e detalhes de merge.- Args:
owner(string, opcional),repo(string, opcional),pull_number(integer, obrigatório)
- Args:
list_pr_reviews: Liste todas as revisões em um pull request com seus status e comentários.- Args:
owner(string, opcional),repo(string, opcional),pull_number(integer, obrigatório),per_page(integer, opcional, padrão 30)
- Args:
create_pr_review: Envie uma revisão em um pull request com comentários e status de aprovação.- Args:
owner(string, opcional),repo(string, opcional),pull_number(integer, obrigatório),body(string, opcional),event(string, opcional - "APPROVE", "REQUEST_CHANGES", "COMMENT"),comments(array, opcional)
- Args:
list_pr_files: Liste todos os arquivos alterados em um pull request com estatísticas de adições/remoções.- Args:
owner(string, opcional),repo(string, opcional),pull_number(integer, obrigatório),per_page(integer, opcional, padrão 30)
- Args:
Gerenciamento de Arquivos e Conteúdo
create_file: Crie um novo arquivo no repositório com conteúdo e mensagem de commit.- Args:
owner(string, opcional),repo(string, opcional),path(string, obrigatório),content(string, obrigatório),message(string, obrigatório),branch(string, opcional),committer(object, opcional)
- Args:
update_file: Atualize o conteúdo de um arquivo existente com um novo commit.- Args:
owner(string, opcional),repo(string, opcional),path(string, obrigatório),content(string, obrigatório),message(string, obrigatório),sha(string, obrigatório - SHA atual do arquivo),branch(string, opcional)
- Args:
upload_file: Envie um arquivo local para o repositório (arquivos binários suportados).- Args:
owner(string, opcional),repo(string, opcional),local_path(string, obrigatório),repo_path(string, obrigatório),message(string, obrigatório),branch(string, opcional)
- Args:
delete_file: Exclua um arquivo do repositório com uma mensagem de commit.- Args:
owner(string, opcional),repo(string, opcional),path(string, obrigatório),message(string, obrigatório),sha(string, obrigatório - SHA atual do arquivo),branch(string, opcional)
- Args:
Gerenciamento de Segurança e Acesso
list_deploy_keys: Liste todas as chaves de deploy de um repositório com suas permissões.- Args:
owner(string, opcional),repo(string, opcional),per_page(integer, opcional, padrão 30)
- Args:
create_deploy_key: Adicione uma nova chave de deploy ao repositório para acesso seguro.- Args:
owner(string, opcional),repo(string, opcional),title(string, obrigatório),key(string, obrigatório - chave SSH pública),read_only(boolean, opcional, padrão true)
- Args:
delete_deploy_key: Remova uma chave de deploy do repositório.- Args:
owner(string, opcional),repo(string, opcional),key_id(integer, obrigatório)
- Args:
list_webhooks: Liste todos os webhooks configurados para o repositório.- Args:
owner(string, opcional),repo(string, opcional),per_page(integer, opcional, padrão 30)
- Args:
create_webhook: Crie um novo webhook para eventos do repositório.- Args:
owner(string, opcional),repo(string, opcional),config(object, obrigatório - url e content_type),events(array, opcional, padrão ["push"]),active(boolean, opcional)
- Args:
edit_webhook: Atualize a configuração do webhook, eventos ou status ativo.- Args:
owner(string, opcional),repo(string, opcional),hook_id(integer, obrigatório),config(object, opcional),events(array, opcional),active(boolean, opcional)
- Args:
delete_webhook: Remova um webhook do repositório.- Args:
owner(string, opcional),repo(string, opcional),hook_id(integer, obrigatório)
- Args:
list_secrets: Liste os segredos do repositório (apenas nomes, valores são criptografados).- Args:
owner(string, opcional),repo(string, opcional),per_page(integer, opcional, padrão 30)
- Args:
update_secret: Crie ou atualize um segredo do repositório para Actions.- Args:
owner(string, opcional),repo(string, opcional),secret_name(string, obrigatório),encrypted_value(string, obrigatório),key_id(string, obrigatório)
- Args:
GitHub Actions e Workflows
Nota: Essas ferramentas são placeholders para futura integração com GitHub Actions.
list_workflows: Liste todos os workflows do GitHub Actions no repositório.list_workflow_runs: Liste execuções de workflow com opções de filtragem.get_workflow_run_details: Obtenha informações detalhadas sobre uma execução de workflow.trigger_workflow: Acione manualmente um evento de dispatch de workflow.download_workflow_artifacts: Baixe artefatos de uma execução de workflow.cancel_workflow_run: Cancele uma execução de workflow em andamento.
Análises e Insights do Repositório
get_repo_stats: Obtenha estatísticas abrangentes do repositório, incluindo atividade de contribuidores.- Args:
owner(string, opcional),repo(string, opcional)
- Args:
list_repo_topics: Liste todos os tópicos (tags) associados ao repositório.- Args:
owner(string, opcional),repo(string, opcional)
- Args:
update_repo_topics: Atualize os tópicos para melhor descoberta do repositório.- Args:
owner(string, opcional),repo(string, opcional),names(array de strings, obrigatório)
- Args:
get_repo_languages: Obtenha as linguagens de programação usadas no repositório com contagens de bytes.- Args:
owner(string, opcional),repo(string, opcional)
- Args:
list_stargazers: Liste usuários que deram estrela ao repositório.- Args:
owner(string, opcional),repo(string, opcional),per_page(integer, opcional, padrão 30)
- Args:
list_watchers: Liste usuários que estão observando o repositório para notificações.- Args:
owner(string, opcional),repo(string, opcional),per_page(integer, opcional, padrão 30)
- Args:
list_forks: Liste todos os forks do repositório com opções de ordenação.- Args:
owner(string, opcional),repo(string, opcional),sort(string, opcional - "newest", "oldest", "stargazers"),per_page(integer, opcional)
- Args:
get_repo_traffic: Obtenha dados de tráfego do repositório, incluindo visualizações e clones (requer acesso de administrador).- Args:
owner(string, opcional),repo(string, opcional)
- Args:
Busca e Descoberta Avançada
search_issues: Busque issues e pull requests em todo o GitHub.- Args:
query(string, obrigatório),sort(string, opcional - "comments", "reactions", "interactions", "created", "updated"),order(string, opcional - "asc", "desc"),per_page(integer, opcional)
- Args:
search_commits: Busque commits em repositórios.- Args:
query(string, obrigatório),sort(string, opcional - "author-date", "committer-date"),order(string, opcional),per_page(integer, opcional)
- Args:
search_code: Busque código em repositórios do GitHub.- Args:
query(string, obrigatório),sort(string, opcional - "indexed"),order(string, opcional),per_page(integer, opcional)
- Args:
search_users: Busque usuários e organizações.- Args:
query(string, obrigatório),sort(string, opcional - "followers", "repositories", "joined"),order(string, opcional),per_page(integer, opcional)
- Args:
search_topics: Busque tópicos de repositórios.- Args:
query(string, obrigatório),per_page(integer, opcional, padrão 30)
- Args:
Gerenciamento de Organizações
list_org_repos: Liste todos os repositórios em uma organização.- Args:
org(string, obrigatório),type(string, opcional - "all", "public", "private", "forks", "sources", "member"),sort(string, opcional),per_page(integer, opcional)
- Args:
list_org_members: Liste membros de uma organização.- Args:
org(string, obrigatório),filter(string, opcional - "2fa_disabled", "all"),role(string, opcional - "all", "admin", "member"),per_page(integer, opcional)
- Args:
get_org_info: Obtenha informações detalhadas sobre uma organização.- Args:
org(string, obrigatório)
- Args:
list_org_teams: Liste todas as equipes em uma organização.- Args:
org(string, obrigatório),per_page(integer, opcional, padrão 30)
- Args:
get_team_members: Liste membros de uma equipe específica.- Args:
org(string, obrigatório),team_slug(string, obrigatório),role(string, opcional - "member", "maintainer", "all"),per_page(integer, opcional)
- Args:
manage_team_repos: Adicione ou remova acesso de repositório para uma equipe.- Args:
org(string, obrigatório),team_slug(string, obrigatório),owner(string, obrigatório),repo(string, obrigatório),permission(string, opcional - "pull", "push", "admin"),action(string, obrigatório - "add" ou "remove")
- Args:
Projetos e Recursos Avançados
Nota: Algumas dessas ferramentas são placeholders para melhorias futuras.
list_repo_projects: Liste projetos do repositório (projetos clássicos).code_quality_checks: Placeholder para futura análise de qualidade de código.custom_dashboards: Placeholder para criação de dashboard personalizado.automated_reporting: Placeholder para geração automatizada de relatórios.notification_management: Placeholder para configurações de notificação.release_management: Placeholder para recursos de gerenciamento de releases.dependency_analysis: Placeholder para varredura de dependências.
Ferramentas de Gerenciamento de Repositórios
set_default_repo: Define um proprietário e repositório padrão para comandos subsequentes, agilizando seu fluxo de trabalho.- Args:
owner(string, obrigatório),repo(string, obrigatório)
- Args:
list_repos: Lista repositórios do GitHub para o usuário autenticado com filtragem avançada.- Args:
per_page(número, opcional, padrão 10, máx. 100),visibility(string, opcional, enum: "all", "public", "private", padrão "all"),sort(string, opcional, enum: "created", "updated", "pushed", "full_name", padrão "updated")
- Args:
get_repo_info: Obtém informações abrangentes sobre um repositório específico, incluindo estatísticas e metadados.- Args:
owner(string, obrigatório se não houver padrão),repo(string, obrigatório se não houver padrão)
- Args:
search_repos: Pesquisa repositórios no GitHub com opções avançadas de ordenação.- Args:
query(string, obrigatório),per_page(número, opcional, padrão 10, máx. 100),sort(string, opcional, enum: "stars", "forks", "help-wanted-issues", "updated", padrão "stars")
- Args:
get_repo_contents: Navega por arquivos e diretórios em qualquer repositório com suporte a branch/commit.- Args:
owner(string, obrigatório se não houver padrão),repo(string, obrigatório se não houver padrão),path(string, opcional, padrão ""),ref(string, opcional, ex.: nome da branch ou SHA do commit)
- Args:
Ferramentas Avançadas de Gerenciamento de Issues
list_issues: Lista issues com filtragem por estado e paginação abrangente.- Args:
owner(string, obrigatório se não houver padrão),repo(string, obrigatório se não houver padrão),state(string, opcional, enum: "open", "closed", "all", padrão "open"),per_page(número, opcional, padrão 10, máx. 100)
- Args:
create_issue: Cria issues ricas em recursos com upload de imagens, labels e responsáveis.- Args:
owner(string, obrigatório se não houver padrão),repo(string, obrigatório se não houver padrão),title(string, obrigatório),body(string, opcional),image_path(string, opcional, caminho local completo para a imagem),labels(array de strings, opcional),assignees(array de strings, opcional)
- Args:
edit_issue: Modifica issues existentes, incluindo título, corpo, estado, labels, responsáveis e uploads de imagens.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório),title(string, opcional),body(string, opcional),state(string, opcional, enum: "open", "closed"),image_path(string, opcional, caminho local completo para a imagem),labels(array de strings, opcional),assignees(array de strings, opcional)
- Args:
get_issue_details: Obtém informações abrangentes sobre qualquer issue específica.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório)
- Args:
lock_issue: Bloqueia issues para evitar novos comentários, com motivos personalizáveis.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório),lock_reason(string, opcional, enum: "off-topic", "too heated", "resolved", "spam")
- Args:
unlock_issue: Desbloqueia issues anteriormente bloqueadas para retomar discussões.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório)
- Args:
add_assignees_to_issue: Adiciona um ou mais membros da equipe a uma issue.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório),assignees(array de strings, obrigatório)
- Args:
remove_assignees_from_issue: Remove responsáveis de issues para melhor gerenciamento de tarefas.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório),assignees(array de strings, obrigatório)
- Args:
Ferramentas de Gerenciamento de Comentários em Issues
list_issue_comments: Lista todos os comentários de uma issue com filtragem por data/hora.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório),per_page(inteiro, opcional, padrão 30, máx. 100),since(string, opcional, data-hora no formato ISO 8601)
- Args:
create_issue_comment: Adiciona novos comentários a discussões de issues em andamento.- Args:
owner(string, opcional),repo(string, opcional),issue_number(inteiro, obrigatório),body(string, obrigatório)
- Args:
edit_issue_comment: Modifica comentários existentes para correções ou atualizações.- Args:
owner(string, opcional),repo(string, opcional),comment_id(inteiro, obrigatório),body(string, obrigatório)
- Args:
delete_issue_comment: Remove comentários quando necessário para gerenciamento de conteúdo.- Args:
owner(string, opcional),repo(string, opcional),comment_id(inteiro, obrigatório)
- Args:
Ferramentas de Gerenciamento de Pull Requests
list_prs: Lista pull requests com filtragem por estado e paginação.- Args:
owner(string, obrigatório se não houver padrão),repo(string, obrigatório se não houver padrão),state(string, opcional, enum: "open", "closed", "all", padrão "open"),per_page(número, opcional, padrão 10, máx. 100)
- Args:
Ferramentas de Gerenciamento de Branches e Commits
list_branches: Lista todas as branches de um repositório com status de proteção e informações de commit.- Args:
owner(string, opcional),repo(string, opcional),protected_only(booleano, opcional, padrão false),per_page(número, opcional, padrão 30)
- Args:
create_branch: Cria uma nova branch a partir de uma branch ou commit existente.- Args:
owner(string, opcional),repo(string, opcional),branch_name(string, obrigatório),from_branch(string, opcional, padrão é a branch padrão do repositório)
- Args:
list_commits: Lista commits em um repositório com informações detalhadas e opções de filtragem.- Args:
owner(string, opcional),repo(string, opcional),sha(string, opcional, branch/tag/commit para listar a partir de),per_page(número, opcional, padrão 20),since(string, opcional, data-hora no formato ISO 8601),until(string, opcional, data-hora no formato ISO 8601),author(string, opcional, nome de usuário ou e-mail do GitHub)
- Args:
get_commit_details: Obtém informações detalhadas sobre um commit específico, incluindo arquivos alterados.- Args:
owner(string, opcional),repo(string, opcional),commit_sha(string, obrigatório)
- Args:
compare_commits: Compara dois commits ou branches para ver diferenças.- Args:
owner(string, opcional),repo(string, opcional),base(string, obrigatório, branch base ou SHA do commit),head(string, obrigatório, branch head ou SHA do commit)
- Args:
Ferramentas de Usuário e Colaboração
get_user_info: Obtém informações detalhadas sobre qualquer usuário do GitHub ou seu próprio perfil.- Args:
username(string, opcional - padrão é o usuário autenticado)
- Args:
list_repo_collaborators: Lista colaboradores do repositório com filtragem baseada em permissões.- Args:
owner(string, opcional),repo(string, opcional),affiliation(string, opcional, enum: "outside", "direct", "all", padrão "all"),permission(string, opcional, enum: "pull", "triage", "push", "maintain", "admin"),per_page(inteiro, opcional, padrão 30, máx. 100)
- Args:
Ferramentas de Gerenciamento de Labels e Milestones
list_repo_labels: Lista todos os labels de um repositório com suas cores e descrições.- Args:
owner(string, opcional),repo(string, opcional),per_page(inteiro, opcional, padrão 30, máx. 100)
- Args:
create_label: Cria labels personalizados com cores e descrições para melhor organização de issues.- Args:
owner(string, opcional),repo(string, opcional),name(string, obrigatório),color(string, opcional, cor hexadecimal sem #, padrão "f29513"),description(string, opcional)
- Args:
edit_label: Modifica propriedades de labels existentes, incluindo nome, cor e descrição.- Args:
owner(string, opcional),repo(string, opcional),current_name(string, obrigatório),name(string, opcional),color(string, opcional, cor hexadecimal sem #),description(string, opcional)
- Args:
delete_label: Remove labels do repositório quando não forem mais necessários.- Args:
owner(string, opcional),repo(string, opcional),name(string, obrigatório)
- Args:
list_milestones: Lista milestones do repositório com filtragem por estado e opções de ordenação.- Args:
owner(string, opcional),repo(string, opcional),state(string, opcional, enum: "open", "closed", "all", padrão "open"),sort(string, opcional, enum: "due_on", "completeness", padrão "due_on"),direction(string, opcional, enum: "asc", "desc", padrão "asc"),per_page(inteiro, opcional, padrão 30, máx. 100)
- Args:
create_milestone: Cria novos milestones com datas de vencimento para planejamento de projetos.- Args:
owner(string, opcional),repo(string, opcional),title(string, obrigatório),state(string, opcional, enum: "open", "closed", padrão "open"),description(string, opcional),due_on(string, opcional, formato de data-hora ISO 8601)
- Args:
edit_milestone: Atualiza detalhes de milestones, incluindo título, descrição, estado e datas de vencimento.- Args:
owner(string, opcional),repo(string, opcional),milestone_number(inteiro, obrigatório),title(string, opcional),state(string, opcional, enum: "open", "closed"),description(string, opcional),due_on(string, opcional, formato de data-hora ISO 8601)
- Args:
delete_milestone: Remove milestones do repositório quando não forem mais necessários.- Args:
owner(string, opcional),repo(string, opcional),milestone_number(inteiro, obrigatório)
- Args:
💡 Exemplos de Uso e Fluxos de Trabalho
Após a configuração, você pode pedir ao seu cliente MCP (ex.: Claude) para executar operações poderosas no GitHub:
Descoberta e Gerenciamento de Repositórios
- "Liste meus repositórios do GitHub, ordene por data de criação e mostre apenas repositórios privados."
- "Defina o repositório padrão como
octocat/Spoon-Knifepara facilitar o fluxo de trabalho." - "Obtenha informações detalhadas sobre o repositório
microsoft/vscode." - "Mostre-me o conteúdo do arquivo
src/main.jsem microsoft/vscode na branchdevelop." - "Mostre-me o conteúdo do arquivo
src/main.jsno repositório padrão na branchdevelop." (requer repositório padrão definido) - "Liste todos os colaboradores de
my-org/my-repoque têm permissões de administrador." - "Pesquise repositórios correspondentes a 'tensorflow examples language:python' e ordene por estrelas."
Gerenciamento Avançado de Issues
- "Crie uma issue em
my-org/my-repocom o título 'Urgente: Bug de UI' e o corpo 'O botão de login está quebrado no mobile.' Atribua auser1euser2e adicione o rótulobug." - "Crie uma issue com o título 'Solicitação de Recurso' e adicione o rótulo
enhancement." (requer repositório padrão definido) - "Envie uma captura de tela de
/Users/me/screenshots/bug_report.pngpara a issue #42 em microsoft/vscode." - "Envie uma captura de tela de
/Users/me/screenshots/bug_report.pngpara a issue #42 no repositório padrão." (requer repositório padrão definido) - "Edite a issue #15: altere o título para 'Solicitação de Recurso: Modo Escuro', adicione o rótulo
enhancemente feche-a." - "Bloqueie a issue #23 com o motivo 'resolvido' para evitar discussões adicionais."
- "Obtenha detalhes completos da issue #7, incluindo todos os metadados e o estado atual."
- "Remova
old-assigneeda issue #12 e adicionenew-assigneeno lugar."
Gerenciamento de Discussões de Issues
- "Liste todos os comentários na issue #7 da última semana."
- "Adicione um comentário 'Isso está ótimo! Pronto para merge.' na issue #15."
- "Edite o comentário ID 123456 para dizer 'Atualizado: Isso precisa de mais testes antes do merge.'"
- "Exclua o comentário ID 789012 da issue #20."
Gerenciamento de Rótulos e Marcos
- "Liste todos os rótulos em
my-org/my-repopara ver o sistema de organização atual." - "Liste todos os rótulos no repositório padrão para ver o sistema de organização atual." (requer repositório padrão definido)
- "Crie um novo rótulo chamado 'urgente' com cor vermelha (#ff0000) e descrição 'Requer atenção imediata'."
- "Edite o rótulo 'bug' para alterar sua cor para laranja (#FFA500) e atualize a descrição."
- "Exclua o rótulo desatualizado 'legado' do repositório."
- "Liste todos os marcos abertos em
my-org/project-xordenados por data de vencimento." - "Crie um marco 'Lançamento v2.0' com data de vencimento '2025-12-31T23:59:59Z' e descrição 'Lançamento de versão principal'."
- "Edite o marco #3 para alterar o título para 'Metas do Q2' e estender a data de vencimento."
- "Exclua o marco #5, pois não é mais relevante para o projeto."
Pull Requests e Colaboração
- "Liste todos os pull requests abertos para
microsoft/vscode." - "Liste todos os pull requests abertos para o repositório padrão." (requer repositório padrão definido)
- "Mostre-me pull requests fechados do último mês para
my-org/project-x." - "Obtenha informações do meu perfil de usuário do GitHub."
- "Obtenha detalhes do perfil do usuário para
github_username."
Gerenciamento de Branches e Commits
- "Liste todas as branches em
my-org/my-repoe mostre seu status de proteção." - "Liste todas as branches no repositório padrão e mostre seu status de proteção." (requer repositório padrão definido)
- "Mostre apenas branches protegidas em
my-org/secure-repo." - "Crie uma nova branch de recurso chamada
feature/dark-modea partir da branchdevelop." - "Liste os últimos 10 commits na branch
main." - "Mostre-me todos os commits de
john-doeda última semana." - "Obtenha informações detalhadas sobre o commit
abc123def, incluindo todas as alterações de arquivos." - "Compare a branch
maincom afeature/new-uipara ver o que é diferente." - "Mostre-me o histórico de commits entre as tags
v1.0.0ev2.0.0."
Exemplos de Automação de Fluxo de Trabalho
- "Defina
my-org/main-projectcomo padrão e depois liste todas as issues abertas atribuídas a mim." - "Crie uma issue de relatório de bug com o título 'Erro de Login', envie a captura de tela do erro de
/path/to/error.png, atribua adev-teame adicione os rótulosbugehigh-priority." - "Para a issue #50: adicione o responsável
reviewer1, bloqueie-a com o motivo 'resolvido' e adicione um comentário final 'Issue resolvida no PR #51'."
🔧 Solução de Problemas
Problemas de Autenticação
-
Problemas com Token:
- Verifique novamente se o valor de
GH_TOKENna configuração do seu cliente MCP está correto e sem erros de digitação - Garanta que o token não expirou ou foi revogado
- Verifique a validade do token usando curl:
Isso deve retornar suas informações de usuário do GitHub.export TEMP_TOKEN="ghp_YOUR_TOKEN_TO_TEST" curl -H "Authorization: token $TEMP_TOKEN" https://api.github.com/user unset TEMP_TOKEN
- Verifique novamente se o valor de
-
Problemas de Configuração:
- Verifique se
GH_TOKENestá corretamente colocado dentro do objetoenvna configuração do servidor do seu cliente MCP - Garanta que o caminho para
server.cjsseja absoluto e correto - Verifique se a versão do Node.js é 18 ou superior:
node --version - Repositório Padrão: Se você definiu as variáveis de ambiente
GH_DEFAULT_OWNEReGH_DEFAULT_REPO, verifique se estão corretas e se o repositório existe
- Verifique se
-
Problemas de Permissão:
- Garanta que seu token tenha os escopos necessários:
repooupublic_repo(para acesso ao repositório)user(para informações do usuário)read:org(para acesso à organização, se necessário)
- Acesso ao Repositório Padrão: Se estiver usando um repositório padrão, garanta que seu token tenha acesso a esse repositório específico
- Garanta que seu token tenha os escopos necessários:
Problemas de Configuração do Repositório Padrão
- Variáveis de Ambiente Não Funcionando: Verifique novamente a ortografia de
GH_DEFAULT_OWNEReGH_DEFAULT_REPOna configuração do seu cliente MCP - Argumentos de Linha de Comando: Garanta a sintaxe correta ao usar as flags
--default-ownere--default-repo - Problemas com Chamadas de Ferramentas: Use nomes exatos de repositórios: formato
owner/repona ferramentaset_default_repo - Comportamento de Substituição: Lembre-se de que chamadas de ferramentas em tempo de execução podem substituir variáveis de ambiente, e argumentos de linha de comando substituem ambos
Desempenho e Limites de Taxa
- Limites de Taxa da API do GitHub: 5.000 solicitações/hora para usuários autenticados
- Se você atingir os limites, aguarde a janela de redefinição ou use um token diferente
- O servidor inclui tratamento integrado de erros de limite de taxa
Problemas Comuns de Configuração
- Problemas de Caminho: Verifique se o caminho absoluto na configuração do seu Claude Desktop está correto
- Versão do Node.js: Garanta que você está usando Node.js 18 ou superior
- Permissões de Arquivo: Certifique-se de que
server.cjsseja executável:chmod +x server.cjs
Solução de Problemas de Upload de Imagens
- Garanta que os arquivos de imagem existam no caminho local especificado
- Formatos suportados: PNG, JPG, JPEG, GIF, WebP
- Verifique as permissões de arquivo e acessibilidade
- Verifique se o arquivo não está corrompido ou muito grande (o GitHub tem limites de tamanho)
🚦 Limites de Taxa da API e Desempenho
- Limites de Taxa Padrão: A API do GitHub permite 5.000 solicitações por hora para usuários autenticados
- Tratamento Integrado: O servidor inclui tratamento abrangente de erros para respostas de limite de taxa
- Otimização de Desempenho: Solicitações HTTP diretas garantem tempos de resposta mais rápidos em comparação com ferramentas CLI
- Recomendações de Cache: Considere implementar estratégias de cache para dados acessados com frequência
🔒 Melhores Práticas de Segurança
- Segurança do Token: Nunca envie seu
GH_TOKENpara controle de versão ou compartilhe publicamente - Permissões Mínimas: Use tokens com apenas os escopos mínimos necessários para seu caso de uso
- Variáveis de Ambiente: Sempre forneça tokens via bloco
envna configuração do seu cliente MCP - Rotação de Token: Rotacione regularmente seus tokens do GitHub para maior segurança
- Armazenamento Seguro: Armazene tokens com segurança usando o gerenciamento de credenciais do seu sistema
🔄 Desenvolvimento e Contribuição
Configuração de Desenvolvimento Local
# Clone and setup
mkdir github-repos-manager-mcp
cd github-repos-manager-mcp
# Add the server files
npm install
chmod +x server.cjs
# For development testing with nodemon
npm run dev
Testes com Clientes MCP
A abordagem recomendada é configurar seu cliente MCP (por exemplo, Claude Desktop) para apontar para sua versão de desenvolvimento com a configuração adequada de GH_TOKEN. Alterações em server.cjs exigem reiniciar a conexão do servidor.
Testes Diretos de Script
# Temporarily set token for quick verification
export GH_TOKEN="ghp_YOUR_DEVELOPMENT_TOKEN"
node server.cjs
unset GH_TOKEN # Always clean up after testing
📜 Licença
Licença MIT - Sinta-se à vontade para usar, modificar e distribuir este servidor MCP.
