MCP-NAV v0.3.0
Servidor MCP para navegar modelcontextprotocol.io con características avanzadas.
Características
- Navegación y búsqueda en modelcontextprotocol.io
- Caché de contenido con Redis
- Búsqueda semántica con Elasticsearch
- Gestión de usuarios y autenticación
- Métricas con Prometheus
- Trazabilidad con OpenTelemetry
- Logging estructurado con structlog
Requisitos
- Python 3.11+
- Redis 5.0+
- Elasticsearch 8.12+
- Docker 20.10+ (opcional)
- Docker Compose 2.0+ (opcional)
Instalación
Usando Poetry
# Instalar dependencias
poetry install
# Activar entorno virtual
poetry shell
Usando Docker
# Construir imagen
docker build -t mcp-nav .
# Ejecutar contenedor
docker run -p 9090:9090 mcp-nav
Usando Docker Compose
# Levantar servicios
docker-compose up -d
Configuración
La configuración se realiza mediante variables de entorno:
| Variable | Descripción | Valor por defecto |
|---|---|---|
| MCP_NAV_PORT | Puerto del servidor | 9090 |
| MCP_NAV_HOST | Host del servidor | 0.0.0.0 |
| MCP_NAV_REDIS_HOST | Host de Redis | localhost |
| MCP_NAV_REDIS_PORT | Puerto de Redis | 6379 |
| MCP_NAV_ES_HOST | Host de Elasticsearch | localhost |
| MCP_NAV_ES_PORT | Puerto de Elasticsearch | 9200 |
| MCP_NAV_CACHE_TTL | TTL del caché (segundos) | 3600 |
| MCP_NAV_JWT_SECRET | Clave secreta para JWT | your-secret-key |
API REST
Usuarios
Crear usuario
POST /users/
Content-Type: application/json
{
"email": "[email protected]",
"name": "John Doe",
"password": "secret"
}
Obtener usuario
GET /users/{user_id}
Actualizar usuario
PUT /users/{user_id}
Content-Type: application/json
{
"name": "Jane Doe"
}
Eliminar usuario
DELETE /users/{user_id}
Actualizar foto de perfil
PUT /users/{user_id}/profile-picture?picture_url=https://example.com/photo.jpg
Desarrollo
Pruebas
# Ejecutar pruebas
poetry run pytest
# Con cobertura
poetry run pytest --cov=app
Linting y Formateo
# Formatear código
poetry run black app tests
# Ordenar imports
poetry run isort app tests
# Verificar tipos
poetry run mypy app
# Linting
poetry run pylint app
Pre-commit
El proyecto usa pre-commit para verificar el código antes de cada commit:
# Instalar hooks
poetry run pre-commit install
# Ejecutar manualmente
poetry run pre-commit run --all-files
Métricas y Monitoreo
- Métricas expuestas en
/metrics(Prometheus) - Trazas con OpenTelemetry
- Logs estructurados con structlog
Licencia
Este proyecto está licenciado bajo los términos de la licencia MIT.
Recommend MCP Servers 💡
mcp-python-interpreter
A Model Context Protocol (MCP) server that allows LLMs to interact with Python environments, execute Python code, manage packages, and perform file operations.
@superbuilders/oneroster
A TypeScript SDK for 1EdTech OneRoster API that doubles as an installable MCP server exposing SDK methods as AI-invokable tools.
@mindpilot/mcp
Visualize code architecture and flows for AI agents via MCP server with local processing.
searxng-mcp-server
An MCP server implementation integrated with SearXNG for privacy-respecting search capabilities for AI agents.
hand-marketing-mcp-sse
An MCP server that analyzes user conversations to extract multi-dimensional tags, matches them with product tags from an industry database, and provides personalized product recommendations.
sitemcp
A Model Context Protocol (MCP) server that fetches an entire website and makes its content available as context for large language models.