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 💡
@modelcontextprotocol/server-filesystem
A Node.js server implementing the Model Context Protocol (MCP) to enable AI models to perform various filesystem operations, including reading, writing, creating, listing, moving, searching files and directories, and retrieving file metadata, with dynamic access control via MCP Roots.
mcp-aoai-web-browsing
A minimal Model Context Protocol 🖥️ server/client🧑💻with Azure OpenAI and 🌐 web browser control via Playwright.
lingo.dev
A MCP server for Lingo.dev that enables AI tools to translate apps, websites, and data using LLMs via the Model Context Protocol
youtube-video-summarizer-mcp
An MCP server that enables Claude to fetch and summarize YouTube videos by extracting titles, descriptions, and transcripts
mcp-server-rabbitmq
A [Model Context Protocol](https://www.anthropic.com/news/model-context-protocol) server implementation for RabbitMQ operation.
pearl-mcp-server
A Model Context Protocol (MCP) server implementation that exposes Pearl's AI and Expert services through a standardized interface.