Skip to main content
Glama

Github Project Manager

Gerente de proyectos de GitHub

Una implementación del Protocolo de Contexto de Modelo (MCP) para gestionar proyectos e incidencias de GitHub. Este paquete proporciona una interfaz fluida para que los asistentes y aplicaciones de IA interactúen con repositorios, incidencias, solicitudes de incorporación de cambios y proyectos de GitHub.

Características

Gestión de problemas de GitHub

  • Crear problemas
  • Problemas de actualización
  • Lista de problemas con las opciones de filtrado
  • Obtener detalles del problema
  • Añadir comentarios a los problemas
  • Cerrar problemas

Gestión de solicitudes de extracción de GitHub

  • Crear solicitudes de extracción
  • Actualizar solicitudes de extracción
  • Lista de solicitudes de extracción con opciones de filtrado
  • Obtener detalles de la solicitud de extracción
  • Fusionar solicitudes de extracción
  • Comprobar si se ha fusionado una solicitud de extracción
  • Crear y gestionar revisiones de solicitudes de extracción
  • Agregar y listar comentarios de reseñas
  • Solicitar y eliminar revisores
  • Actualizar las ramas de la solicitud de extracción

Gestión de proyectos de GitHub

  • Crear proyectos
  • Agregar problemas a los proyectos
  • Actualizar elementos del proyecto (moverse entre columnas)
  • Lista de elementos del proyecto

Instalación

npm install @monsoft/mcp-github-project-manager

Uso

Inicio rápido con npx

La forma más rápida de utilizar el Administrador de proyectos de GitHub es directamente con npx:

npx -y @monsoft/mcp-github-project-manager --GITHUB_PERSONAL_TOKEN=your_github_token_here

Esto inicia el servidor MCP al que luego los clientes MCP pueden conectarse.

Opciones de transporte

El Administrador de proyectos de GitHub admite dos métodos de transporte:

Transporte de Stdio (predeterminado)

Este es el transporte predeterminado, ideal para integraciones CLI directas y uso local:

# Start with default Stdio transport npx -y @monsoft/mcp-github-project-manager --GITHUB_PERSONAL_TOKEN=your_github_token_here
Transporte de eventos enviados por el servidor (SSE)

Para configuraciones remotas e integraciones web, puede utilizar el transporte SSE que inicia un servidor HTTP:

# Start with SSE transport on default port (3010) npx -y @monsoft/mcp-github-project-manager --GITHUB_PERSONAL_TOKEN=your_github_token_here --RUN_SSE=1 # Start with SSE transport on a custom port npx -y @monsoft/mcp-github-project-manager --GITHUB_PERSONAL_TOKEN=your_github_token_here --RUN_SSE=1 --PORT=8080

Al utilizar el transporte SSE, el servidor será accesible en:

  • Punto final SSE: http://localhost:<PORT>/sse
  • Punto final de mensajes: http://localhost:<PORT>/messages

Configuración con clientes MCP

Para usar esto con asistentes de IA como Claude en Anthropic o Cursor:

# Start the MCP server in your terminal npx -y @monsoft/mcp-github-project-manager --GITHUB_PERSONAL_TOKEN=your_github_token_here

Luego, configura tu asistente de IA para usar este servidor MCP. La configuración exacta depende del cliente que uses.

Uso programático

Para utilizar el Administrador de proyectos de GitHub en su propio código:

import { GitHubProjectManager } from '@monsoft/mcp-github-project-manager'; // The token will be automatically loaded from command line arguments const manager = new GitHubProjectManager(); // Now you can use the manager to interact with GitHub projects

Al ejecutar su aplicación, proporcione el token de GitHub como argumento de línea de comando:

node your-app.js --GITHUB_PERSONAL_TOKEN=your_github_token_here

También puede especificar el tipo de transporte y otras opciones:

# Use SSE transport node your-app.js --GITHUB_PERSONAL_TOKEN=your_github_token_here --RUN_SSE=1 --PORT=3010 # Use default Stdio transport node your-app.js --GITHUB_PERSONAL_TOKEN=your_github_token_here

Si necesita iniciar programáticamente el servidor con opciones de transporte específicas:

import { startGitHubProjectManagerServer, startGitHubProjectManagerServerSSE, } from '@monsoft/mcp-github-project-manager'; // Start with Stdio transport await startGitHubProjectManagerServer('your_github_token_here'); // Or start with SSE transport await startGitHubProjectManagerServerSSE('your_github_token_here', 3010);

