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-svgrepo-logo 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!

  1. Node.js (versão 18 ou superior) - Só isso!
  2. 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:read ou user: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):

  1. Argumentos de linha de comando (--default-owner, --default-repo)
  2. Variáveis de ambiente (GH_DEFAULT_OWNER, GH_DEFAULT_REPO)
  3. Chamadas de ferramenta em tempo de execução (set_default_repo)

Benefícios do Repositório Padrão:

  • Elimina a necessidade de especificar owner e repo em 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)
  • 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)
  • 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)
  • 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)
  • 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)
  • 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)

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)
  • 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)
  • 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)
  • 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)

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)
  • 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)
  • delete_deploy_key: Remova uma chave de deploy do repositório.
    • Args: owner (string, opcional), repo (string, opcional), key_id (integer, obrigatório)
  • 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)
  • 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)
  • 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)
  • delete_webhook: Remova um webhook do repositório.
    • Args: owner (string, opcional), repo (string, opcional), hook_id (integer, obrigatório)
  • 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)
  • 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)

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)
  • list_repo_topics: Liste todos os tópicos (tags) associados ao repositório.
    • Args: owner (string, opcional), repo (string, opcional)
  • 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)
  • get_repo_languages: Obtenha as linguagens de programação usadas no repositório com contagens de bytes.
    • Args: owner (string, opcional), repo (string, opcional)
  • 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)
  • 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)
  • 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)
  • 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)

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)
  • 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)
  • 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)
  • 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)
  • search_topics: Busque tópicos de repositórios.
    • Args: query (string, obrigatório), per_page (integer, opcional, padrão 30)

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)
  • 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)
  • get_org_info: Obtenha informações detalhadas sobre uma organização.
    • Args: org (string, obrigatório)
  • list_org_teams: Liste todas as equipes em uma organização.
    • Args: org (string, obrigatório), per_page (integer, opcional, padrão 30)
  • 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)
  • 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")

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)
  • 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")
  • 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)
  • 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")
  • 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)

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)
  • 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)
  • 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)
  • 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)
  • 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")
  • unlock_issue: Desbloqueia issues anteriormente bloqueadas para retomar discussões.
    • Args: owner (string, opcional), repo (string, opcional), issue_number (inteiro, obrigatório)
  • 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)
  • 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)

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)
  • 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)
  • 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)
  • 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)

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)

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)
  • 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)
  • 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)
  • 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)
  • 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)

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)
  • 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)

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)
  • 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)
  • 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)
  • 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)
  • 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)
  • 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)
  • 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)
  • 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)

💡 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-Knife para facilitar o fluxo de trabalho."
  • "Obtenha informações detalhadas sobre o repositório microsoft/vscode."
  • "Mostre-me o conteúdo do arquivo src/main.js em microsoft/vscode na branch develop."
  • "Mostre-me o conteúdo do arquivo src/main.js no repositório padrão na branch develop." (requer repositório padrão definido)
  • "Liste todos os colaboradores de my-org/my-repo que 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-repo com o título 'Urgente: Bug de UI' e o corpo 'O botão de login está quebrado no mobile.' Atribua a user1 e user2 e adicione o rótulo bug."
  • "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.png para a issue #42 em microsoft/vscode."
  • "Envie uma captura de tela de /Users/me/screenshots/bug_report.png para 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 enhancement e 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-assignee da issue #12 e adicione new-assignee no 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-repo para 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-x ordenados 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-repo e 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-mode a partir da branch develop."
  • "Liste os últimos 10 commits na branch main."
  • "Mostre-me todos os commits de john-doe da última semana."
  • "Obtenha informações detalhadas sobre o commit abc123def, incluindo todas as alterações de arquivos."
  • "Compare a branch main com a feature/new-ui para ver o que é diferente."
  • "Mostre-me o histórico de commits entre as tags v1.0.0 e v2.0.0."

Exemplos de Automação de Fluxo de Trabalho

  • "Defina my-org/main-project como 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 a dev-team e adicione os rótulos bug e high-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

  1. Problemas com Token:

    • Verifique novamente se o valor de GH_TOKEN na 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:
      export TEMP_TOKEN="ghp_YOUR_TOKEN_TO_TEST"
      curl -H "Authorization: token $TEMP_TOKEN" https://api.github.com/user
      unset TEMP_TOKEN
      
      Isso deve retornar suas informações de usuário do GitHub.
  2. Problemas de Configuração:

    • Verifique se GH_TOKEN está corretamente colocado dentro do objeto env na configuração do servidor do seu cliente MCP
    • Garanta que o caminho para server.cjs seja 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_OWNER e GH_DEFAULT_REPO, verifique se estão corretas e se o repositório existe
  3. Problemas de Permissão:

    • Garanta que seu token tenha os escopos necessários:
      • repo ou public_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

Problemas de Configuração do Repositório Padrão

  • Variáveis de Ambiente Não Funcionando: Verifique novamente a ortografia de GH_DEFAULT_OWNER e GH_DEFAULT_REPO na configuração do seu cliente MCP
  • Argumentos de Linha de Comando: Garanta a sintaxe correta ao usar as flags --default-owner e --default-repo
  • Problemas com Chamadas de Ferramentas: Use nomes exatos de repositórios: formato owner/repo na ferramenta set_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.cjs seja 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_TOKEN para 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 env na 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.

MseeP.ai Security Assessment Badge