• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Codemotion Magazine

We code the future. Together

  • Discover
    • Events
    • Community
    • Partners
    • Become a partner
    • Hackathons
  • Magazine
    • Backend
    • Dev community
    • Carriere tech
    • Intelligenza artificiale
    • Interviste
    • Frontend
    • DevOps/Cloud
    • Linguaggi di programmazione
    • Soft Skill
  • Talent
    • Discover Talent
    • Jobs
    • Manifesto
  • Companies
  • For Business
    • EN
    • IT
    • ES
  • Sign in

Daniele CartaGiugno 3, 2025 3 min di lettura

Costruire un MCP Server in Python: il mio primo progetto per potenziare Claude Desktop

Intelligenza artificiale
facebooktwitterlinkedinreddit

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.

Recommended article
allucinazioni
Maggio 19, 2025

Chi controlla il passato controlla il futuro

Arnaldo Morena

Arnaldo Morena

Intelligenza artificiale

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-acceleratorCode language: PHP (php)

Una volta scaricato il progetto, ti basterà installare le dipendenze necessarie:

pip install -r requirements.txtCode language: CSS (css)

Bene, una volta fatto questo ti basterà installare l’MCP ad esempio su Claude Desktop facendo:

mcp install main.pyCode 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.

Codemotion Collection Background
Dalla community
Selezionati per te

Vuoi scoprire più articoli come questo? Dai un’occhiata alla collection Dalla community dove troverai sempre nuovi contenuti selezionati dal nostro team.

Share on:facebooktwitterlinkedinreddit
Daniele Carta
Con oltre 10 anni di esperienza nel settore IT, attualmente sono Head of Frontend presso AltermAInd, dove guido strategie e innovazioni nel campo dello sviluppo front-end.
Salute mentale: riconosci i segnali del burnout – un test online per gli sviluppatori
Previous Post
La signature chain: garanzia di autenticità, integrità e sequenzialità nei documenti digitali
Next Post

Footer

Discover

  • Events
  • Community
  • Partners
  • Become a partner
  • Hackathons

Magazine

  • Tech articles

Talent

  • Discover talent
  • Jobs

Companies

  • Discover companies

For Business

  • Codemotion for companies

About

  • About us
  • Become a contributor
  • Work with us
  • Contact us

Follow Us

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions