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
- 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
- Configura el entorno:
export EXPERT_SYSTEM_PATH=/path/to/expert-system
export NEO4J_URI=bolt://localhost:7687
export NEO4J_PASSWORD=password
- 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 filtradoexpert_registry_get- Obtener detalles de un expertoexpert_registry_search- Buscar expertos por consulta
Selección de expertos
expert_detect_technologies- Detectar tecnologías de proyectoexpert_select_optimal- Seleccionar el mejor experto para una tareaexpert_assess_capability- Evaluar la capacidad del expertoexpert_smart_discover- Búsqueda híbrida impulsada por IA (vectorial + grafos)
Búsqueda semántica
expert_semantic_search- Buscar usando lenguaje naturalexpert_find_similar- Encontrar expertos similares
Operaciones de grafos
expert_explore_network- Explorar relaciones entre expertosexpert_find_combinations- Encontrar equipos de expertos complementarios
Operaciones de contexto
expert_load_context- Cargar conocimiento expertoexpert_inject_context- Mejorar prompts con experiencia
Analíticas
expert_track_usage- Registrar rendimiento de expertosexpert_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
watchdogpara 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
-
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
-
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
-
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
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Ejecuta pruebas y linting
- Haz commit de tus cambios (
git commit -m 'Add amazing feature') - Haz push a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request
Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles