Skip to main content
Questa pagina fa parte di una skill per agenti di codifica IA ed è scritta per gli agenti, non per gli esseri umani. Per la documentazione Base44 leggibile dagli umani, consulta la documentazione per sviluppatori.

Sviluppa un’app Base44 da remoto tramite MCP

Collega il tuo agente di codifica alla sandbox di un’app Base44 e sviluppa direttamente al suo interno — esegui comandi, leggi e modifica file, usa grep, elenca le directory — mentre Base44 fornisce la sandbox e tu fornisci l’agente e l’LLM. Funziona con qualsiasi client MCP-compatibile. Gli esempi usano Claude Code.
Inizio più semplice: nell’editor dell’app Base44, clicca su Send to Coding Agent. Per un agente locale ti fornisce un prompt pronto da incollare (che recupera un README e guida la sandbox tramite MCP o la CLI base44 sandbox — Sezione 10); per il web ti fornisce un prompt da incollare in una chat claude.ai (con il connettore MCP di Base44) più un pulsante Open Claude. Il pulsante è la superficie di scoperta — il resto di questa skill è il riferimento.
Due trasporti: gli agenti web usano claude.ai con il connettore MCP di Base44 (Sezioni 1–9) — nota che questa è la normale chat di claude.ai, non Claude Code sul web (claude.ai/code), che gira nella sua sandbox basata su repo. Un agente locale può collegarsi allo stesso server MCP, oppure guidare la sandbox con la CLI base44 sandbox (un token CLI di Base44, Sezione 10) — stessi strumenti, stesso comportamento, stessi codici di errore; la CLI li espone semplicemente sotto nomi di comando più brevi (sandbox read, sandbox ls, …).

1. Collega il server MCP

L’endpoint MCP di Base44 è:
https://app.base44.com/mcp
Registralo con Claude Code (esegui da qualsiasi cartella):
claude mcp add --transport http base44 https://app.base44.com/mcp
Aggiungi --scope user se lo vuoi disponibile in ogni progetto invece che solo nella cartella corrente. claude mcp add scrive solo la configurazione — non autentica ancora.

2. Autenticati

Avvia Claude Code e apri il menu MCP:
claude
poi, all’interno di Claude Code:
/mcp
Seleziona base44Authenticate. Si apre un browser per il flusso OAuth di Base44 (PKCE) — accedi e approva. Quando ha successo, /mcp mostra base44 come connesso ed elenca i suoi strumenti. Client puri da CLI / headless che non possono aprire un browser usano invece il flusso device OAuth (/oauth/device/code) — richiedono un codice, lo approvano in un browser su un altro dispositivo e il client riceve il token.

Scopes

StrumentiScope richiesto
read_file, grep, list_directory, get_app_preview_url, get_app_status, list_user_appsapps:read (concesso di default)
write_file, edit_file, run_command, create_checkpointsandbox:write
sandbox:write non è concesso di default — le mutazioni di shell e file lo richiedono esplicitamente. Se gli strumenti di lettura funzionano ma quelli di mutazione restituiscono NOT_AUTHORIZED, al tuo token manca sandbox:write; riconnettiti e concedi l’accesso alla sandbox (il flusso device può richiederlo esplicitamente).

3. Scegli l’app e orientati

Ogni strumento richiede un appId obbligatorio. Trova le tue app con list_user_apps, poi fissa l’id nelle tue richieste così che l’agente lo passi a ogni chiamata. Inizia in sola lettura per costruire un modello mentale prima di cambiare qualcosa:
Using the base44 tools on appId <APP_ID>:
1. list_directory on the app root (recursive, depth 2)
2. read_file src/App.jsx and src/pages.config.js
3. grep for the component I want to change
Summarize the structure before editing.
Avvio a freddo: se l’app non ha una sandbox in esecuzione, la prima chiamata dello strumento ne avvia una in modo trasparente dall’ultimo commit — richiede solo un po’ più di tempo. Le chiamate successive sono veloci.
Nomi CLI: tramite la CLI base44 sandbox (Sezione 10) questi strumenti di lettura sono list_directorysandbox ls, read_filesandbox read, e grepsandbox grep.

