Expert Registry MCP Server

Un servidor MCP para descubrimiento, registro e inyección de contexto de expertos, que utiliza bases de datos vectoriales y de grafos.

Documentación

Servidor MCP de Registro de Expertos

Última actualización: 2025-06-30

Un servidor MCP de alto rendimiento para descubrimiento, registro e inyección de contexto de expertos, construido con FastMCP v2, que incluye integración de bases de datos vectoriales y de grafos para mejorar la búsqueda semántica y el modelado de relaciones.

Características

  • 🚀 Alto rendimiento: Caché multicapa con índices vectoriales para consultas en menos de un milisegundo
  • 📁 Actualizaciones basadas en archivos: Recarga en caliente ante cambios en archivos de registro/contexto
  • 🔍 Búsqueda semántica: Integración de base de datos vectorial para descubrimiento de expertos basado en significado
  • 🔗 Modelado de relaciones: Base de datos de grafos para redes de expertos y formación de equipos
  • 💉 Inyección de contexto: Mejora de prompts impulsada por IA con conocimiento experto
  • 📊 Analíticas: Seguimiento de rendimiento con filtrado colaborativo
  • 🧠 Descubrimiento híbrido: Puntuación combinada de similitud vectorial y conectividad de grafos
  • 🐍 Python primero: Construido con FastMCP v2 para código limpio y pitónico

Instalación

Docker (Recomendado para producción)

La forma más sencilla de ejecutar el servidor MCP de Registro de Expertos es usando Docker:

# Build and deploy locally
./scripts/build.sh
./scripts/deploy.sh

# Or use pre-built image from GitHub Container Registry
docker pull ghcr.io/agentience/expert-registry-mcp:latest

Características:

  • 🐳 Servicio de contenedor único para múltiples clientes MCP
  • 📦 Contextos de expertos y registro mapeados al host para edición fácil
  • 🔄 Soporte de recarga en caliente cuando los archivos cambian en el host
  • 🌐 Transporte SSE para conexiones de clientes
  • 🗄️ Incluye configuración de base de datos Neo4j
  • 🚀 Listo para producción con comprobaciones de salud

Consulta DOCKER.md para la guía de despliegue completa.

Desarrollo local

Usando uv (recomendado):

# Create virtual environment and install
uv venv
uv pip install -e .

# Or install directly
uv pip install expert-registry-mcp

Usando pip:

pip install expert-registry-mcp

Configuración de la base de datos

Base de datos vectorial (ChromaDB - integrada)

# ChromaDB is embedded, no separate installation needed
# It will create a vector-db directory automatically

Base de datos de grafos (Neo4j)

# Option 1: Docker (recommended)
docker run -d --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/password \
  neo4j:latest

# Option 2: Local installation
# Download from https://neo4j.com/download/

Inicio rápido

  1. Configura la estructura de directorios de tu sistema de expertos:
expert-system/
├── registry/
│   └── expert-registry.json
├── expert-contexts/
│   ├── aws-amplify-gen2.md
│   ├── aws-cloudscape.md
│   └── ...
└── performance/
    └── metrics.json
  1. Configura el entorno:
export EXPERT_SYSTEM_PATH=/path/to/expert-system
export NEO4J_URI=bolt://localhost:7687
export NEO4J_PASSWORD=password
  1. Ejecuta el servidor:
# Using FastMCP CLI
fastmcp run expert-registry-mcp

# Or using Python
python -m expert_registry_mcp.server

Configuración de Claude Desktop

Añade a tu configuración de Claude Desktop:

{
  "mcpServers": {
    "expert-registry": {
      "command": "uv",
      "args": ["run", "expert-registry-mcp"],
      "env": {
        "EXPERT_SYSTEM_PATH": "/path/to/expert-system",
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_PASSWORD": "password"
      }
    }
  }
}

Ejemplos de uso

Descubrimiento básico de expertos

# Detect technologies in your project
technologies = await expert_detect_technologies(
    scan_paths=["./src", "./package.json"]
)

# Select the best expert with hybrid search
result = await expert_smart_discover(
    context={
        "description": "Refactor authentication system using AWS Amplify",
        "technologies": technologies.technologies,
        "constraints": ["maintain backward compatibility"],
        "preferred_strategy": "single"
    }
)

Inyección de contexto

# Load expert context
context = await expert_load_context(
    expert_id=result.expert.id
)

# Inject into prompt
enhanced_prompt = await expert_inject_context(
    prompt="Refactor the authentication system",
    expert_id=result.expert.id,
    injection_points=["constraints", "patterns", "quality-criteria"]
)

Seguimiento de rendimiento

# Track usage
await expert_track_usage(
    expert_id=result.expert.id,
    task_id="auth-refactor-001",
    outcome={
        "success": True,
        "adherence_score": 9.5,
        "task_type": "refactoring"
    }
)

# Get analytics
analytics = await expert_get_analytics(
    expert_id=result.expert.id
)

Herramientas disponibles

Gestión de registro

  • expert_registry_list - Listar expertos con filtrado
  • expert_registry_get - Obtener detalles de un experto
  • expert_registry_search - Buscar expertos por consulta

Selección de expertos

  • expert_detect_technologies - Detectar tecnologías de proyecto
  • expert_select_optimal - Seleccionar el mejor experto para una tarea
  • expert_assess_capability - Evaluar la capacidad del experto
  • expert_smart_discover - Búsqueda híbrida impulsada por IA (vectorial + grafos)

Búsqueda semántica

  • expert_semantic_search - Buscar usando lenguaje natural
  • expert_find_similar - Encontrar expertos similares

Operaciones de grafos

  • expert_explore_network - Explorar relaciones entre expertos
  • expert_find_combinations - Encontrar equipos de expertos complementarios