Referencia de API

Gestión de problemas

Crear un problema
const newIssue = await manager.createIssue({ owner: 'organization-name', repo: 'repository-name', title: 'Issue title', body: 'Detailed description of the issue', labels: ['bug', 'priority-high'], assignees: ['username1', 'username2'], });
Obtener detalles del problema
const issue = await manager.getIssue({ owner: 'organization-name', repo: 'repository-name', issue_number: 123, });
Actualizar un problema
await manager.updateIssue({ owner: 'organization-name', repo: 'repository-name', issue_number: 123, title: 'Updated title', body: 'Updated description', state: 'closed', });
Lista de problemas
const issues = await manager.listIssues({ owner: 'organization-name', repo: 'repository-name', state: 'open', labels: ['bug'], sort: 'created', direction: 'desc', });
Agregar comentario sobre el problema
await manager.addIssueComment({ owner: 'organization-name', repo: 'repository-name', issue_number: 123, body: 'This is a comment', });

Gestión de solicitudes de extracción

Crear una solicitud de extracción
const pr = await manager.createPullRequest({ owner: 'organization-name', repo: 'repository-name', title: 'Pull request title', body: 'Description of changes', head: 'feature-branch', base: 'main', });
Obtener detalles de la solicitud de extracción
const pullRequest = await manager.getPullRequest({ owner: 'organization-name', repo: 'repository-name', pull_number: 456, });
Fusionar una solicitud de extracción
await manager.mergePullRequest({ owner: 'organization-name', repo: 'repository-name', pull_number: 456, merge_method: 'squash', });
Crear una reseña
await manager.createPullRequestReview({ owner: 'organization-name', repo: 'repository-name', pull_number: 456, event: 'APPROVE', body: 'LGTM! Great work.', });

Gestión de proyectos

Crear un proyecto
const project = await manager.createProject({ owner: 'organization-name', name: 'Project Name', body: 'Project description', });
Agregar elemento al proyecto
await manager.addProjectItem({ project_id: 12345, content_id: issue.id, content_type: 'Issue', });
Lista de elementos del proyecto
const items = await manager.listProjectItems({ project_id: 12345, });

Manejo de errores

El paquete proporciona clases de error personalizadas para manejar escenarios de error comunes:

try { // GitHub operations } catch (error) { if (error instanceof MissingGitHubTokenError) { console.error('GitHub token is missing. Please provide one via command line.'); } else if (error instanceof AuthenticationError) { console.error('Failed to authenticate with GitHub. Check your token.'); } else if (error instanceof RateLimitError) { console.error('GitHub API rate limit exceeded.'); } else { console.error('An unexpected error occurred:', error.message); } }

Clases de error disponibles:

  • MissingGitHubTokenError : se lanza cuando no se proporciona un token de GitHub
  • AuthenticationError : se lanza cuando falla la autenticación
  • ResourceNotFoundError : se lanza cuando el recurso solicitado no existe
  • ValidationError : se lanza cuando falla la validación de entrada
  • RateLimitError : se lanza cuando se superan los límites de velocidad de la API de GitHub
  • NetworkError : se lanza cuando ocurren problemas de comunicación de red
  • GitHubApiError : Error general de problemas con la API de GitHub

Permisos de token de GitHub

Su token de acceso personal de GitHub necesita los siguientes permisos:

  • repo - Acceso completo a los repositorios
  • project - Acceso a proyectos
  • issues - Acceso a los problemas

Desarrollo

Edificio

npm run build

Validación

npm run validate

Pruebas

npm test

Pelusa

npm run lint

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    Enables LLMs to interact with GitHub issues by providing details as tasks, allowing for seamless integration and task management through GitHub's platform.
    Last updated -
    1
    19
    9
    JavaScript
    MIT License
  • -
    security
    F
    license
    -
    quality
    Enables 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 -
    9
    1
    TypeScript
  • -
    security
    F
    license
    -
    quality
    Enables management of development projects with GitHub integration, facilitating project tracking, repository linking, and metadata maintenance within the Model Context Protocol.
    Last updated -
    3
    JavaScript
  • -
    security
    F
    license
    -
    quality
    Enables interaction with GitHub issues via the Model Context Protocol, allowing users to list and create issues with secure authentication.
    Last updated -
    Python

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Monsoft-Solutions/model-context-protocols'

If you have feedback or need assistance with the MCP directory API, please join our Discord server