Github MCP Server
Integra-se com o GitHub, permitindo que LLMs interajam com repositórios, issues e pull requests por meio da API
Documentação
Github MCP Server
Um Model Context Protocol Server para Github.
Fornece integração com Github através de MCP, permitindo que LLMs interajam com ele.
Documentação da API REST do Github
Instalação
Instalação Manual
-
Crie ou obtenha um token de acesso para sua conta Github: Guia
-
Adicione a configuração do servidor ao Claude Desktop:
- MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: Consulte este Guia
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "github-mcp-server"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_personal_github_access_token"
}
}
}
}
Componentes
Ferramentas
-
search_repositories: Pesquisar um repositório no GitHub.- Entradas obrigatórias:
query(string): A consulta para pesquisar o repositório.page(número, padrão: 30, máximo: 100): Número da página para paginação.per_page(número, padrão: 30, máximo: 100): Número de resultados por página.
- Entradas obrigatórias:
-
search_issues: Pesquisar issues de um repositório.- Entradas obrigatórias:
query(string): A consulta para pesquisar o repositório.page(número, padrão: 1): Número da página para paginação.per_page(número, padrão: 30, máximo: 100): Número de resultados por página.order(string opcional, padrão:desc): Ordenação (ascoudesc).sort(string opcional, padrão:best match): Campo de ordenação (pode ser um de:comments,reactions,reactions-+1,reactions--1,reactions-smile,reactions-thinking_face,reactions-heart,reactions-tada,interactions,createdouupdated).
- Entradas obrigatórias:
-
search_commits: Pesquisar commits de um repositório.- Entradas obrigatórias:
query(string): A consulta para pesquisar o repositório.page(número, padrão: 1): Número da página para paginação.per_page(número, padrão: 30, máximo: 100): Número de resultados por página.order(string opcional, padrão:desc): Ordenação (ascoudesc).sort(string opcional, padrão:best match): Campo de ordenação (pode ser um de:committer-dateouauthor-date).
- Entradas obrigatórias:
-
search_code: Pesquisar código de um repositório.- Entradas obrigatórias:
query(string): A consulta para pesquisar o repositório.page(número, padrão: 1): Número da página para paginação.per_page(número, padrão: 30, máximo: 100): Número de resultados por página.
- Entradas obrigatórias:
-
search_users: Pesquisar usuários de um repositório.- Entradas obrigatórias:
query(string): A consulta para pesquisar o repositório.page(número, padrão: 1): Número da página para paginação.per_page(número, padrão: 30, máximo: 100): Número de resultados por página.order(string opcional, padrão:desc): Ordenação (ascoudesc).sort(string opcional, padrão:best match): Campo de ordenação (pode ser um de:followers,repositoriesoujoined).
- Entradas obrigatórias:
-
search_topics: Pesquisar tópicos.- Entradas obrigatórias:
query(string): A consulta para pesquisar o repositório.page(número, padrão: 1): Número da página para paginação.per_page(número, padrão: 30, máximo: 100): Número de resultados por página.
- Entradas obrigatórias:
-
search_labels: Pesquisar labels em um repositório.- Entradas obrigatórias:
query(string): A consulta para pesquisar o repositório.page(número, padrão: 1): Número da página para paginação.per_page(número, padrão: 30, máximo: 100): Número de resultados por página.order(string opcional, padrão:desc): Ordenação (ascoudesc).sort(string opcional, padrão:best match): Campo de ordenação (pode ser um de:createdouupdated).
- Entradas obrigatórias:
-
list_repositories_issues: Listar issues de um repositório.- Entradas obrigatórias:
owner(string): O proprietário do repositório.repo(string): O nome do repositório.page(número opcional, padrão: 1): Número da página para paginação.per_page(número opcional, padrão: 30, máximo: 100): Número de resultados por página.direction(string opcional, padrão:desc): Direção da ordenação (ascoudesc).sort(string opcional, padrão:created): Campo de ordenação (pode ser um de:created,commentsouupdated).since(string opcional): Resultados atualizados pela última vez após o horário informado (formato ISO 8601: YYYY-MM-DDTHH:MM:SSZ.).labels(string opcional): Nomes de labels separados por vírgula. Exemplo: bug,ui,@high.milestone(string opcional): Número do milestone.assignee(string opcional): Nome do usuário designado (*para todos).creator(string opcional): O usuário que criou a issue. (*para todos).mentioned(string opcional): Um usuário mencionado na issue.
- Entradas obrigatórias:
-
get_issue: Obter uma issue de um repositório.- Entradas obrigatórias:
owner(string): O proprietário do repositório.repo(string): O nome do repositório.issue_number(número): O número da issue.
- Entradas obrigatórias:
-
list_repositories_pull_requests: Listar pull requests de um repositório.- Entradas obrigatórias:
owner(string): O proprietário do repositório.repo(string): O nome do repositório.page(número opcional, padrão: 1): Número da página para paginação.per_page(número opcional, padrão: 30, máximo: 100): Número de resultados por página.direction(string opcional, padrão:desc): Direção da ordenação (ascoudesc).sort(string opcional, padrão:created): Campo de ordenação (pode ser um de:created,popularity,long-runningouupdated).head(string opcional): Filtra pulls por usuário head ou organização head e nome da branch no formato usuário:ref-name ou organização:ref-name (Por exemplo: github:new-script-format ou octocat:test-branch).base(string opcional): Filtra pulls pelo nome da branch base. (Por exemplo: gh-pages).
- Entradas obrigatórias:
-
get_pull_request: Obter um pull request de um repositório.- Entradas obrigatórias:
owner(string): O proprietário do repositório.repo(string): O nome do repositório.pull_request_number(número): O número do pull request.
- Entradas obrigatórias:
Exemplos de uso
Alguns exemplos de prompts que você pode usar para interagir com Github:
- "modelcontextprotocol" → execute a ferramenta
search_repositoriespara encontrar repositórios onde modelcontextprotocol é mencionado. - "Qual é a issue 739 no repositório modelcontextprotocol servers" → execute a ferramenta
get_issuepara encontrar a issue 739 do repositório modelcontextprotocol servers. - "Qual é o PR 717 no repositório modelcontextprotocol servers" → execute a ferramenta
get_pull_requestpara encontrar o PR 717 do repositório modelcontextprotocol servers.
Desenvolvimento
- Instale as dependências:
pnpm install
- Configure o token de acesso do Github em
.env:
GITHUB_PERSONAL_ACCESS_TOKEN=<your_personal_github_access_token>
- Execute localmente com watch:
pnpm dev
- Compile o servidor:
pnpm build
- Depuração local com inspector:
pnpm inspector