In breve
La code mode permette a un agente AI di eseguire un breve programma che chiama più tool MCP, invece di chiamarli uno alla volta attraverso il modello. Perché fa risparmiare token e round trip, quando è utile e quando no, e come la esegue AnythingMCP: tool di codice salvati, codice inline e proposte dell'agente, in un runner isolato.
TL;DR: Con MCP semplice, un agente AI chiama un tool, legge l'intero risultato, decide, chiama il tool successivo e così via. Ogni passaggio è un round trip attraverso il modello, e ogni risultato intermedio passa dalla sua finestra di contesto. La code mode permette all'agente (o a un amministratore, in anticipo) di scrivere un breve programma JavaScript che esegue quelle chiamate, filtra e unisce i risultati e restituisce solo la risposta. In AnythingMCP il programma viene eseguito in un runner isolato che può raggiungere solo i tool MCP che il chiamante è già autorizzato a usare. La code mode è disponibile in AnythingMCP self-hosted dalla v0.52.0 e presto in AnythingMCP Cloud; è disattivata finché non la attivi.
Il problema: le chiamate ai tool passano dal modello
Prendi una domanda che un responsabile vendite potrebbe porre a un assistente collegato al CRM e all'ERP:
"Quali dei nostri preventivi aperti appartengono a clienti che hanno ancora una fattura scaduta?"
Con una chiamata a un tool per ogni passaggio, l'agente:
- chiama il CRM per elencare i preventivi aperti (diciamo 40) e li legge tutti e 40 nel suo contesto;
- chiama l'ERP una volta per cliente per cercare le fatture aperte: altre 40 chiamate, altri 40 risultati nel contesto;
- li confronta "a mente" e scrive la risposta.
Ogni chiamata è un turno: il modello scrive la chiamata, il client la esegue, il risultato torna nel modello, il modello lo legge e scrive la chiamata successiva. I risultati completi restano nel contesto, anche se per la risposta bastano forse cinque righe. Questo costa in token (tutto ciò che il modello legge viene fatturato e conta ai fini della finestra di contesto), in tempo (decine di turni) e in accuratezza (confrontare 40 elenchi leggendoli è il punto in cui i modelli sbagliano).
L'idea: lascia che il modello scriva un programma
I modelli linguistici sono bravi a scrivere brevi programmi. Quindi, invece di eseguire le chiamate di persona, l'agente ne scrive uno:
const quotes = await amcp.run('crm_list_open_quotes', {});
const overdue = [];
for (const q of quotes) {
const invoices = await amcp.run('erp_open_invoices', { customer: q.customerId });
const late = invoices.filter((i) => i.dueDate < new Date().toISOString().slice(0, 10));
if (late.length) overdue.push({ quote: q.number, customer: q.customerName, overdueInvoices: late.length });
}
return overdue;
I nomi dei tool sono puramente illustrativi; in pratica sono i tool dei tuoi connettori.
Il programma viene eseguito accanto ai tool. I 40 record dei preventivi e le 40 liste di fatture non entrano mai nel contesto del modello; vi entra solo la lista restituita. Un solo turno invece di quarantuno. L'idea è stata resa popolare nel 2025 con nomi come "code mode" e "code execution with MCP"; AnythingMCP la implementa come funzionalità governata del gateway.
| Una chiamata a un tool per passaggio | Code mode | |
|---|---|---|
| Turni attraverso il modello | Uno per chiamata (41 nell'esempio) | Uno |
| Cosa entra nel contesto | Ogni risultato intermedio | Il programma e il suo valore di ritorno |
| Cicli, filtri, join | Svolti dal modello, leggendo | Svolti dal codice, con esattezza |
| Ideale per | Ricerche singole, passaggi che richiedono giudizio | Lavoro multi-step ripetitivo e meccanico |
Tre forme in AnythingMCP
Tool di codice salvati. Un amministratore scrive un programma una volta e lo salva come tool, per esempio customer_overview(customer), che legge l'ERP e il CRM e restituisce un unico riepilogo. Per il client AI è un normale tool MCP: elencato, con permessi per ruolo, sottoposto ad audit. L'agente lo chiama e basta. Crea il tuo primo tool di codice.
Codice inline (code_execute). Sui server in cui è abilitato, l'agente può scrivere ed eseguire un programma al volo, sui tool che l'utente può usare. Sempre in sola lettura, sempre con i permessi del chiamante.
Proposte (code_propose_tool). Quando l'agente nota uno schema multi-step che vale la pena conservare, può proporlo come tool di codice salvato. La proposta non esegue nulla e non crea nulla; un amministratore rivede il programma e fa clic su Create tool. Come vengono approvate le proposte.
Cosa lo rende sicuro
Il codice scritto da un modello è per costruzione non attendibile: il risultato di un tool con prompt injection può influenzare ciò che il modello scrive. Per questo AnythingMCP non lo esegue mai nel proprio processo. Ogni esecuzione va a un servizio separato, il code-runner, un sottoprocesso blindato per ogni esecuzione, senza rete, senza filesystem, senza variabili d'ambiente e senza segreti. L'unica via d'uscita è amcp.run, a cui il gateway risponde con il ruolo del chiamante, con le stesse regole di lettura/scrittura di una chiamata diretta a un tool. Ogni esecuzione e ogni chiamata a un tool al suo interno finiscono nel log di audit. Il modello completo: Esecuzione sicura del codice per agenti AI.
Quando la code mode aiuta e quando no
Aiuta quando il lavoro è meccanico e ripetitivo: la stessa ricerca per 100 articoli, una somma tra due sistemi, l'abbinamento di fatture e ordini, un report che richiede sempre le stesse cinque chiamate. Vedi tre ricette.
Non aiuta quando c'è una sola chiamata da fare (un programma attorno a una singola chiamata aggiunge solo un passaggio), oppure quando ogni passaggio richiede il giudizio del modello su ciò che ha appena letto ("leggi questo contratto e decidi cosa controllare dopo"). Le scritture sono volutamente limitate: il codice inline non scrive mai, e un tool di codice salvato può chiamare tool di scrittura solo se un amministratore lo consente, nell'edizione Enterprise.
Disponibilità e limiti
| Self-hosted (v0.52.0+) | AnythingMCP Cloud | |
|---|---|---|
| Code mode | Disponibile, disattivata di default | Presto disponibile |
| Requisiti | Il servizio code-runner e la code mode attivata per ogni server MCP | – |
Per edizione, come annunciato con la v0.52:
| Community | Starter | Team | Enterprise | |
|---|---|---|---|---|
| Tool di codice salvati | 3 | 5 | 20 | Illimitati |
| Codice inline e proposte dell'agente | – | – | ✓ | ✓ |
| Tool di codice che possono scrivere, "run as definer" | – | – | – | ✓ |
Una singola esecuzione è limitata a 10 secondi, 500 chiamate a tool (16 alla volta) e 1 MB di dati restituiti. I tool di codice sono serviti solo sui server MCP propri di un workspace, mai sull'endpoint condiviso /mcp usato dai client AI delle directory. Confronta i piani.
FAQ
La code mode sostituisce MCP? No. È un modo di usare i tool MCP. Il programma chiama gli stessi tool che l'agente potrebbe chiamare direttamente, attraverso lo stesso gateway e gli stessi permessi.
Quali client AI la supportano?
Tutti. Un tool di codice salvato è un normale tool MCP, e code_execute è un normale tool che riceve un programma come argomento. Claude, ChatGPT, Copilot, Gemini e Cursor possono chiamare entrambi.
Quale linguaggio?
JavaScript, come corpo di una funzione async. Niente import, niente pacchetti: il programma dispone di amcp e del linguaggio stesso.
Quanto fa risparmiare? Dipende interamente dal compito. Una singola ricerca non fa risparmiare nulla. Un compito che leggerebbe decine di risultati intermedi nel contesto fa risparmiare la maggior parte di quei token e di quei turni, perché al modello torna solo il valore di ritorno.
Correlati
- Crea il tuo primo tool di codice, passo dopo passo: ordini ERP e account CRM in una sola chiamata
- Esecuzione sicura del codice per agenti AI: come funziona il runner isolato
- Ricette per la code mode: ricavi mensili, riconciliazione fatture, 100 ricerche di prezzo
- L'agente propone un tool di codice, l'amministratore lo approva
- Cos'è MCP?
- Governance MCP, ruoli utente e permessi
Questa guida ti è stata utile?