hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides access to GitHub's API for managing repositories, issues, and performing searches, allowing users to list repositories, get repository details, search repositories, get issues, and create new issues.
Enables interaction with GitLab's API to access projects, issues, and pipelines, with capabilities to list projects, get project details, search projects, manage issues, and retrieve pipeline information.
Provides geocoding, reverse geocoding, directions, and places search capabilities through the Google Maps API, allowing users to convert addresses to coordinates, find routes between locations, and search for places.
Servidor de Protocolo de Contexto de Modelo (MCP)
Un servidor modular que implementa el estándar Model Context Protocol , proporcionando herramientas para GitHub, GitLab, Google Maps, almacenamiento de memoria y automatización web Puppeteer.
Arquitectura
El servidor MCP cuenta con una arquitectura modular, donde cada herramienta se implementa como un módulo independiente. El servidor proporciona una puerta de enlace unificada que dirige las solicitudes a la herramienta correspondiente.
Características
- Puerta de enlace MCP : un punto final unificado para todas las solicitudes de herramientas que siguen el estándar MCP
- Manifiesto MCP : un punto final que describe todas las herramientas disponibles y sus capacidades
- Acceso directo a las herramientas : se puede acceder directamente a cada herramienta a través de sus propios puntos finales de API
- Diseño modular : fácil de agregar o quitar herramientas según sea necesario
Herramientas incluidas
- Herramienta de GitHub : interactúe con repositorios, problemas y búsquedas de GitHub
- Herramienta GitLab : Interactúe con proyectos, problemas y pipelines de GitLab
- Herramienta Google Maps : geocodificación, direcciones y búsqueda de lugares
- Herramienta de memoria : almacene y recupere datos de forma persistente
- Herramienta Puppeteer : toma capturas de pantalla, genera archivos PDF y extrae contenido de sitios web
Empezando
Prerrequisitos
- Python 3.8 o superior
- Node.js 14 o superior
- Una distribución de Linux basada en Red Hat (RHEL, CentOS, Fedora) o cualquier sistema Linux/macOS
Instalación
- Clonar este repositorio:Copy
- Instalar dependencias de Python:Copy
- Instalar las dependencias de Node.js:Copy
- Crea un archivo
.env
con tu configuración:Copy - Iniciar el servidor:Copy
Implementación en contenedores
Puede ejecutar el servidor utilizando Docker o Podman (el motor de contenedores de Red Hat).
Implementación de Docker
Si ya tiene instalados Docker y docker-compose:
- Construya la imagen de Docker:Copy
- Ejecute el contenedor:Copy
- Alternativamente, utilice docker-compose:Cree un archivo
docker-compose.yml
:Luego ejecuta:CopyCopy
Despliegue de Podman
Para sistemas basados en Red Hat (RHEL, CentOS, Fedora) que utilizan Podman:
- Construya la imagen del contenedor:Copy
- Ejecute el contenedor:Copy
- Si necesita almacenamiento persistente:Nota: El sufijoCopy
:Z
es importante para los sistemas habilitados para SELinux. - Usando Podman Compose (si está instalado):Copy
Uso del servidor MCP
Puerta de enlace MCP
MCP Gateway es el punto final principal para acceder a todas las herramientas que utilizan el estándar MCP.
Punto final : POST /mcp/gateway
Formato de solicitud :
Formato de respuesta :
Manifiesto del MCP
El Manifiesto MCP describe todas las herramientas disponibles y sus capacidades.
Punto final : GET /mcp/manifest
Formato de respuesta :
Acceso directo a herramientas
También se puede acceder directamente a cada herramienta a través de sus propios puntos finales API:
- GitHub:
/tool/github/...
- GitLab:
/tool/gitlab/...
- Google Maps:
/tool/gmaps/...
- Memoria:
/tool/memory/...
- Titiritero:
/tool/puppeteer/...
Consulte la documentación de la API de cada herramienta para obtener detalles sobre los puntos finales disponibles.
Documentación de herramientas
Herramienta de GitHub
La herramienta GitHub proporciona acceso a la API de GitHub para repositorios, problemas y búsquedas.
Acciones :
listRepos
: enumera los repositorios de un usuario u organizacióngetRepo
: obtener detalles de un repositorio específicosearchRepos
: Buscar repositoriosgetIssues
: Obtener problemas para un repositoriocreateIssue
: crea un nuevo problema en un repositorio
Herramienta GitLab
La herramienta GitLab proporciona acceso a la API de GitLab para proyectos, problemas y canalizaciones.
Acciones :
listProjects
: enumera todos los proyectos accesibles para el usuario autenticadogetProject
: Obtener detalles de un proyecto específicosearchProjects
: Busca proyectos en GitLabgetIssues
: Obtener problemas para un proyectocreateIssue
: Crea un nuevo problema en un proyectogetPipelines
: Obtener pipelines para un proyecto
Herramienta Google Maps
La herramienta Google Maps proporciona acceso a la API de Google Maps para geocodificación, direcciones y búsqueda de lugares.
Acciones :
geocode
: Convertir una dirección en coordenadas geográficasreverseGeocode
: Convierte coordenadas geográficas en una direccióngetDirections
: obtener direcciones entre dos ubicacionessearchPlaces
: busca lugares usando la API de Google PlacesgetPlaceDetails
: obtener detalles de un lugar específico
Herramienta de memoria
La herramienta Memoria proporciona un almacén de clave-valor persistente para almacenar y recuperar datos.
Acciones :
get
: Obtener un elemento de memoria por claveset
: crear o actualizar un elemento de memoriadelete
: eliminar un elemento de memoria mediante una teclalist
: enumera todos los elementos de memoria, con filtrado opcionalsearch
: Buscar elementos de memoria por valor
Herramienta de titiritero
La herramienta Puppeteer proporciona capacidades de automatización web para tomar capturas de pantalla, generar archivos PDF y extraer contenido de sitios web.
Acciones :
screenshot
: tomar una captura de pantalla de una página webpdf
: Generar un PDF de una página webextract
: Extraer contenido de una página web
Contribuyendo
¡Agradecemos sus contribuciones! Aquí le mostramos cómo ampliar el servidor MCP:
Agregar una nueva herramienta
- Cree un nuevo archivo en el directorio
tools
, por ejemplo,tools/newtool_tool.py
- Implementar la herramienta con acciones que sigan el mismo patrón que las herramientas existentes
- Agregue la herramienta al manifiesto en
app.py
- Registra el plano de la herramienta en
tools/__init__.py
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
- Protocolo de contexto del modelo para la especificación estándar
- Flask para el marco web
- Puppeteer para la automatización web
This server cannot be installed
Un servidor modular que implementa el estándar Model Context Protocol, proporcionando herramientas para interactuar con GitHub, GitLab, Google Maps, almacenamiento de memoria y automatización web a través de una puerta de enlace unificada.
- Architecture
- Features
- Getting Started
- Using the MCP Server
- Tool Documentation
- Contributing
- License
- Acknowledgements