Salta ai contenuti

Server MCP

Il server MCP (Model Context Protocol) pubblica operazioni del motore di MicroLab come tool per client di IA (Claude Code, Claude Desktop, Cursor…). È la stessa superficie che usa il copilota dell’app. I tool sono generati dal registro di operazioni, quindi MCP e CLI non divergono.

Oggi pubblica 42 tool, 2 resource e 3 prompt di flusso.

Non è uno scarico del registro (92 operazioni): l’IA opera il laboratorio —avviare, testare, fare mock, fare debug—, mentre l’autorialità del catalogo (creare micro e scenari, modificare le impostazioni della macchina, import/export per file) resta nell’app e nella CLI. Un modello sceglie peggio quanto più lunga è la lista. Nulla si perde: il nascosto resta in microlab ops, nella CLI e nel control server.

Il client avvia microlab mcp come processo figlio. Richiede il motore compilato (npm run build:electron) e conviene usare percorsi assoluti e un -p esplicito (la cartella del progetto con .microlab/).

Claude Code:

Ventana de terminal
claude mcp add microlab -- node C:\strumenti\micro-lab\bin\microlab.js mcp -p C:\progetti\il-mio-progetto

Claude Desktop / Cursor (claude_desktop_config.json o .cursor/mcp.json):

{
"mcpServers": {
"microlab": {
"command": "node",
"args": ["C:\\strumenti\\micro-lab\\bin\\microlab.js", "mcp", "-p", "C:\\progetti\\il-mio-progetto"]
}
}
}

Con l’eseguibile globale (npm link), basta "command": "microlab", "args": ["mcp", "-p", "..."].

Con un motore attivo (l’app aperta o il daemon), lo stesso server è disponibile via Streamable HTTP alla rotta /mcp del control server, per client che non avviano processi. L’URL e il token vengono da control.json; ogni richiesta porta Authorization: Bearer <token>.

  • Tool — 42, raggruppati per dominio (ciclo di vita dello scenario, debug, Docker, catalogo di sola lettura, mock…). Ciascuno porta annotazioni readOnlyHint o destructiveHint dove si applicano, così il client decide cosa eseguire senza conferma.
  • Resourcemicrolab://guide (guida operativa per IA, in markdown) e microlab://status (snapshot JSON: versione, percorsi, motore attivo, scenario attivo e stato dei suoi micro).
  • Prompt — tre ricette di flusso: levantar-y-probar, mockear-dependencia e depurar-micro.

Come la CLI: se c’è un motore attivo, il tool si esegue contro di lui (stesso stato dell’UI); altrimenti, i tool senza stato girano in-proc. scenario_start e scenario_up_and_wait avviano il daemon se manca; i micro sopravvivono alla sessione MCP (chiudere il client di IA non li ferma; per fermarli, scenario_stop).

Nei progetti con accesso, il MCP esige la capacità mcp (indipendente da cli). Senza di essa, stdio termina con exit 5 e HTTP risponde 403. Vedi Capacità.