Un LLM può recuperare solo ciò che la fase di ingestione ha preservato, quindi il primo compito di una pipeline RAG è trasformare i file Word, PDF, Excel e e‑book in Markdown pulito. Con GroupDocs.Markdown.Mcp un agente IA lo fa localmente, da Claude Desktop, Claude Code, Cursor o qualsiasi altro client MCP, e i file non lasciano mai la tua macchina:
Converti tutti i PDF in questa cartella in Markdown, immagini come file, con front matter.
La versione passo‑passo con configurazione e risoluzione dei problemi è nella documentazione: Come convertire documenti in Markdown per RAG con un agente IA.
Perché la maggior parte delle pipeline RAG inizia con il passaggio di conversione sbagliato?
La consueta abitudine è trattare la conversione come un semplice tubo: inviare i file al parser più vicino, accettare qualsiasi testo restituito e dedicare lo sforzo agli embedding. Questo inverte l’ordine di importanza. Un chunker suddivide in base ai titoli, una tabella che arriva come flusso di valori di celle non risponde a nessuna domanda, e un corpus caricato su un parser di terze parti è una divulgazione che non avevi previsto. Quando il recupero è scarso, la causa può trovarsi nel primo file toccato dalla pipeline.
Questo post sostiene tre correzioni: mantenere il passaggio sulla propria macchina, scegliere consapevolmente le opzioni di output e verificare il risultato invece di fidarsi.
È un parser cloud il posto giusto per l’ingestione dei documenti?
Per un corpus interno, di solito no. L’ingestione è l’unica fase che vede ogni documento di tua proprietà: politiche, listini prezzi, post‑mortem. Un servizio di parsing che li riceve tutti ha visto l’intero archivio, non un singolo file.
GroupDocs.Markdown.Mcp utilizza il trasporto MCP stdio. Il tuo client IA avvia il server come processo figlio, e il percorso dei dati è agente, server locale, filesystem locale. Il server non ha porte in ingresso, né endpoint esterni e nessuna telemetria. Solo ciò che l’agente scrive nelle sue risposte viaggia verso il provider del modello. La licenza a consumo è l’unico caso che richiede traffico in uscita: segnala l’uso, mai il contenuto dei documenti, e un file di licenza funziona offline.
Start it with Docker:
docker run --rm -i -v $(pwd)/documents:/data \
ghcr.io/groupdocs-markdown/markdown-net-mcp:latest
oppure, con il .NET 10 SDK, dnx GroupDocs.Markdown.Mcp --yes. Imposta GROUPDOCS_MCP_STORAGE_PATH sulla cartella che contiene il corpus.
Quale server GroupDocs converte in Markdown: Markdown o Conversion?
Entrambi possono produrre Markdown e rispondono a domande diverse.
| Di cosa hai bisogno | Usa |
|---|---|
| Markdown che conserva la struttura, con controllo su immagini, flavor, selezione delle pagine e front matter | GroupDocs.Markdown.Mcp (questo server) |
| Markdown come uno dei molti target, o DOCX a PDF a XLSX nello stesso flusso di lavoro | GroupDocs.Conversion.Mcp, che copre oltre 100 formati in entrambe le direzioni |
Se Markdown è la destinazione e la sua qualità è importante, scegli il motore dedicato. Se converti tra molti formati e Markdown è solo uno di essi, scegli il convertitore generale; il suo percorso PDF è trattato in 3 modi per trasformare i PDF in Markdown pronto per LLM (e perché il locale vince).
Cosa rende Markdown il formato migliore per l’ingestione RAG?
I titoli sopravvivono, le tabelle rimangono tabelle, le liste rimangono liste. Queste sono le unità con cui lavora un chunker e un embedder. Il server converte DOCX, DOC, RTF, ODT, XLSX, XLS, ODS, CSV, TSV, EPUB, MOBI, TXT, CHM e oltre 20 altri formati tramite un unico strumento, convert_to_markdown. Le fonti della famiglia Word si convertono più pulitamente perché la loro struttura è esplicita nel file. I fogli di calcolo diventano tabelle Markdown.
Tre opzioni sono importanti per un indice:
| Opzione | Impostazione per l’ingestione | Motivo |
|---|---|---|
images |
"file", o "skip" per solo prosa |
Il valore predefinito base64 inserisce un URI dati multi‑megabyte nel mezzo di un chunk |
frontMatter |
true |
YAML con titolo, autore, formato e conteggio pagine diventa metadati del chunk, così una risposta può citare il titolo del documento e non il nome del file |
flavor |
"github" (predefinito) o "commonmark" |
Corrisponde al parser che legge il risultato |
Sessione di esempio (abbreviata)
You: Before converting anything: what is the license status of the markdown server?
Agent: get_license_status -> mode: licensed, engine GroupDocs.Markdown 26.3, server 26.9.0.
You: Convert every PDF in this folder to Markdown, images as files, with front matter.
Agent: convert_to_markdown (images: "file", frontMatter: true) for each PDF.
Saved one .md per document, with extracted images alongside.
You: For each converted file, give me the source page count and the Markdown length.
Agent: get_document_info for each source, then the length of each saved .md.
One 300-page file produced only 4 KB of Markdown: likely a scan.
Come verifico il corpus prima di indicizzarlo?
Tratta l’esecuzione come non affidabile finché non l’hai esaminata. Un prompt cattura la maggior parte dei fallimenti:
Per ogni file convertito, indicami il conteggio delle pagine di origine e la lunghezza del Markdown risultante.
get_document_info restituisce fileName, fileFormat, pageCount, title, author e isEncrypted senza conversione, così l’agente può confrontare il conteggio delle pagine con quello scritto. Un manuale di 300 pagine che è diventato 4 KB di Markdown è una scansione o un’esecuzione troncata.
I PDF scansionati sono un limite rigido. Non hanno livello di testo, e questo server non ha un passaggio OCR; gestisci quei file separatamente.
Limiti onesti: il tetto di valutazione
Senza licenza il server funziona in modalità valutazione, dove vengono elaborate solo le prime 3 pagine, con una filigrana di valutazione su ciascuna. L’output è Markdown valido e nulla segnala che il resto è stato saltato, così un indice costruito in questo modo sembra completo ed è quasi vuoto. Fai in modo che get_license_status sia la prima chiamata di ogni esecuzione di ingestione.
FAQ
Qual è il formato migliore per l’ingestione RAG?
Markdown è una scelta solida perché i chunker e gli embedder gestiscono bene titoli, liste e tabelle. Usa images: "file" e frontMatter: true così i chunk non contengono base64 e mantengono i metadati di origine.
Posso convertire Word in Markdown per un LLM senza caricare i documenti?
Sì. GroupDocs.Markdown.Mcp funziona come processo locale tramite stdio, e l’agente legge i file dalla cartella che hai configurato.
Lo converte in Markdown per un database vettoriale?
Converte i PDF che hanno un livello di testo, con titoli, liste e tabelle recuperate dove la sorgente lo consente. I PDF scansionati non hanno testo da convertire e non esiste un passaggio OCR.
Approfondisci
- Documentazione, guida canonica: Come convertire documenti in Markdown per RAG con un agente IA
- Hub di documentazione: GroupDocs.Markdown MCP Server
- Prossimo: 3 modi per estrarre solo la sezione di cui hai bisogno in Markdown con MCP
- Prossimo: Automatizza una migrazione docs-as-code: l’agente esegue la conversione, tu la revisioni
- Prossimo: Da documenti a sito statico: Hugo, Docusaurus o MkDocs tramite un agente IA
- Modello on‑premise e di sicurezza: 3 architetture per l’elaborazione AI dei documenti, e quella che mantiene i file all’interno della tua rete
- Domande: GroupDocs Markdown forum
- Fonte: GroupDocs.Markdown.Mcp on GitHub