Saltar a contenido

GitHub

Compatible con ADKPython v0.1.0TypeScript v0.2.0

El Servidor MCP de GitHub conecta herramientas de IA directamente a la plataforma de GitHub. Esto le da a tu agente ADK la capacidad de leer repositorios y archivos de código, gestionar issues y PRs, analizar código, y automatizar flujos de trabajo usando lenguaje natural.

Casos de uso

  • Gestión de Repositorios: Navega y consulta código, busca archivos, analiza commits, y comprende la estructura del proyecto en cualquier repositorio al que tengas acceso.
  • Automatización de Issues y PRs: Crea, actualiza y gestiona issues y pull requests. Deja que la IA ayude a clasificar bugs, revisar cambios de código y mantener tableros de proyectos.
  • Análisis de Código: Examina hallazgos de seguridad, revisa alertas de Dependabot, comprende patrones de código, y obtén información completa sobre tu base de código.

Requisitos previos

Uso con agente

from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPServerParams

GITHUB_TOKEN = "YOUR_GITHUB_TOKEN"

root_agent = Agent(
    model="gemini-2.5-pro",
    name="github_agent",
    instruction="Help users get information from GitHub",
    tools=[
        McpToolset(
            connection_params=StreamableHTTPServerParams(
                url="https://api.githubcopilot.com/mcp/",
                headers={
                    "Authorization": f"Bearer {GITHUB_TOKEN}",
                    "X-MCP-Toolsets": "all",
                    "X-MCP-Readonly": "true"
                },
            ),
        )
    ],
)
import { LlmAgent, MCPToolset } from "@google/adk";

const GITHUB_TOKEN = "YOUR_GITHUB_TOKEN";

const rootAgent = new LlmAgent({
    model: "gemini-2.5-pro",
    name: "github_agent",
    instruction: "Help users get information from GitHub",
    tools: [
        new MCPToolset({
            type: "StreamableHTTPConnectionParams",
            url: "https://api.githubcopilot.com/mcp/",
            header: {
                Authorization: `Bearer ${GITHUB_TOKEN}`,
                "X-MCP-Toolsets": "all",
                "X-MCP-Readonly": "true",
            },
        }),
    ],
});

export { rootAgent };

Herramientas disponibles

Herramienta Descripción
context Herramientas que proporcionan contexto sobre el usuario actual y el contexto de GitHub en el que estás operando
copilot Herramientas relacionadas con Copilot (ej. Agente de Codificación de Copilot)
copilot_spaces Herramientas relacionadas con Copilot Spaces
actions Flujos de trabajo de GitHub Actions y operaciones de CI/CD
code_security Herramientas relacionadas con seguridad de código, como GitHub Code Scanning
dependabot Herramientas de Dependabot
discussions Herramientas relacionadas con GitHub Discussions
experiments Características experimentales que aún no se consideran estables
gists Herramientas relacionadas con GitHub Gist
github_support_docs_search Buscar documentos para responder preguntas sobre productos y soporte de GitHub
issues Herramientas relacionadas con GitHub Issues
labels Herramientas relacionadas con etiquetas de GitHub
notifications Herramientas relacionadas con notificaciones de GitHub
orgs Herramientas relacionadas con organizaciones de GitHub
projects Herramientas relacionadas con proyectos de GitHub
pull_requests Herramientas relacionadas con Pull Requests de GitHub
repos Herramientas relacionadas con repositorios de GitHub
secret_protection Herramientas relacionadas con protección de secretos, como GitHub Secret Scanning
security_advisories Herramientas relacionadas con avisos de seguridad
stargazers Herramientas relacionadas con Stargazers de GitHub
users Herramientas relacionadas con usuarios de GitHub

Configuración

El servidor MCP remoto de GitHub tiene encabezados opcionales que se pueden usar para configurar los conjuntos de herramientas disponibles y el modo de solo lectura:

  • X-MCP-Toolsets: Lista separada por comas de conjuntos de herramientas a habilitar. (ej. "repos,issues")

    • Si la lista está vacía, se usarán los conjuntos de herramientas predeterminados. Si se proporciona un conjunto de herramientas incorrecto, el servidor fallará al iniciar y emitirá un estado de solicitud incorrecta 400. Los espacios en blanco se ignoran.
  • X-MCP-Readonly: Habilita solo herramientas de "lectura".

    • Si este encabezado está vacío, es "false", "f", "no", "n", "0", o "off" (ignorando espacios en blanco y mayúsculas), se interpretará como falso. Todos los demás valores se interpretan como verdadero.

Recursos adicionales