Integrations
Preserves Git history for repository operations, with support for branch creation, commit management, and maintaining proper version control without force pushing.
Provides comprehensive access to GitHub's API, enabling file operations (creating, updating, retrieving), repository management (creating, forking, branching), search functionality across code/issues/users, and issue/PR workflows (creating, commenting, reviewing, merging).
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
- Gestión de proyectos : conjunto de herramientas completo para la gestión de proyectos de GitHub (clásico), que incluye la creación de proyectos, la gestión de columnas y el trabajo con tarjetas
Herramientas
create_or_update_file
- Crear 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_files
- Insertar 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 conpath
ycontent
message
(cadena): Mensaje de confirmación
- Devoluciones: Referencia de rama actualizada
search_repositories
- Buscar 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_repository
- Crear 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_contents
- Obtener 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_issue
- Crear 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_request
- Crear 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_repository
- Bifurcar 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_branch
- Crear 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
delete_issue
- Elimina un problema de un repositorio de GitHub mediante la API GraphQL
- Entradas:
owner
(cadena): Propietario del repositoriorepo
(cadena): nombre del repositorioissue_number
(número): Número de problema a eliminar
- Devoluciones: Confirmación de eliminación con información del repositorio
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
create_project
- Crear un nuevo proyecto en un repositorio de GitHub
- Entradas:
owner
(cadena): propietario del repositorio (nombre de usuario u organización)repo
(cadena): nombre del repositorioname
(cadena): Nombre del proyectobody
(cadena opcional): Descripción del proyecto
- Devoluciones: Detalles del proyecto creado
get_project
- Obtenga detalles sobre un proyecto específico
- Entradas:
owner
(cadena): propietario del repositorio (nombre de usuario u organización)repo
(cadena): nombre del repositorioproject_number
(número): El número del proyecto
- Devoluciones: Detalles del proyecto
update_project
- Actualizar los detalles de un proyecto existente
- Entradas:
project_id
(número): El identificador único del proyectoname
(cadena opcional): Nuevo nombre del proyectobody
(cadena opcional): Nueva descripción del proyectostate
(cadena opcional): Estado del proyecto ('abierto' o 'cerrado')
- Devoluciones: Detalles del proyecto actualizados
list_projects
- Enumerar todos los proyectos en un repositorio de GitHub
- Entradas:
owner
(cadena): propietario del repositorio (nombre de usuario u organización)repo
(cadena): nombre del repositoriostate
(cadena opcional): Filtrar proyectos por estado ('abierto', 'cerrado', 'todos')page
(número opcional): Número de página para paginación (comienza en 1)per_page
(número opcional): Número de resultados por página (máximo 100)
- Devuelve: Matriz de detalles del proyecto
create_project_column
- Crear una nueva columna en un proyecto
- Entradas:
owner
(cadena): propietario del repositorio (nombre de usuario u organización)repo
(cadena): nombre del repositorioproject_number
(número): El número del proyectoname
(cadena): Nombre de la columna
- Devuelve: Detalles de la columna creada
list_project_columns
- Enumerar todas las columnas de un proyecto
- Entradas:
project_id
(número): El identificador único del proyectopage
(número opcional): Número de página para paginación (comienza en 1)per_page
(número opcional): Número de resultados por página (máximo 100)
- Devuelve: Matriz de detalles de la columna del proyecto
update_project_column
- Actualizar una columna de proyecto existente
- Entradas:
column_id
(número): El identificador único de la columnaname
(cadena): Nuevo nombre de la columna
- Devoluciones: Detalles de columna actualizados
delete_project_column
- Eliminar una columna de proyecto
- Entradas:
column_id
(número): El identificador único de la columna
- Devoluciones: Mensaje de éxito
add_card_to_column
- Agregar una nueva tarjeta a una columna de proyecto
- Entradas:
owner
(cadena): propietario del repositorio (nombre de usuario u organización)repo
(cadena): nombre del repositoriocolumn_id
(cadena): El ID de la columna a la que se agregará la tarjetacontent_type
(cadena): Tipo de contenido de la tarjeta ('Emisión', 'Solicitud de extracción', 'Nota')content_id
(número opcional): ID del problema o solicitud de extracción (obligatorio si content_type es Issue o PullRequest)note
(cadena opcional): el contenido de la nota de la tarjeta (obligatorio si content_type es Nota)
- Devoluciones: Detalles de la tarjeta creada
list_column_cards
- Enumerar todas las tarjetas en una columna de proyecto
- Entradas:
column_id
(número): El identificador único de la columnaarchived_state
(cadena opcional): Filtrar por estado archivado de la tarjeta ('all', 'archivado', 'no_archivado')page
(número opcional): Número de página para paginación (comienza en 1)per_page
(número opcional): Número de resultados por página (máximo 100)
- Devoluciones: Matriz de detalles de la tarjeta
move_card
- Mover una tarjeta a una posición o columna diferente
- Entradas:
card_id
(número): El identificador único de la tarjetaposition
(cadena): la posición de la tarjeta ('arriba', 'abajo' o 'después de:<card_id>')column_id
(número opcional): El ID de la columna a la que mover la tarjeta
- Devoluciones: Mensaje de éxito
delete_card
- Eliminar una tarjeta de un proyecto
- Entradas:
card_id
(número): El identificador único de la tarjeta
- Devoluciones: Mensaje de éxito
list_organization_projects
- Enumerar todos los proyectos en una organización de GitHub (a nivel de organización, no a nivel de repositorio)
- Entradas:
org
(cadena): nombre de la organizaciónstate
(cadena opcional): Filtrar proyectos por estado ('abierto', 'cerrado', 'todos')page
(número opcional): Número de página para paginaciónper_page
(número opcional): Número de resultados por página (máximo 100)
- Devoluciones: Matriz de detalles del proyecto de la organización
Herramientas de Proyectos V2 (Nueva experiencia de Proyectos de GitHub)
list_organization_projects_v2
- Enumere proyectos V2 en una organización de GitHub usando la API GraphQL
- Entradas:
org
(cadena): nombre de la organizaciónfirst
(número opcional): Número de proyectos a buscar (máximo 100)after
(cadena opcional): Cursor para paginaciónorderBy
(objeto opcional): Cómo ordenar los proyectos
- Devuelve: Matriz de proyectos con información de paginación
get_project_v2
- Obtenga detalles de un proyecto de GitHub V2 usando la API GraphQL
- Entradas:
id
(cadena): El ID del nodo del proyecto
- Devoluciones: Información detallada del proyecto, incluidos campos y vistas
create_project_v2
- Cree un nuevo proyecto de GitHub V2 usando la API GraphQL
- Entradas:
ownerId
(cadena): El ID del nodo de la organización o usuariotitle
(cadena): Título del proyectodescription
(cadena opcional): Descripción del proyecto
- Devoluciones: Detalles del proyecto creado
update_project_v2
- Actualizar un proyecto de GitHub V2 usando la API GraphQL
- Entradas:
projectId
(cadena): El ID del nodo del proyectotitle
(cadena opcional): Nuevo título para el proyectodescription
(cadena opcional): Nueva descripción del proyectoclosed
(booleano opcional): si se debe cerrar el proyecto
- Devoluciones: Detalles del proyecto actualizados
add_item_to_project_v2
- Agregar un problema o una solicitud de extracción a un proyecto de GitHub V2 usando la API GraphQL
- Entradas:
projectId
(cadena): El ID del nodo del proyectocontentId
(cadena): el ID del nodo del problema o la solicitud de extracción que se agregará
- Devoluciones: Se agregaron detalles del artículo
list_project_v2_items
- Listar elementos en un proyecto de GitHub V2 usando la API GraphQL
- Entradas:
projectId
(cadena): El ID del nodo del proyectofirst
(número opcional): Número de elementos a buscar (máximo 100)after
(cadena opcional): Cursor para paginaciónfilterBy
(objeto opcional): filtros para los elementos
- Devuelve: Matriz de elementos del proyecto con sus valores de campo
update_project_v2_item_field
- Actualizar un valor de campo para un elemento en un proyecto de GitHub V2 usando la API GraphQL
- Entradas:
projectId
(cadena): El ID del nodo del proyectoitemId
(cadena): El ID del nodo del elementofieldId
(cadena): El ID del nodo del campovalue
(cualquiera): El nuevo valor para el campo
- Devoluciones: Detalles del artículo actualizados
Notas de gestión de proyectos
Advertencia de obsolescencia : GitHub ha anunciado que Proyectos (clásico) quedará obsoleto para dar paso a la nueva experiencia de Proyectos. Las herramientas 27 a 39 funcionan con la versión clásica de Proyectos, que podría eliminarse en el futuro. Para la nueva experiencia de Proyectos de GitHub, utilice las herramientas 40 a 46.
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 archivo- Ejemplo:
q: "import express" language:typescript path:src/
Búsqueda de problemas
is:issue
ois:pr
: Filtrar por tipois:open
ois:closed
: Filtrar por estadolabel:bug
: Buscar por etiquetaauthor:username
: Buscar por autor- Ejemplo:
q: "memory leak" is:issue is:open label:bug
Búsqueda de usuarios
type:user
otype:org
: Filtrar por tipo de cuentafollowers:>1000
: Filtrar por seguidoreslocation:London
: Buscar por ubicación- Ejemplo:
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
- Para utilizar las herramientas de Proyectos V2, asegúrese de incluir también el alcance
project
.
- Alternativamente, si trabaja solo con repositorios públicos, seleccione solo el ámbito
- 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.
This server cannot be installed
Permite operaciones integrales de GitHub a través del lenguaje natural, incluida la gestión de archivos, la administración de repositorios, el seguimiento de problemas y la búsqueda avanzada de código.