Services
Vitruvyan Docs
MCP Gateway (Model Context Protocol)
Il servizio MCP è un gateway stateless che espone un set di tool “function-calling” e applica una catena di governance/audit (Sacred Orders) a ogni esecuzione.
Runtime mode
MCP_DOMAIN=generic(default): catalogo tool agnostico.MCP_DOMAIN=finance: abilita adapter finance (alias compatibili Vitruvyan comescreen_tickers,compare_tickers,query_sentiment).
Scopo (domain-agnostic)
- Fornire un endpoint per scoprire i tool disponibili (
GET /tools). - Fornire un endpoint per eseguire un tool (
POST /execute) e:- emettere un evento sul bus (Synaptic Conclave / Redis),
- applicare validazioni minime (Orthodoxy Wardens),
- archiviare input+output per audit (Vault Keepers / PostgreSQL),
- esportare metriche (Prometheus).
Non-scope (importante)
- Non è un orchestratore di flussi: l’orchestrazione deve restare altrove (es. LangGraph o equivalente).
- Non contiene logica di dominio: il catalogo tool e i relativi executor sono vertical-specific.
Nota: l’implementazione corrente include alcuni tool con terminologia e dataset legati a una vertical precedente. In vitruvyan-core vanno trattati come placeholder/migrazione, non come contratto canonico.
API
GET /descrizione servizio + link agli endpointGET /healthhealthcheck (include stato Redis)GET /toolsritorna gli schema tool in formato compatibile “OpenAI function calling”POST /executeesegue un tool con audit/validazioneGET /metricsmetriche Prometheus
Finance mode (MCP_DOMAIN=finance) aggiunge:
GET /v1/finance/configGET /v1/finance/toolsPOST /v1/finance/normalize
Configurazione (env)
Minime:
REDIS_HOST,REDIS_PORT(bus/eventing)POSTGRES_HOST,POSTGRES_PORT,POSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORD(audit store viaPostgresAgent)
Dipendenze esterne (tipicamente vertical-specific):
LANGGRAPH_URL/LANGGRAPH_API(backend di esecuzione tool/orchestrazione)NEURAL_ENGINE_API,VEE_ENGINE_API,PATTERN_WEAVERS_API(se usati dagli executor attivi)
Eventing (Redis)
Per ogni esecuzione tool, pubblica su conclave.mcp.actions un payload con:
conclave_idtool,argsuser_idtimestamp
Audit (PostgreSQL)
Archivia ogni chiamata tool nella tabella mcp_tool_calls (schema definito dal vertical/deployment), includendo:
conclave_id,tool_name,args,result,orthodoxy_status,user_id,created_at
Observability (Prometheus)
Espone contatori/istogrammi per:
- volume richieste per tool e status
- durata esecuzione per tool
- outcome delle validazioni Orthodoxy
Come aggiungere un tool (workflow)
- Definisci lo schema in
services/api_mcp/schemas/tools.py. - Implementa l’executor async in
services/api_mcp/tools/. - Registra/normalizza in
services/api_mcp/tools/__init__.py. - (Opzionale) aggiungi regole di validazione specifiche in
services/api_mcp/middleware.py. - Aggiorna (se serve) le migrazioni DB per audit.