In un precedente articolo, vi abbiamo mostrato come integrare le API di ricerca e lettura di Jina AI con DeepSeek R1 per costruire un agente di ricerca approfondita, ma per farlo funzionare sono stati necessari molti codici personalizzati e ingegneria dei Prompt. In questo articolo faremo la stessa cosa utilizzando il Model Context Protocol (MCP), che utilizza molto meno codice personalizzato ed è portabile su diversi LLM, ma è comunque soggetto ad alcune insidie lungo il percorso.
Per costruire il nostro agente, lavoreremo con il nostro server MCP rilasciato di recente, che fornisce l'accesso alle API Jina Reader, ai vettori modello e al Reranker, insieme a strumenti di conversione da URL a markdown, ricerca web, ricerca immagini e vettori modello/Reranker.
tagAgenti e Model Context Protocol
Si è parlato molto di agenti e IA agentica di recente, spesso esaltandoli (come Gartner, che prevede che entro il 2028 circa il 15 percento delle decisioni di lavoro quotidiane saranno prese autonomamente da agenti IA) o demolendoli (come Vortex, che afferma che la maggior parte delle proposte di IA agentica manca di valore significativo o di ritorno sull'investimento).
Ma cosa sono gli agenti? Una delle definizioni migliori (da Chip Huyen tramite Simon Willison) è:
[Gli agenti sono] sistemi LLM che pianificano un approccio e poi eseguono strumenti in un ciclo fino al raggiungimento di un obiettivo
Questa è la definizione che useremo per questo articolo del blog. E quegli strumenti che l'agente usa? Sono connessi con il Model Context Protocol. Questo protocollo, originariamente sviluppato da Anthropic, sta diventando la lingua franca per collegare gli LLM a strumenti e fonti di dati esterni. Ciò significa che gli agenti possono concatenare più strumenti in un unico flusso di lavoro. Il risultato sono agenti che possono pianificare, ragionare e agire orchestrando una suite di API.

Ad esempio, potremmo costruire un agente di ottimizzazione dei prezzi che raccoglie i prezzi dei prodotti della concorrenza per il confronto e l'ottimizzazione dei prezzi. Quindi potremmo dotare l'agente con il server MCP di Jina AI, un Prompt e un elenco di prodotti della concorrenza, lasciandogli generare un report utilizzabile con dati estratti e link alle fonti. Utilizzando server MCP aggiuntivi, l'agente potrebbe esportare quel report in formato PDF, inviarlo via email alle parti interessate, archiviarlo in una knowledge base interna e altro.
In questo articolo, costruiremo tre agenti di esempio con il nostro server MCP, che fornisce i seguenti strumenti:
primer- Ottieni informazioni contestuali attuali per risposte localizzate e sensibili al temporead_url- Estrai contenuti puliti e strutturati da pagine web come Markdown tramite Reader API (disponibile anche in versione parallela)capture_screenshot_url- Acquisisci screenshot di alta qualità di pagine web tramite Reader APIguess_datetime_url- Analizza le pagine web per l'ultimo aggiornamento/data di pubblicazione con punteggi di confidenzasearch_web- Cerca sull'intero web informazioni e notizie attuali tramite Reader API (disponibile anche in versione parallela)search_arxiv- Cerca documenti accademici e preprint sul repository arXiv tramite Reader API (disponibile anche in versione parallela)search_images- Cerca immagini sul web (simili a Google Immagini) tramite Reader APIexpand_query- Espandi e riscrivi le query di ricerca web in base al modello di espansione delle query tramite Reader APIsort_by_relevance- Riordina i documenti in base alla pertinenza a una query tramite Reranker APIdeduplicate_strings- Ottieni le prime k stringhe semanticamente univoche tramite API vettori modello e ottimizzazione submodularededuplicate_images- Ottieni le prime k immagini semanticamente univoche tramite API vettori modello e ottimizzazione submodulare
Avremo anche bisogno di un client MCP (VS Code con Copilot, poiché è gratuito e ampiamente utilizzato) e un LLM (Claude Sonnet 4, poiché ha dato i migliori risultati nei nostri test).
tagUtilizzo del server MCP di Jina AI
L'MCP è stato descritto come un sistema di plugin universale, che supporta più programmi come Claude Code, VS Code, Google Gemini CLI e i front-end desktop per Claude e ChatGPT. Collegare un server MCP è in genere solo una questione di modifica del file di impostazioni per includere quanto segue:
{
"mcpServers": {
"jina-mcp-server": {
"url": "https://mcp.jina.ai/sse",
"headers": {
"Authorization": "Bearer ${JINA_API_KEY}" // optional
}
}
}
}
Per verificare che il server MCP funzioni, usiamo un Prompt semplice:
Dammi un riassunto dell'ultimo articolo sulle notizie di jina.ai sotto
forma di una strofa unica di una canzone marinarescaIl nostro agente fa quanto segue:
- Chiama
read_urlper estrarre https://jina.ai/news - Chiama
search_webcon la query"site:jina.ai \\"Ottimizzazione dei GGUF per i modelli di vettori modello solo decoder\\" Agosto 2025" - Chiama
read_urlper estrarre l'articolo del blog - Genera una canzone marinaresca di una strofa dai dati estratti:
🎵 *Sulla melodia di una tradizionale canzone marinaresca* 🎵
**"Il racconto del marinaio GGUF"**
*Oh, navigavano con i loro vettori modello, tre miliardi forti e veri,*
*Attraverso acque quantizzate profonde e blu,*
*Con venti di GPU L4 alle loro spalle,*
*Quattromila Tokens al secondo sulla loro rotta!*
*Issa, issa, marinai, smantella la torre di visione,*
*Perché le ottimizzazioni GGUF sono i migliori porti in città!*
Ora che abbiamo visto che funziona in pratica, mettiamolo davvero alla prova costruendo alcuni utili esempi del mondo reale.
tagEsempio 1: Riassunti quotidiani di articoli arXiv
Leggere gli ultimi documenti accademici fa parte del nostro lavoro presso Jina AI. Ma filtrare quelli veramente rilevanti ed estrarre le informazioni più importanti da ciascuno può essere una vera seccatura. Quindi, per il nostro primo esperimento, abbiamo automatizzato questo compito creando un digest quotidiano dei documenti recenti più rilevanti. Ecco il Prompt che abbiamo utilizzato:
Utilizzando solo strumenti Jina, estrai da arxiv i documenti su
LLM, Reranking e vettori modello pubblicati nelle ultime 24
ore, quindi deduplica e riordina per pertinenza, restituendo
i primi 10. Per ognuno, estrai il PDF ed estrai l'abstract.
Quindi riassumilo e organizza le informazioni che hai raccolto
in un "aggiornamento quotidiano". Includi un link e la data di pubblicazione
per ogni documento.Il nostro agente:
- Cerca documenti pertinenti su arxiv.org (utilizzando lo strumento
parallel_search_arxiv) con le stringhe di querylarge language models LLM,reranking information retrieval,embeddings vector representations,transformer neural networksenatural language processing NLP - Rimuove i duplicati (utilizzando lo strumento
deduplicate_strings) - Riordina i risultati (utilizzando lo strumento
sort_by_relevance), restituendo solo i dieci risultati più rilevanti. - Recupera gli URL ai PDF per i risultati riordinati (utilizzando
parallel_read_url), suddivisi in due batch di cinque. - Legge ogni URL (utilizzando lo strumento
read_url, chiamato dieci volte) - Genera un report dettagliato, inclusi abstract, riassunti, tendenze e approfondimenti, implicazioni per la ricerca futura, lacune nella ricerca e conclusioni.

Occasionalmente ci siamo imbattuti nel problema che l'agente non limitava i suoi risultati alle ultime 24 ore. Sollecitare l'agente un'altra volta a seguire quell'istruzione ha portato al rapporto qui sopra.
tagEsempio 2: Agente di ricerca di mercato
Per il nostro prossimo esperimento, faremo scrivere al nostro agente un rapporto di intelligence competitiva su una nota società di videogiochi (nome oscurato). Ecco il nostro prompt:
Create a comprehensive competitive intelligence report for
$GAME_COMPANY focusing on their recent activities in retro
indie games. Use Jina tools to search for the latest news,
press releases, and announcements, then extract clean content
from their official communications. Rank all findings by
business relevance and remove any duplicate information.
Present insights on their strategic direction, product
launches, and market positioning changes over the past
quarterIl nostro agente:
- Esegue diversi cicli di
search_weberead_urlper raccogliere ricerche. - Riordina i suoi risultati usando
sort_by_relevance, producendo i primi dieci risultati. - Genera un rapporto di intelligence di mercato, includendo sintesi per i dirigenti, sviluppi aziendali critici (classificati per importanza strategica), analisi delle decisioni strategiche e molte altre sezioni.

tagEsempio 3: Ricerca sulla conformità legale
Come abbiamo detto prima, uno degli aspetti utili di MCP è che possiamo usare più server per ottenere risultati più complessi. In questo caso, stiamo usando il Server MCP PDF Reader in aggiunta al nostro per creare un rapporto di ricerca sullo stato attuale della conformità legale dell'IA nell'UE e negli USA. Abbiamo usato il prompt:
Develop a knowledge base section focused on AI legal
compliance news and common pitfalls in the EU and USA as of
this moment. Report should be aimed at AI startups in EU.
Apply Jina MCP tools extensively: perform parallel web
searches and URL reads to efficiently extract detailed
content, deduplicate semantic overlaps, and rerank to surface
the most authoritative information. Cite all sources with
URLs and publication or update dates. Organize content
clearly and produce a formatted PDF document ready for
immediate use.Il nostro agente:
- Esegue un'operazione di ricerca parallela per informazioni generali (usando
parallel_search) con le queryEU AI Act 2024 compliance requirements startups legal obligations August 2025,USA AI regulation Biden executive order compliance requirements 2024 2025,AI startup legal pitfalls Europe GDPR data protection compliance 2025,AI liability insurance compliance requirements EU USA startups 2024 2025eAI ethics governance framework startups EU USA regulatory updates 2025, restituendo 25 risultati per ogni query. - Deduplica gli URL restituiti (usando
deduplicate_strings) - Legge il contenuto di quattro URL (usando
parallel_read_url) - Esegue un'ulteriore
parallel_searchper informazioni più specifiche, con le queryAI startup common compliance pitfalls mistakes EU USA 2025,AI liability insurance cybersecurity startup requirements 2025,AI bias discrimination testing requirements EU AI Act compliance startups,AI data protection GDPR violations penalties startups 2025 - Usa
parallel_read_urlper leggere attraverso altri quattro URL - Genera un rapporto in formato Markdown e lo converte in un PDF di 18 pagine