4. Apporta modifiche

  • edit_file (sandbox edit nella CLI) — preferito per modificare file esistenti. Fornisci modifiche esatte old_textnew_text. Ogni old_text deve essere unico nel file a meno che non imposti replace_all. Tutte le modifiche in una chiamata vengono applicate atomicamente (tutto o niente) e ricevi un diff unificato. Passa dry_run: true per visualizzare il diff senza scrivere.
  • write_file (sandbox write nella CLI) — per creare nuovi file. Per sovrascrivere un file esistente devi passare overwrite: true (non lo sovrascrive mai silenziosamente).
  • run_command (sandbox run nella CLI) — esegue qualsiasi comando bash nella sandbox (build, install, scaffolding, codemods). La directory di lavoro predefinita è la radice dell’app; cd non persiste tra le chiamate, quindi usa il parametro cwd o concatena i comandi (cd sub && cmd). Il timeout predefinito è 120s (max 600s); l’output è limitato a ~1 MB.
  • create_checkpoint (sandbox checkpoint nella CLI) — salva un punto di ripristino nominato a cui l’utente può tornare in seguito. Accetta un name opzionale (messaggio/titolo; generato automaticamente se omesso). Eventuali modifiche in sospeso vengono scaricate e committate prima così che il checkpoint si ancori al tuo codice più recente; restituisce quindi l’id del checkpoint, il nome e l’hash del commit git. Usalo per contrassegnare uno stato noto e funzionante prima o dopo un blocco di modifiche. (Se un auto-commit recente non può ancora essere confermato durevole, rifiuta con il codice ritentabile COMMIT_FLUSH_PENDING invece di fare il checkpoint di uno stato obsoleto — riprova a breve.)
Esempio:
On appId <APP_ID>, use edit_file to change the homepage heading in
src/pages/Home.jsx from "Welcome" to "Welcome back". Show me the diff first
with dry_run, then apply it.

5. Anteprima e verifica (il ciclo modifica → controllo)

Non esiste uno strumento di streaming dei log in tempo reale, ma puoi chiudere il ciclo di feedback:
  • Vedilo in diretta: get_app_preview_url avvia il server di sviluppo e restituisce l’URL di anteprima. Vite HMR riflette le tue modifiche mentre le apporti.
  • Stato della build: get_app_status restituisce ready / processing / error.
  • Mostra errori di build/tipo/lint su richiesta con run_command:
    npm run build       # bundler/compile errors
    npx tsc --noEmit    # type errors
    npm run lint        # lint errors
    
  • Leggi i log del server di sviluppo (Vite) — il server di sviluppo gestito scrive su /tmp/vite.log. Fai il tail tramite run_command per vedere gli errori HMR/compile:
    tail -c 32000 /tmp/vite.log
    
    (Questo è fuori dall’albero dell’app, quindi è raggiungibile solo tramite run_command, non tramite gli strumenti sui file — e quindi richiede sandbox:write.)
Un ciclo solido: edit_filenpm run build (o tail /tmp/vite.log) → correggi eventuali errori → get_app_preview_url per verificare visivamente.
Gli errori runtime del browser (un componente che compila ma genera errori al render, una chiamata API client fallita) appaiono nella console del browser, non in /tmp/vite.log. Apri l’URL di anteprima per rilevarli.

6. Come persistono le tue modifiche

Non devi “salvare”. Ogni chiamata di mutazione pianifica un auto-commit con debounce (~5 secondi): la modifica viene committata e inviata allo storage del codice di Base44, così:
  • sopravvive alla morte della sandbox (la sandbox viene ricreata dall’ultimo commit),
  • appare nelle schede Library/Data del builder,
  • mantiene coerenti i deploy delle funzioni backend, e
  • è inclusa quando pubblichi l’app.
