MCP-NAV v0.3.0

April 17, 2025 · View on GitHub

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:

VariableDescripciónValor por defecto
MCP_NAV_PORTPuerto del servidor9090
MCP_NAV_HOSTHost del servidor0.0.0.0
MCP_NAV_REDIS_HOSTHost de Redislocalhost
MCP_NAV_REDIS_PORTPuerto de Redis6379
MCP_NAV_ES_HOSTHost de Elasticsearchlocalhost
MCP_NAV_ES_PORTPuerto de Elasticsearch9200
MCP_NAV_CACHE_TTLTTL del caché (segundos)3600
MCP_NAV_JWT_SECRETClave secreta para JWTyour-secret-key

API REST

Usuarios

Crear usuario

POST /users/
Content-Type: application/json

{
    "email": "user@example.com",
    "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.