Un modulo Word con caselle di testo, un menu a discesa per il dipartimento e una casella di controllo per il codice di condotta, e un foglio di calcolo con trenta nuove assunzioni: è una mattina di copia e incolla, o un unico prompt. Con il server GroupDocs.Editor MCP in esecuzione locale, Claude, Cursor o Copilot chiedono prima al modulo quali campi ha, poi compilano una copia per riga e salvano ciascuna con il nome della persona. Il layout del modulo rimane intatto e qualsiasi valore che non ha un campo corrispondente viene segnalato invece di essere silenziosamente scartato:
Leggi new-employee-form.docx, poi compila una copia per riga di new-hires.csv e nomina ogni file con il nome del dipendente.
La versione passo‑passo è nella documentazione: How to fill Word form fields from data with an AI agent.
Chi legge il foglio di calcolo?
Lo fa l’agente, ed è importante essere chiari su questo. Il server Editor lavora sul modulo Word; non legge il tuo CSV o il tuo workbook. L’agente legge le righe con i propri strumenti di file, o le incolli, e poi effettua una chiamata fill_form_fields per riga con un outputName per persona. Questa divisione è una funzionalità: i dati non devono mai essere in un formato che il server comprenda, e l’agente può pulirli lungo il percorso (splittare un nome completo, normalizzare una data) prima che vengano inseriti nel modulo.
Chiedi prima al modulo
I nomi dei campi nei moduli Word raramente corrispondono all’etichetta visualizzata sulla pagina. L’etichetta dice “Full name:”, mentre il campo potrebbe chiamarsi FullName, Text1 o Name_Employee. Indovinare è il modo in cui i moduli tornano a metà vuoti. get_form_fields restituisce i nomi reali, i tipi e i valori attuali. Catturato da GroupDocs.Editor.Mcp 26.10.0 su un modulo di onboarding sintetico (output abbreviato):
-> get_form_fields {"file":{"filePath":"new-employee-form.docx"}}
<- { "count": 6, "fields": [
{ "name": "FullName", "type": "Text", "value": "" },
{ "name": "Email", "type": "Text", "value": "" },
{ "name": "StartDate", "type": "Text", "value": "" },
{ "name": "Department", "type": "DropDown",
"value": { "options": [ "Engineering", "Finance", "Sales",
"Operations" ], "selected": "Engineering" } },
{ "name": "Agree", "type": "CheckBox", "value": false },
{ "name": "Newsletter", "type": "CheckBox", "value": false } ] }
Il menu a discesa include le sue opzioni, così l’agente può mappare “finance” nel foglio di calcolo all’entrata esatta “Finance” invece di inventare un sesto dipartimento.
Poi compila una riga
-> fill_form_fields {"file":{"filePath":"new-employee-form.docx"},
"values":{"FullName":"Amara Okafor",
"Email":"amara.okafor@northwind.example",
"StartDate":"2026-12-01","Department":"Finance",
"Agree":"true","Phone":"+31 10 555 0100"}}
<- Updated 5 field(s) in 'new-employee-form.docx': FullName, Email,
StartDate, Department, Agree.
Not found: Phone. Call get_form_fields for the exact names.
Saved to: …/new-employee-form_edited.docx
Il foglio di calcolo aveva una colonna telefono per la quale il modulo non ha alcun campo. Il server ha compilato i cinque campi esistenti e ha segnalato quello mancante. Leggere la copia compilata con get_form_fields mostra i valori al loro posto, "selected": "Finance" e "Agree": true inclusi, e Newsletter ancora deselezionato perché la riga non indicava il contrario.
L’intero batch
new-hires.csv (agent reads it) new-employee-form.docx
Amara Okafor, Finance, ... ---+
Tomas Varga, Sales, ... ---+ get_form_fields (once)
... | -> FullName, Email, StartDate,
| Department, Agree, ...
v
fill_form_fields {"values":{...row...},
"outputName":"form-amara-okafor.docx"} x one per row
-> "Updated 5 field(s) ... Not found: Phone"
-> form-amara-okafor.docx, form-tomas-varga.docx, ...
Tre istruzioni rendono il batch affidabile: chiama get_form_fields una sola volta e mappa le colonne ai nomi dei campi prima della prima compilazione; assegna a ogni riga il proprio outputName, altrimenti le copie si accumulano come new-employee-form_edited.docx, new-employee-form_edited (1).docx e così via, senza il nome di nessuno; e raccogli le righe “Not found” in un unico report alla fine invece di fermarti alla prima.
Un prompt che funziona sulla prima riga
La maggior parte dei fallimenti di batch avviene sulla prima riga e poi si ripete trenta volte. Esegui prima una prova a secco:
Leggi i campi di new-employee-form.docx e l’intestazione di new-hires.csv. Mostrami quale colonna va in quale campo, e quali colonne non hanno campo. Poi compila solo la prima riga e fermati.
L’agente risponde con una piccola tabella di mappatura, Name -> FullName, Dept -> Department, Phone -> (no field), e un modulo compilato che puoi aprire. Se l’ortografia del dipartimento o il formato della data sono errati, lo vedi una volta, correggi l’istruzione, e poi chiedi il resto. Questo passaggio di revisione costa un minuto ed è la differenza tra trenta moduli corretti e trenta moduli che devono essere controllati manualmente.
Risolvi anche le domande a cui il foglio di calcolo non può rispondere da solo. Una cella “Agree” vuota deve significare deselezionata, o la riga deve essere saltata? “2026-12-01” va inserito nel campo data così com’è, o come “1 December 2026”? L’agente seguirà qualsiasi indicazione, ma deve essere informato.
Cos’altro gestiscono gli strumenti del modulo
I campi di testo, numero e data vengono compilati con stringhe; le caselle di controllo accettano "true" o "false"; i menu a discesa accettano una delle loro opzioni. format salva la copia compilata come DOC, RTF o ODT invece di DOCX; un modulo compilato è sempre un documento Word, quindi un PDF per il nuovo assunto è una conversione separata successiva. Un modulo protetto da password viene aperto con password e rimane protetto. La copia compilata è scritta dal motore dei campi del modulo anziché tramite HTML, così intestazioni, piè di pagina e numeri di pagina rimangono come erano. Gli strumenti leggono moduli DOCX, DOC, DOCM, DOT, DOTX, RTF e ODT.
Limiti onesti
- Solo moduli Word, e solo campi di modulo legacy: i campi di testo, casella di controllo e menu a discesa che Word inserisce da Developer → Legacy Tools. I controlli di contenuto non sono elencati né compilati. I moduli PDF (AcroForms) non rientrano nello scopo di questo server.
- Il server non legge il foglio di calcolo; l’agente fornisce i valori, quindi verifica la mappatura delle colonne sulla prima riga prima di lasciarlo elaborare tutte.
- Una chiamata compila un modulo. Un batch di trenta richiede trenta chiamate.
- La modalità valutazione aggiunge una riga di banner in cima a ogni copia compilata, così l’output non licenziato è una bozza, non qualcosa da inviare ai nuovi dipendenti.
FAQ
Come fa l’agente a conoscere i nomi dei campi?
Chiede: get_form_fields restituisce il nome, il tipo e il valore corrente di ogni campo, e le opzioni di ogni menu a discesa.
** Cosa succede a un valore per il quale il modulo non ha campo?**
Viene ignorato e segnalato nella risposta (“Not found: Phone”), così l’agente può riportarlo.
Il mio modulo originale viene modificato?
No. Ogni compilazione scrive un nuovo file; il modello rimane vuoto per la riga successiva.
Approfondisci
- Documentazione, guida canonica: How to fill Word form fields from data with an AI agent
- Hub della documentazione: GroupDocs.Editor MCP Server
- GroupDocs.Editor MCP product page — installazione con un click per VS Code e Cursor, configurazioni per ogni altro client
- Inizia qui: Why an AI agent should not rewrite your document to change three words
- Correlato: Rename a party across 40 contracts without touching the formatting
- Correlato: Edit one worksheet, keep the workbook: surgical edits with an HTML round-trip
- Correlato: Edit a PDF with an AI agent? Turn it into Word first, locally
- Modello on‑premise e modello di sicurezza: 3 architectures for AI document processing, and the one that keeps files inside your network
- Domande: GroupDocs Editor forum
- Fonte: GroupDocs.Editor.Mcp on GitHub · NuGet package