Implicazioni pratiche:
  • C’è una piccola finestra di perdita (~5s) — non chiudere la sessione subito dopo l’ultima modifica; dagli un momento per committare.
  • Le modifiche a entità, agenti, workflow, funzioni backend e routing delle pagine vengono sincronizzate automaticamente in Base44 dopo il commit. Le semplici modifiche a pagine/componenti/CSS vivono in git e non richiedono nulla di extra.

7. Concorrenza: tu contro il builder di Base44

Tu e il builder Base44 in-app non potete mutare la stessa app contemporaneamente:
  • Mentre stai usando attivamente gli strumenti della sandbox, la chat del builder Base44 è bloccata (“An external agent is currently working on this app”). La tua sessione è implicita — le chiamate recenti agli strumenti sono la sessione; termina dopo un breve periodo di inattività (~10 min).
  • Se il builder Base44 è in fase di build, i tuoi strumenti di mutazione restituiscono BUILDER_BUSY. Fai polling di get_app_status e riprova quando è ready. Gli strumenti di sola lettura funzionano ancora durante una build.

8. Guardrail e limiti

  • I percorsi sono confinati all’app. Gli strumenti sui file operano solo all’interno della directory dell’app; i percorsi traversal/assoluti vengono rifiutati (PATH_OUTSIDE_SANDBOX).
  • .agents/ è off-limits agli strumenti sui file (PROTECTED_PATH) — contiene configurazioni e segreti gestiti dagli agenti (.agents/.env). Non tentare di leggerlo o modificarlo tramite gli strumenti sui file.
  • I limiti di frequenza si applicano per app: letture ~120/min, mutazioni ~60/min, comandi ~30/min. Se raggiungi RATE_LIMITED, rallenta.
  • delete_file non è uno strumento dedicato — elimina tramite run_command rm.

Codici di errore che puoi vedere

NOT_AUTHORIZED (scope/flag mancante) · APP_NOT_FOUND (id errato o nessun accesso) · PATH_OUTSIDE_SANDBOX · PROTECTED_PATH · NOT_FOUND · BINARY_FILE · EDIT_TEXT_NOT_FOUND · EDIT_TEXT_NOT_UNIQUE (rendi old_text unico o usa replace_all) · OVERWRITE_NOT_ALLOWED (passa overwrite: true) · TIMEOUT · OUTPUT_TRUNCATED · BUILDER_BUSY · COMMIT_FLUSH_PENDING (un auto-commit in sospeso non è ancora durevole; riprova a breve — per esempio su create_checkpoint) · RATE_LIMITED · BACKEND_ERROR. I messaggi sono scritti in modo che l’agente possa auto-correggersi — leggili e adattati.

9. Suggerimenti e trucchi

  • Leggi prima di scrivere. Un rapido list_directory + read_file (o grep) costa poco e migliora notevolmente la precisione delle modifiche.
  • Usa dry_run su edit_file per confermare il diff prima di impegnarti in una modifica, specialmente per chiamate multi-edit.
  • Preferisci edit_file a write_file per i file esistenti — modifiche chirurgiche evitano sovrascritture e producono un diff revisionabile.
  • Leggi intervalli di righe con offset/limit di read_file su file grandi invece di caricare tutto nel contesto.
  • Quando qualcosa “sembra rotto”, fai tail di /tmp/vite.log prima di indovinare — di solito nomina il file e la riga esatti.
  • Lascialo committare. Fai una pausa di qualche secondo dopo la modifica finale così che l’auto-commit atterri prima che ti disconnetti o pubblichi.
  • Checkpoint di stati noti e funzionanti. Usa create_checkpoint (sandbox checkpoint) per contrassegnare un punto di ripristino prima o dopo un blocco di modifiche rischiose — scarica prima le modifiche in sospeso, così l’utente può sempre tornare a quel punto.
  • Un agente alla volta. La funzionalità è progettata per un singolo agente esterno per app; non eseguire sessioni parallele sulla stessa app.

