Expert Registry MCP Server
Um servidor MCP para descoberta, registro e injeção de contexto de especialistas, utilizando bancos de dados vetoriais e de grafos.
Documentação
Servidor MCP de Registro de Especialistas
Última atualização: 30/06/2025
Um servidor MCP de alto desempenho para descoberta, registro e injeção de contexto de especialistas, construído com FastMCP v2, com integração de banco de dados vetorial e de grafos para busca semântica aprimorada e modelagem de relacionamentos.
Recursos
- 🚀 Alto desempenho: Cache em múltiplas camadas com índices vetoriais para consultas em menos de um milissegundo
- 📁 Atualizações baseadas em arquivos: Recarga automática em alterações de arquivos de registro/contexto
- 🔍 Busca semântica: Integração com banco de dados vetorial para descoberta de especialistas baseada em significado
- 🔗 Modelagem de relacionamentos: Banco de dados de grafos para redes de especialistas e formação de equipes
- 💉 Injeção de contexto: Aprimoramento de prompts com IA usando conhecimento de especialistas
- 📊 Analytics: Rastreamento de desempenho com filtragem colaborativa
- 🧠 Descoberta híbrida: Pontuação combinada de similaridade vetorial e conectividade de grafos
- 🐍 Foco em Python: Construído com FastMCP v2 para código limpo e idiomático
Instalação
Docker (Recomendado para produção)
A maneira mais fácil de executar o servidor MCP de Registro de Especialistas é 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
Recursos:
- 🐳 Serviço em contêiner único para múltiplos clientes MCP
- 📦 Contextos de especialistas e registro mapeados para o host para edição fácil
- 🔄 Suporte a recarga automática quando arquivos mudam no host
- 🌐 Transporte SSE para conexões de clientes
- 🗄️ Inclui configuração do banco de dados Neo4j
- 🚀 Pronto para produção com verificações de saúde
Consulte DOCKER.md para o guia completo de implantação.
Desenvolvimento 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
Configuração do banco de dados
Banco de dados vetorial (ChromaDB - incorporado)
# ChromaDB is embedded, no separate installation needed
# It will create a vector-db directory automatically
Banco de dados 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/
Início rápido
- Configure a estrutura de diretórios do seu sistema de especialistas:
expert-system/
├── registry/
│ └── expert-registry.json
├── expert-contexts/
│ ├── aws-amplify-gen2.md
│ ├── aws-cloudscape.md
│ └── ...
└── performance/
└── metrics.json
- Configure o ambiente:
export EXPERT_SYSTEM_PATH=/path/to/expert-system
export NEO4J_URI=bolt://localhost:7687
export NEO4J_PASSWORD=password
- Execute o servidor:
# Using FastMCP CLI
fastmcp run expert-registry-mcp
# Or using Python
python -m expert_registry_mcp.server
Configuração do Claude Desktop
Adicione à sua configuração do 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"
}
}
}
}
Exemplos de uso
Descoberta básica de especialistas
# 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"
}
)
Injeção 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"]
)
Rastreamento de desempenho
# 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
)
Ferramentas disponíveis
Gerenciamento de registro
expert_registry_list- Listar especialistas com filtrosexpert_registry_get- Obter detalhes do especialistaexpert_registry_search- Buscar especialistas por consulta
Seleção de especialistas
expert_detect_technologies- Detectar tecnologias do projetoexpert_select_optimal- Selecionar o melhor especialista para a tarefaexpert_assess_capability- Avaliar capacidade do especialistaexpert_smart_discover- Busca híbrida com IA (vetorial + grafo)
Busca semântica
expert_semantic_search- Buscar usando linguagem naturalexpert_find_similar- Encontrar especialistas semelhantes
Operações de grafo
expert_explore_network- Explorar relacionamentos de especialistasexpert_find_combinations- Encontrar equipes complementares de especialistas
Operações de contexto
expert_load_context- Carregar conhecimento do especialistaexpert_inject_context- Aprimorar prompts com expertise
Analytics
expert_track_usage- Registrar desempenho do especialistaexpert_get_analytics- Obter métricas de desempenho
Formato do registro de especialistas
{
"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 do contexto do especialista
Arquivos de contexto de especialistas são documentos Markdown em 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%
Desenvolvimento
Configurar ambiente de desenvolvimento
# 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]"
Executar testes
# Run all tests
pytest
# Run with coverage
pytest --cov=expert_registry_mcp
# Run specific test file
pytest tests/test_registry.py
Qualidade de código
# Format code
black src tests
# Lint code
ruff check src tests
# Type checking
mypy src
Arquitetura
Cache em múltiplas camadas
- Cache de registro: TTL de 24 horas para definições de especialistas
- Cache vetorial: Embeddings em cache até atualizações de especialistas
- Cache de grafo: Consultas de relacionamento em cache por 10 minutos
- Cache de seleção: TTL de 5 minutos para detecção de tecnologia
- Cache de contexto: Cache LRU para contextos de especialistas (50 entradas)
Integração com banco de dados
- ChromaDB: Banco de dados vetorial incorporado para busca semântica
- Múltiplas coleções para diferentes tipos de embedding
- Geração automática de embeddings com sentence-transformers
- Neo4j: Banco de dados de grafos para modelagem de relacionamentos
- Relacionamentos Especialista-Tecnologia-Tarefa
- Cálculos de sinergia de equipe
- Rastreamento de evolução
Recursos de desempenho
- Índices vetoriais: Índices Annoy para busca de similaridade ultrarrápida
- Combinações pré-computadas: Pares comuns de especialistas em cache
- Operações em lote: Processamento em massa eficiente
- Invalidação inteligente: Atualizações direcionadas de cache
Monitoramento de arquivos
- Usa
watchdogpara monitoramento de arquivos multiplataforma - Recarga automática de registro e sincronização de banco de dados
- Nenhum reinício do servidor necessário para atualizações
Solução de problemas
Problemas comuns
-
Especialista não encontrado
- Verifique o ID do especialista no registro
- Verifique se os caminhos dos arquivos estão corretos
- Garanta que o JSON do registro seja válido
-
Arquivo de contexto ausente
- Verifique o diretório de contextos de especialistas
- Verifique se o nome do arquivo corresponde ao ID do especialista
- Garanta a extensão .md
-
Cache não atualizando
- O monitor de arquivos pode precisar ser reiniciado
- Verifique as permissões dos arquivos
- Verifique EXPERT_SYSTEM_PATH
Modo de depuração
Ative o registro de depuração:
export FASTMCP_DEBUG=1
expert-registry-mcp
Recursos avançados
Busca semântica
O sistema usa ChromaDB para permitir consultas em linguagem natural:
# Find experts by meaning, not just keywords
results = await expert_semantic_search(
query="implement secure authentication with cloud integration",
search_mode="hybrid"
)
Exploração de relacionamentos
O Neo4j alimenta consultas sofisticadas de relacionamentos:
# Explore expert networks
network = await expert_explore_network(
start_expert_id="aws-amplify-gen2",
depth=2,
relationship_types=["SPECIALIZES_IN", "COMPATIBLE_WITH"]
)
Formação de equipes
Composição de equipes com IA:
# Find complementary expert teams
teams = await expert_find_combinations(
requirements=["AWS Amplify", "React", "DynamoDB"],
team_size=3
)
Contribuindo
- Faça um fork do repositório
- Crie sua branch de recurso (
git checkout -b feature/amazing-feature) - Execute testes e linting
- Faça commit das suas alterações (
git commit -m 'Add amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes