Servidor MCP de GitHub
Servidor MCP para la API de GitHub, que permite operaciones de archivos, gestión de repositorios, funcionalidad de búsqueda y más.
Características
Creación automática de ramas : al crear o actualizar archivos o enviar cambios, las ramas se crean automáticamente si no existen.
Manejo integral de errores : mensajes de error claros para problemas comunes
Preservación del historial de Git : las operaciones mantienen el historial de Git adecuado sin forzar el envío.
Operaciones por lotes : compatibilidad con operaciones de un solo archivo y de varios archivos
Búsqueda avanzada : Soporte para búsqueda de código, problemas/PR y usuarios
Herramientas
create_or_update_fileCrear o actualizar un solo archivo en un repositorio
Entradas:
owner(cadena): propietario del repositorio (nombre de usuario u organización)repo(cadena): nombre del repositoriopath(cadena): Ruta donde crear/actualizar el archivocontent(cadena): Contenido del archivomessage(cadena): Mensaje de confirmaciónbranch(cadena): Rama para crear/actualizar el archivo ensha(cadena opcional): SHA del archivo que se va a reemplazar (para actualizaciones)
Devuelve: Contenido del archivo y detalles de confirmación
push_filesInsertar varios archivos en una sola confirmación
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriobranch(cadena): Rama a la que enviarfiles(matriz): archivos para enviar, cada uno conpathycontentmessage(cadena): Mensaje de confirmación
Devoluciones: Referencia de rama actualizada
search_repositoriesBuscar repositorios de GitHub
Entradas:
query(cadena): consulta de búsquedapage(número opcional): Número de página para paginaciónperPage(número opcional): Resultados por página (máximo 100)
Devuelve: Resultados de la búsqueda del repositorio
create_repositoryCrear un nuevo repositorio de GitHub
Entradas:
name(cadena): nombre del repositoriodescription(cadena opcional): Descripción del repositorioprivate(booleano opcional): si el repositorio debe ser privadoautoInit(booleano opcional): inicializar con README
Devoluciones: Detalles del repositorio creado
get_file_contentsObtener el contenido de un archivo o directorio
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopath(cadena): Ruta al archivo/directoriobranch(cadena opcional): rama de la que obtener el contenido
Devuelve: Contenido del archivo/directorio
create_issueCrear un nuevo problema
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriotitle(cadena): Título del problemabody(cadena opcional): Descripción del problemaassignees(cadena opcional[]): nombres de usuario para asignarlabels(cadena opcional[]): etiquetas para agregarmilestone(número opcional): Número de hito
Devoluciones: Detalles del problema creado
create_pull_requestCrear una nueva solicitud de extracción
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriotitle(cadena): título de PRbody(cadena opcional): descripción de PRhead(cadena): rama que contiene los cambiosbase(cadena): rama en la que fusionarsedraft(booleano opcional): Crear como borrador de PRmaintainer_can_modify(booleano opcional): Permitir ediciones del mantenedor
Devoluciones: Detalles de la solicitud de extracción creada
fork_repositoryBifurcar un repositorio
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositorioorganization(cadena opcional): Organización a la que se bifurcará
Devoluciones: Detalles del repositorio bifurcado
create_branchCrear una nueva rama
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriobranch(cadena): Nombre de la nueva ramafrom_branch(cadena opcional): rama de origen (predeterminada al valor predeterminado del repositorio)
Devuelve: Referencia de rama creada
list_issues
Enumerar y filtrar problemas del repositorio
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriostate(cadena opcional): filtrar por estado ('abierto', 'cerrado', 'todos')labels(cadena opcional[]): Filtrar por etiquetassort(cadena opcional): Ordenar por ('creado', 'actualizado', 'comentarios')direction(cadena opcional): Ordenar dirección ('asc', 'desc')since(cadena opcional): Filtrar por fecha (marca de tiempo ISO 8601)page(número opcional): Número de páginaper_page(número opcional): Resultados por página
Devoluciones: Matriz de detalles del problema
update_issue
Actualizar un problema existente
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositorioissue_number(número): Número de problema a actualizartitle(cadena opcional): Nuevo títulobody(cadena opcional): Nueva descripciónstate(cadena opcional): Nuevo estado ('abierto' o 'cerrado')labels(cadena opcional[]): Nuevas etiquetasassignees(cadena opcional[]): nuevos cesionariosmilestone(número opcional): Nuevo número de hito
Devoluciones: Detalles del problema actualizados
add_issue_comment
Agregar un comentario a un problema
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositorioissue_number(número): Número de problema sobre el que se realizará el comentariobody(cadena): Texto del comentario
Devoluciones: Detalles del comentario creado
search_code
Buscar código en los repositorios de GitHub
Entradas:
q(cadena): consulta de búsqueda utilizando la sintaxis de búsqueda de código de GitHubsort(cadena opcional): campo de ordenación (solo 'indexado')order(cadena opcional): orden de clasificación ('asc' o 'desc')per_page(número opcional): Resultados por página (máximo 100)page(número opcional): Número de página
Devuelve: Resultados de búsqueda de código con contexto de repositorio
search_issues
Buscar problemas y solicitudes de extracción
Entradas:
q(cadena): consulta de búsqueda que utiliza la sintaxis de búsqueda de problemas de GitHubsort(cadena opcional): campo de ordenación (comentarios, reacciones, creados, etc.)order(cadena opcional): orden de clasificación ('asc' o 'desc')per_page(número opcional): Resultados por página (máximo 100)page(número opcional): Número de página
Devoluciones: Resultados de búsqueda de problemas y solicitudes de extracción
search_users
Buscar usuarios de GitHub
Entradas:
q(cadena): consulta de búsqueda que utiliza la sintaxis de búsqueda de usuarios de GitHubsort(cadena opcional): campo de ordenación (seguidores, repositorios, unidos)order(cadena opcional): orden de clasificación ('asc' o 'desc')per_page(número opcional): Resultados por página (máximo 100)page(número opcional): Número de página
Devuelve: Resultados de búsqueda del usuario
list_commits
Obtiene confirmaciones de una rama en un repositorio
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopage(cadena opcional): número de páginaper_page(cadena opcional): número de registros por páginasha(cadena opcional): nombre de la rama
Devuelve: Lista de confirmaciones
get_issue
Obtiene el contenido de un problema dentro de un repositorio
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositorioissue_number(número): Número de problema a recuperar
Devoluciones: objeto de problema de Github y detalles
get_pull_request
Obtener detalles de una solicitud de extracción específica
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extracción
Devoluciones: Detalles de la solicitud de extracción, incluyendo la diferencia y el estado de la revisión
list_pull_requests
Listar y filtrar solicitudes de extracción del repositorio
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriostate(cadena opcional): filtrar por estado ('abierto', 'cerrado', 'todos')head(cadena opcional): filtrar por usuario/organización principal y ramabase(cadena opcional): Filtrar por rama basesort(cadena opcional): Ordenar por ('creado', 'actualizado', 'popularidad', 'de larga duración')direction(cadena opcional): Ordenar dirección ('asc', 'desc')per_page(número opcional): Resultados por página (máximo 100)page(número opcional): Número de página
Devoluciones: Matriz de detalles de la solicitud de extracción
create_pull_request_review
Crear una revisión en una solicitud de extracción
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extracciónbody(cadena): Texto del comentario de la revisiónevent(cadena): Acción de revisión ('APROBAR', 'SOLICITAR_CAMBIOS', 'COMENTARIO')commit_id(cadena opcional): SHA de la confirmación a revisarcomments(matriz opcional): comentarios específicos de cada línea, cada uno con:path(cadena): Ruta del archivoposition(número): Posición de línea en diffbody(cadena): Texto del comentario
Devoluciones: Detalles de la revisión creada
merge_pull_request
Fusionar una solicitud de extracción
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extraccióncommit_title(cadena opcional): Título para la confirmación de fusióncommit_message(cadena opcional): detalle adicional para la confirmación de fusiónmerge_method(cadena opcional): método de fusión ('merge', 'squash', 'rebase')
Devoluciones: Combinar detalles de resultados
get_pull_request_files
Obtener la lista de archivos modificados en una solicitud de extracción
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extracción
Devoluciones: Matriz de archivos modificados con detalles del parche y el estado
get_pull_request_status
Obtener el estado combinado de todas las comprobaciones de estado para una solicitud de extracción
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extracción
Devoluciones: Resultados de verificación de estado combinados y detalles de verificación individuales
update_pull_request_branch
Actualizar una rama de solicitud de extracción con los últimos cambios de la rama base (equivalente al botón "Actualizar rama" de GitHub)
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extracciónexpected_head_sha(cadena opcional): El SHA esperado de la referencia HEAD de la solicitud de extracción
Devuelve: Mensaje de éxito cuando se actualiza la rama
get_pull_request_comments
Obtener los comentarios de revisión en una solicitud de extracción
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extracción
Devoluciones: Matriz de comentarios de revisión de solicitudes de extracción con detalles como el texto del comentario, el autor y la ubicación en la diferencia.
get_pull_request_reviews
Obtenga las revisiones en una solicitud de extracción
Entradas:
owner(cadena): Propietario del repositoriorepo(cadena): nombre del repositoriopull_number(número): número de solicitud de extracción
Devoluciones: Matriz de revisiones de solicitudes de extracción con detalles como el estado de la revisión (APROBADO, CAMBIOS SOLICITADOS, etc.), el revisor y el cuerpo de la revisión
Related MCP server: MCP Development Framework
Sintaxis de consulta de búsqueda
Búsqueda de código
language:javascript: Buscar por lenguaje de programaciónrepo:owner/name: Buscar en un repositorio específicopath:app/src: Buscar en una ruta específicaextension:js: Buscar por extensión de archivoEjemplo:
q: "import express" language:typescript path:src/
Búsqueda de problemas
is:issueois:pr: Filtrar por tipois:openois:closed: Filtrar por estadolabel:bug: Buscar por etiquetaauthor:username: Buscar por autorEjemplo:
q: "memory leak" is:issue is:open label:bug
Búsqueda de usuarios
type:userotype:org: Filtrar por tipo de cuentafollowers:>1000: Filtrar por seguidoreslocation:London: Buscar por ubicaciónEjemplo:
q: "fullstack developer" location:London followers:>100
Para conocer la sintaxis de búsqueda detallada, consulte la documentación de búsqueda de GitHub .
Configuración
Token de acceso personal
Cree un token de acceso personal de GitHub con los permisos adecuados:
Vaya a Tokens de acceso personal (en Configuración de GitHub > Configuración de desarrollador)
Seleccione los repositorios a los que desea que este token tenga acceso (Público, Todos o Seleccionar)
Crea un token con el alcance
repo("Control total de repositorios privados")Alternativamente, si trabaja solo con repositorios públicos, seleccione solo el ámbito
public_repo
Copiar el token generado
Uso con Claude Desktop
Para usar esto con Claude Desktop, agregue lo siguiente a su claude_desktop_config.json :
Estibador
NPX
Construir
Compilación de Docker:
Licencia
Este servidor MCP cuenta con la licencia MIT. Esto significa que puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.