10. Agenti locali tramite la CLI base44 sandbox

Se il tuo agente gira sulla tua macchina, può guidare la stessa sandbox tramite la CLI di Base44 invece che MCP, autenticandosi con la CLI di Base44 invece che con OAuth. Stessi strumenti, stesso comportamento, stessi codici di errore (Sezione 8) — differiscono solo la superficie e l’autenticazione. Autenticazione. Accedi con la CLI di Base44 (base44 login) — la stessa credenziale usata per base44 functions deploy. Come i comandi base44 connectors senza progetto, i sottocomandi sandbox risolvono l’id dell’app da --app-id, poi BASE44_APP_ID, poi un .app.jsonc locale; non è richiesto alcun config.jsonc. Nomi dei comandi. La CLI espone ogni strumento sandbox sotto un nome più breve:
Strumento MCPComando CLI
list_directorybase44 sandbox ls
read_filebase44 sandbox read
write_filebase44 sandbox write
edit_filebase44 sandbox edit
run_commandbase44 sandbox run
grepbase44 sandbox grep
create_checkpointbase44 sandbox checkpoint
npx base44 sandbox read --app-id <APP_ID> src/App.jsx
base44 sandbox checkpoint accetta un --name opzionale (messaggio/titolo) e salva un punto di ripristino:
npx base44 sandbox checkpoint --app-id <APP_ID> --name "before refactor"
Passa a un agente il riferimento completo per un’app specifica (istruzioni, pubblico, non richiede autenticazione per il recupero):
https://app.base44.com/api/sandbox/<APP_ID>/local-agent/readme.md
(L’equivalente cloud/MCP è .../api/sandbox/<APP_ID>/claude-web/readme.md.) Tutto il resto in questa skill — il ciclo modifica→anteprima→verifica (Sezione 5), la persistenza (Sezione 6), la concorrenza (Sezione 7) e i guardrail (Sezione 8) — si applica identicamente; differiscono solo la superficie e l’autenticazione.

11. Connettori (integrazioni OAuth)

Oltre agli strumenti sandbox su file/shell, il server MCP di Base44 espone due strumenti per gestire un connettore OAuth di terze parti (Google Calendar, Gmail, Slack, …) su un’app. Non toccano il filesystem della sandbox — operano direttamente sullo stato del connettore dell’app. Entrambi accettano appId.
StrumentoScopeScopo
list_connectorsapps:readElenca i connettori dell’app. Senza integrationTypes, restituisce il catalogo completo (nome, descrizione, connesso?, e — se connesso — stato e scope concessi). Passa integrationTypes per il dettaglio su specifici.
initiate_connector_connectionapps:writeConnetti (o ri-definisci gli scope di) un connettore. Input: appId, integrationType, scopes, connectionConfig opzionale.
Due semantiche da capire bene:
  • Scope dichiarativi (sostituzione, non fusione). initiate_connector_connection imposta il connettore esattamente sugli scopes che passi. Gli scope omessi vengono rimossi e all’utente viene richiesto nuovamente il consenso. Chiama sempre prima list_connectors, poi passa l’insieme desiderato completo (gli scope esistenti che vuoi mantenere più quelli nuovi).
  • OAuth richiede un umano. Lo strumento restituisce o already_authorized: true (niente da fare) o un redirect_url che l’utente deve aprire in un browser per accedere e dare il consenso — non puoi completarlo tu stesso. Dopo che ha finito, chiama di nuovo list_connectors per verificare e leggere gli scope concessi (un provider potrebbe concederne meno di quelli richiesti).
Questi richiedono solo apps:read / apps:writenon sandbox:write. Sulla superficie CLI (Sezione 10), l’equivalente sono i comandi base44 connectors senza progetto (list-available, initiate --integration-type <t> --scopes <s...> --app-id <id>, pull), che stampano lo stesso URL di autorizzazione.
Questa pagina è stata tradotta utilizzando l’IA. Per informazioni più accurate e aggiornate, consulta la versione inglese.