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
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
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.
Related MCP Servers
- AsecurityFlicenseAqualityProvides tools for mapping and analyzing GitHub repositories. It allows users to set a GitHub Personal Access Token and retrieve detailed information about a specified repository, including its structure and summary statistics.Last updated -217TypeScript
- -securityFlicense-qualityEnables interaction with GitHub through the GitHub API, supporting file operations, repository management, advanced search, and issue tracking with comprehensive error handling and automatic branch creation.Last updated -91TypeScript
- AsecurityAlicenseAqualityEnables users to interact with GitHub's Projects v2 API through natural language for Agile project management, supporting repository details, issue tracking, and project board management operations.Last updated -31TypeScriptGPL 2.0
- AsecurityFlicenseAqualityProvides GitHub data analysis for repositories, developers, and organizations, enabling insights into open source ecosystems through API calls and natural language queries.Last updated -52JavaScript