Costruire un server MCP minimo
Un server minimo espone una capacità ristretta con argomenti e risultati prevedibili.
Cosa imparerai
- Spiegare: host, client e server
- Applica l'idea in un esempio: costruire un server MCP minimo
- Riconoscere i limiti e verificare il risultato dell'esercizio
Un server minimo espone una capacità ristretta con argomenti e risultati prevedibili. Inizia con azioni fittizie e senza scritture.
Questo è un laboratorio concettuale o esterno. Non presuppone che l'applicazione esponga tutti i controlli descritti.
Come funziona, passo dopo passo
Gestore della dimostrazione e test
Il gestore dimostrativo riportato di seguito utilizza solo dati fittizi. Per un server MCP effettivo, registralo con l'SDK e il trasporto scelti, quindi testa il rilevamento e le chiamate con un client compatibile. stdio si adatta ai sottoprocessi locali; Lo streaming HTTP è adatto agli endpoint remoti. Verifica esplicitamente la compatibilità con SSE legacy o con le revisioni più recenti.
const stock = new Map([['LX-240', 3], ['P-12', 5], ['A-7', 2]]);
function getProductStock(input) {
if (!input || typeof input.sku !== 'string' || !input.sku.trim())
throw new TypeError('A nonempty sku is required.');
const sku = input.sku.trim();
return stock.has(sku)
? { status: 'found', sku, quantity: stock.get(sku), synthetic: true }
: { status: 'not_found', sku, synthetic: true };
}
console.log(getProductStock({ sku: 'LX-240' }));
// { status: 'found', sku: 'LX-240', quantity: 3, synthetic: true }
Lo schema esplicativo
Seguire le frecce continue per il flusso principale. Le frecce blu tratteggiate forniscono dati o contesto; le frecce rosa tratteggiate mostrano feedback o risultati restituiti. Colori e forme distinguono modelli, negozi, decisioni e risultati. Su schermi piccoli, scorri in orizzontale per seguire l’intero schema.
Un esempio completo
get_product_stock accetta una stringa sku. LX-240 restituisce quantità=3; Lo SKU sconosciuto restituisce not_found anziché zero. Un real server controlla anche i permessi del catalogo.
{"name":"get_product_stock","description":"Read fictional stock; never reserve it","inputSchema":{"type":"object","properties":{"sku":{"type":"string","minLength":1}},"required":["sku"],"additionalProperties":false}}
Provalo tu stesso
- Attuare il contratto utilizzando l'attrezzatura e testare l'input mancante, sconosciuto e valido.
- Registrare l'input, la fonte e il risultato atteso prima di eseguire l'esperimento. Utilizzare solo i dati fittizi nell'esempio.
- Seguire le fasi del diagramma. Ad ogni passaggio registrare quali informazioni vengono ricevute e prodotte; non confondere il risultato intermedio con il risultato finale.
- Ripetere dopo aver rimosso le informazioni necessarie o reso ambiguo l'input. Controlla se il sistema chiarisce, ferma o inventa una risposta.
- Confrontare con la soluzione spiegata. Conserva la configurazione, la data, il risultato e una spiegazione delle differenze. Cambia una cosa e riprova.
Una soluzione spiegata
Il contratto distingue tra trovato, non trovato e fallimento, pertanto i clienti non devono indovinare. Un esercizio riuscito ti consente di mostrare la connessione tra input, fasi e risultato. Quando mancano le informazioni, una risposta cauta è più utile dei dettagli inventati. Confrontare non solo stile: verificare anche condizioni, fonti e operazioni.
Quando è utile e quali sono i suoi limiti
Pin SDK e revisione del protocollo; un esempio di contratto non è una stretta di mano completa. Scegli questo approccio quando migliora un bisogno misurato. Mantieni una linea di base semplice e confronta i risultati utilizzando input identici. Un esempio di successo non stabilisce l’affidabilità in ogni situazione.
Verifica ciò che hai imparato
Un server dotato di strumenti offre automaticamente risorse e suggerimenti?
No. Le funzionalità sono facoltative e devono essere scoperte e verificate.
Chi esegue una chiamata proposta dal modello?
L'applicazione o il servizio host dopo la convalida. Il modello non ottiene automaticamente l'accesso illimitato.
Quale risultato dovrebbe produrre questo esercizio?
Il contratto distingue tra trovato, non trovato e fallimento, pertanto i clienti non devono indovinare.
Termini da ricordare
- server MCP: un servizio che espone funzionalità tramite Model Context Protocol.
- Chiamata dello strumento: una richiesta strutturata per utilizzare una funzionalità esterna.
- Autorizzare/Autorizzazione: verifica del diritto di accesso a un'operazione o risorsa.
Fonti e il prossimo passo
- Model Context Protocol — specifica
- LangGraph — flussi di lavoro e agenti
- OWASP — Iniezione di prompt
Per preparare: M03: sicurezza e risoluzione dei problemi MCP