** NOTA: Este proyecto ya no recibe mantenimiento, ya que debido a problemas con la memoria del modelo para modelos más pequeños, mi método preferido para servidores MCP es usar proveedores de servidores contenedorizados individuales en lugar de un proveedor de enrutamiento monolítico. El código se mantiene actualizado por si otros aún desean seguir esta ruta.
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:
git clone https://github.com/yourusername/mcp-server.git cd mcp-serverInstalar dependencias de Python:
pip install -r requirements.txtInstalar las dependencias de Node.js:
npm installCrea un archivo
.envcon tu configuración:SECRET_KEY=your-secret-key DEBUG=False # GitHub configuration GITHUB_TOKEN=your-github-token # GitLab configuration GITLAB_TOKEN=your-gitlab-token # Google Maps configuration GMAPS_API_KEY=your-google-maps-api-key # Memory configuration MEMORY_DB_URI=sqlite:///memory.db # Puppeteer configuration PUPPETEER_HEADLESS=true CHROME_PATH=/usr/bin/chromium-browserIniciar el servidor:
python app.py
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:
docker build -t mcp-server .Ejecute el contenedor:
docker run -p 5000:5000 --env-file .env mcp-serverAlternativamente, utilice docker-compose:
Cree un archivo
docker-compose.yml:version: '3' services: mcp-server: build: . ports: - "5000:5000" volumes: - ./data:/app/data env_file: - .env restart: unless-stoppedLuego ejecuta:
docker-compose up -d
Despliegue de Podman
Para sistemas basados en Red Hat (RHEL, CentOS, Fedora) que utilizan Podman:
Construya la imagen del contenedor:
podman build -t mcp-server .Ejecute el contenedor:
podman run -p 5000:5000 --env-file .env mcp-serverSi necesita almacenamiento persistente:
mkdir -p ./data podman run -p 5000:5000 --env-file .env -v ./data:/app/data:Z mcp-serverNota: El sufijo
:Zes importante para los sistemas habilitados para SELinux.Usando Podman Compose (si está instalado):
# Install podman-compose if needed pip install podman-compose # Use the same docker-compose.yml file as above podman-compose up -d
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.pyImplementar la herramienta con acciones que sigan el mismo patrón que las herramientas existentes
Agregue la herramienta al manifiesto en
app.pyRegistra 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
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
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.
- Arquitectura
- Características
- Empezando
- Uso del servidor MCP
- Documentación de herramientas
- Contribuyendo
- Licencia
- Expresiones de gratitud
Related Resources
Related MCP Servers
- Asecurity-licenseAqualityA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.Last updated -1371,192MIT License
- Asecurity-licenseAqualityA Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.Last updated -
- Asecurity-licenseAqualityA Model Context Protocol server that enables interaction with GitLab accounts to manage repositories, merge requests, code reviews, and CI/CD pipelines through natural language.Last updated -411212MIT License
- -security-license-qualityA Model Context Protocol server that supports remote connections and authenticates users via GitHub OAuth, allowing them to access tools based on their GitHub identity.Last updated -
Appeared in Searches
- Multi MCP (Model Context Protocol) implementation or management
- Techniques for Scraping Dynamic Websites with JavaScript and Handling CAPTCHA or Proxy Issues
- A service for finding locations and navigation directions
- GitHub repository or chat tool related to MCP
- A Python library for visualizing neural networks