Operaciones de contexto

  • expert_load_context - Cargar conocimiento experto
  • expert_inject_context - Mejorar prompts con experiencia

Analíticas

  • expert_track_usage - Registrar rendimiento de expertos
  • expert_get_analytics - Obtener métricas de rendimiento

Formato del registro de expertos

{
  "version": "1.0.0",
  "last_updated": "2025-06-30T00:00:00Z",
  "experts": [
    {
      "id": "aws-amplify-gen2",
      "name": "AWS Amplify Gen 2 Expert",
      "version": "1.0.0",
      "description": "Expert in AWS Amplify Gen 2 development",
      "domains": ["backend", "cloud", "serverless"],
      "specializations": [
        {
          "technology": "AWS Amplify Gen 2",
          "frameworks": ["AWS CDK", "TypeScript"],
          "expertise_level": "expert"
        }
      ],
      "workflow_compatibility": {
        "feature": 0.95,
        "bug-fix": 0.85,
        "refactoring": 0.80,
        "investigation": 0.70,
        "article": 0.60
      },
      "constraints": [
        "Use TypeScript-first approach",
        "Follow AWS Well-Architected Framework"
      ],
      "patterns": [
        "Infrastructure as Code",
        "Serverless-first architecture"
      ],
      "quality_standards": [
        "100% type safety",
        "Comprehensive error handling"
      ]
    }
  ]
}

Formato de contexto de experto

Los archivos de contexto de experto son documentos markdown en expert-contexts/:

# AWS Amplify Gen 2 Expert Context

## Constraints
- Use TypeScript for all backend code
- Follow AWS Well-Architected Framework principles
- Implement proper error handling and logging

## Patterns
- Infrastructure as Code using CDK
- Serverless-first architecture
- Event-driven communication

## Quality Standards
- 100% TypeScript type coverage
- Comprehensive error handling
- Unit test coverage > 80%

Desarrollo

Configurar entorno de desarrollo

# Clone repository
git clone https://github.com/agentience/expert-registry-mcp
cd expert-registry-mcp

# Create virtual environment with uv
uv venv
source .venv/bin/activate  # or .venv\Scripts\activate on Windows

# Install in development mode
uv pip install -e ".[dev]"

Ejecutar pruebas

# Run all tests
pytest

# Run with coverage
pytest --cov=expert_registry_mcp

# Run specific test file
pytest tests/test_registry.py

Calidad del código

# Format code
black src tests

# Lint code
ruff check src tests

# Type checking
mypy src

Arquitectura

Caché multicapa

  • Caché de registro: TTL de 24 horas para definiciones de expertos
  • Caché vectorial: Embeddings en caché hasta que el experto se actualice
  • Caché de grafos: Consultas de relaciones en caché durante 10 minutos
  • Caché de selección: TTL de 5 minutos para detección de tecnologías
  • Caché de contexto: Caché LRU para contextos de expertos (50 entradas)

Integración de bases de datos

  • ChromaDB: Base de datos vectorial integrada para búsqueda semántica
    • Múltiples colecciones para diferentes tipos de embeddings
    • Generación automática de embeddings con sentence-transformers
  • Neo4j: Base de datos de grafos para modelado de relaciones
    • Relaciones Experto-Tecnología-Tarea
    • Cálculos de sinergia de equipo
    • Seguimiento de evolución

Características de rendimiento

  • Índices vectoriales: Índices Annoy para búsqueda de similitud ultrarrápida
  • Combinaciones precalculadas: Pares de expertos comunes en caché
  • Operaciones por lotes: Procesamiento masivo eficiente
  • Invalidación inteligente: Actualizaciones de caché dirigidas

Vigilancia de archivos

  • Usa watchdog para monitoreo de archivos multiplataforma
  • Recarga automática del registro y sincronización de base de datos
  • No se requiere reiniciar el servidor para actualizaciones

Solución de problemas

Problemas comunes

  1. Experto no encontrado

    • Verifica el ID del experto en el registro
    • Comprueba que las rutas de archivo sean correctas
    • Asegúrate de que el JSON del registro sea válido
  2. Archivo de contexto faltante

    • Revisa el directorio de contextos de expertos
    • Verifica que el nombre del archivo coincida con el ID del experto
    • Asegúrate de la extensión .md
  3. La caché no se actualiza

    • El vigilante de archivos puede necesitar reiniciarse
    • Comprueba los permisos de archivo
    • Verifica EXPERT_SYSTEM_PATH

Modo de depuración

Habilita el registro de depuración:

export FASTMCP_DEBUG=1
expert-registry-mcp

Características avanzadas

Búsqueda semántica

El sistema usa ChromaDB para habilitar consultas en lenguaje natural:

# Find experts by meaning, not just keywords
results = await expert_semantic_search(
    query="implement secure authentication with cloud integration",
    search_mode="hybrid"
)

Exploración de relaciones

Neo4j impulsa consultas de relaciones sofisticadas:

# Explore expert networks
network = await expert_explore_network(
    start_expert_id="aws-amplify-gen2",
    depth=2,
    relationship_types=["SPECIALIZES_IN", "COMPATIBLE_WITH"]
)

Formación de equipos

Composición de equipos impulsada por IA:

# Find complementary expert teams
teams = await expert_find_combinations(
    requirements=["AWS Amplify", "React", "DynamoDB"],
    team_size=3
)

Contribuciones

  1. Haz un fork del repositorio
  2. Crea tu rama de características (git checkout -b feature/amazing-feature)
  3. Ejecuta pruebas y linting
  4. Haz commit de tus cambios (git commit -m 'Add amazing feature')
  5. Haz push a la rama (git push origin feature/amazing-feature)
  6. Abre un Pull Request

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles

Soporte