
Negli ultimi mesi, ho iniziato a esplorare il mondo dell’intelligenza artificiale in modo più pratico, e mi sono imbattuto in un protocollo particolarmente interessante: il Model Context Protocol, meglio noto come MCP.
Per imparare sul campo, ho deciso di realizzare un piccolo progetto open source: mcp-medium-accelerator, un server MCP scritto in Python che permette di cercare articoli su Medium in base a un tag, riassumerli automaticamente (anche se scritti in inglese), e salvarli in una memoria interna per recuperarli in qualsiasi momento. Io attualmente lo sto usando su Claude Desktop.
In questo articolo ti racconto come ho costruito il mio primo MCP, quali tecnologie ho usato, cosa ho imparato e come puoi provarlo anche tu.
Cos’è il Model Context Protocol (MCP)?
MCP è un protocollo sviluppato da Anthropic per rendere i modelli linguistici (come Claude) più utili, contestuali e connessi a strumenti esterni. In pratica, permette di estendere le capacità di un LLM facendo in modo che possa invocare tool esterni per ottenere o elaborare dati in tempo reale.
Un server MCP espone due endpoint principali:
/describe
: dice al modello cosa fa il tool, come se fosse un prompt autoesplicativo./invoke
: riceve una richiesta strutturata e restituisce una risposta elaborata.
Obiettivo del progetto
Il mio progetto nasce da un’esigenza semplice: leggere più contenuti di qualità, in meno tempo. Ogni giorno Medium propone nuovi articoli interessanti su AI, sviluppo frontend, startup… ma il tempo è sempre poco.
Ecco allora l’idea: un MCP server che consente di:
- Cercare gli ultimi articoli di Medium per url specifico (es.
frontend
,startup
,ai
). - Leggerli in background e restituire un riassunto in italiano, anche se l’articolo è in inglese.
- Salvare i riassunti, per tenere traccia dei contenuti letti nel tempo.
- Integrarsi con Claude Desktop o altri ambienti compatibili MCP.
Stack Tecnologico
Il progetto è sviluppato in Python, utilizzando:
- FastMCP
- BeautifulSoup per il parsing HTML dei contenuti Medium.
- Requests per le chiamate HTTP.
Il codice sorgente è disponibile qui 👉 github.com/crtdaniele/mcp-medium-accelerator
Dietro le quinte: il cuore del MCP
Questo MCP è costruito su FastMCP, una libreria Python pensata per costruire rapidamente server compatibili con Claude Desktop. Ecco alcune parti chiave del codice e il loro scopo:
extract_article_links
Questa funzione accetta un URL di archivio Medium (es. https://medium.com/tag/frontend/archive
) e restituisce i link dei primi articoli.
extract_article_content_to_summarize
Dato un link a un articolo, estrae il contenuto testuale direttamente dall’elemento <article>
della pagina HTML dell’articolo.
save_summary
e list_summaries
TinyDB per salvare localmente i riassunti, con metadati come titolo, URL e tag. La funzione save_summary
evita i duplicati e salva l’articolo su TinyDB. Invece list_summaries
fornisce una panoramica rapida di quanto già raccolto così da consultare in futuro gli articolo salvati.
Come provarlo
git clone https://github.com/crtdaniele/mcp-medium-accelerator
cd mcp-medium-accelerator
Code language: PHP (php)
Una volta scaricato il progetto, ti basterà installare le dipendenze necessarie:
pip install -r requirements.txt
Code language: CSS (css)
Bene, una volta fatto questo ti basterà installare l’MCP ad esempio su Claude Desktop facendo:
mcp install main.py
Code language: CSS (css)
Avvia Claude Desktop e vai su “Claude -> Impostazioni -> Sviluppatori” e clicca su “Modifica configurazione” e dovrai aggiungere al tuo file “claude_desktop_config.json” questo:
{
"mcpServers": {
"mcp-medium-accelerator": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--with",
"bs4",
"--with",
"requests",
"--with",
"datetime",
"--with",
"tinydb",
"--with",
"mcp[cli]",
"mcp",
"run",
"/your-path/main.py"
]
}
}
}
Code language: JSON / JSON with Comments (json)
Fatto!
Inizia a esplorare articoli con un semplice prompt tipo questi:
“Riesci a darmi l’elenco degli ultimi 10 articoli taggati come Frontend da questa pagina: https://medium.com/tag/frontend/archive”?
“Riesci a farmi il riassunto dell’articolo numero 5?”
“Puoi salvare ora il riassunto così da poterlo leggere domani con calma?”
Conclusione
Costruire un MCP server è stata un’esperienza formativa e divertente. Non solo ho imparato molto su scraping, FastMCP e interoperabilità con LLM, ma ho anche visto con i miei occhi quanto può essere utile ampliare le capacità di un modello con tool personalizzati.
Se sei curioso di provarlo, trovi tutto qui:
https://github.com/crtdaniele/mcp-medium-accelerator
Feedback, pull request o suggerimenti sono più che benvenuti! Se ti è piaciuto il progetto, ricordati anche di lasciare una star su Github.