Passa al contenuto principale

Crea e collega il tuo primo server MCP

Avanzato

Esponiamo a Claude uno strumento personalizzato costruendo un piccolo server MCP e collegandolo. Lo terremo minimale in modo che il collegamento sia chiaro — poi ci sostituirai la tua logica reale.

Cosa stiamo costruendo

Un server stdio con un solo strumento, word_count, che Claude può richiamare. Lo stesso schema si adatta a "interroga il mio DB", "apri un ticket", ecc.

Passo 1 — Il server

server.py (Python; una versione TypeScript è negli scaffold MCP):

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("text-tools")

@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a piece of text."""
return len(text.split())

if __name__ == "__main__":
mcp.run() # stdio transport

Passo 2 — Dichiaralo

Aggiungi a .mcp.json nella radice del tuo repository:

{ "mcpServers": {
"text-tools": { "command": "python", "args": ["server.py"] }
} }

Passo 3 — Collega e testa

Avvia Claude Code nel repository. Chiedi: "Usa il server text-tools per contare le parole in: 'the quick brown fox'." Claude dovrebbe richiamare word_count e riportare 4. Se non riesce a vedere lo strumento, verifica che il server si avvii correttamente per conto suo e che il percorso in .mcp.json sia corretto.

Passo 4 — Rendilo reale

Sostituisci word_count con la tua capacità effettiva — una query su un DB, una chiamata a un'API interna, un'operazione sui file. Aggiungi la validazione dell'input e restituisci gli errori come risultati.

Checklist di sicurezza

:::warning Un server è codice + accesso

  • Privilegio minimo — solo i dati/le azioni di cui ha bisogno (Mettere in sicurezza gli agenti).
  • Valida gli input che il modello invia.
  • I dati non attendibili che restituisce possono veicolare prompt injection.
  • Esamina qualsiasi server di terze parti prima di collegarlo. :::

Prossimi passi