Abbiamo anche dovuto fare un po' di sollecitazione ulteriore per migliorare i metadati e la formattazione del PDF, così come per renderlo più un rapporto invece di un lunghissimo elenco puntato, ma è qualcosa che integreremmo nel prompt per i rapporti futuri.
tagApprocci alternativi
Prima di optare per Claude Sonnet 4, abbiamo provato una gamma di modelli Ollama che supportavano gli strumenti, tra cui Qwen3:30b, Qwen2.5:7b e llama3.3:70b. Per il client MCP, inizialmente abbiamo usato ollmcp prima di passare a VS Code. Tutti i modelli sopra menzionati hanno fallito nello stesso modo, non importa quanto esplicitamente li abbiamo sollecitati con gli strumenti e come usarli: quando veniva chiesto di eseguire anche un compito semplice, come recuperare l'ultimo post del blog da Jina AI, ogni modello (non importa la dimensione o il fornitore) avrebbe costantemente:
- Entrare in un lungo ciclo di ragionamento, costantemente a mettere in dubbio se stessi (e consumando token) fino a quando non si decidono finalmente a fare come gli era stato detto
- Chiamare
read_urlper https://jina.ai/news - Ispezionare i titoli e gli estratti dei post del blog
- Allucinare completamente di aver raschiato l'ultimo post (senza nemmeno chiamare
read_urlper quella pagina) - Presentare un riassunto basato sull'estratto dal primo risultato di ricerca (non il contenuto effettivo della pagina)
- Quando interrogati, affermare di aver seguito esattamente le istruzioni e di aver raschiato la pagina come richiesto
I modelli nelle famiglie Claude, GPT e Gemini hanno fornito un output accettabile, anche se siamo approdati abbastanza rapidamente a Claude Sonnet 4 in quanto faceva un ampio uso degli strumenti (spesso raggiungendo le opzioni di strumentazione parallela piuttosto che l'approccio seriale favorito da GPT-4.1) e generava un output più lungo e meglio strutturato.
tagConclusione
C'è ancora molta vaghezza intorno al termine "IA agentica", ma MCP rappresenta un passo avanti per renderlo qualcosa di solido e pratico. Nella nostra esperienza, gli agenti non sono proprio pronti per il grande pubblico, con l'LLM che generalmente è l'anello debole, ma con un po' di accompagnamento e sperimentazione, è possibile ottenere buoni risultati. Detto questo, quando si ottiene la giusta combinazione di prompt, LLM e server MCP, è possibile vedere gli agenti eseguire in modo affidabile attività multi-step senza bisogno di codice personalizzato - qualcosa che era molto più difficile con i modelli precedenti come DeepSeek (che non supportano gli strumenti), che richiedevano più ingegneria manuale e portavano a un'integrazione fragile.
Nonostante queste attuali limitazioni, la traiettoria è promettente. L'ecosistema MCP sta crescendo rapidamente, portando più integrazioni e strumenti che rendono più facile mescolare e abbinare le API, come quelle di Jina, o scambiare nuovi LLM man mano che diventano disponibili. Man mano che sia i modelli sottostanti migliorano sia l'ecosistema di strumentazione matura, il divario tra agenti sperimentali e IA agentica pronta per la produzione continua a restringersi, rendendo le implementazioni robuste sempre più accessibili per applicazioni nel mondo reale.








