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

Costruire un server MCP minimo 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. Connessioni: Cliente MCP → server MCP; server MCP → Convalidare argomenti e autorizzazioni; Convalidare argomenti e autorizzazioni → Gestore degli strumenti; Gestore degli strumenti → Dati azionari fittizi; Dati azionari fittizi → Risultati dello strumento; Risultati dello strumento → Prove sul campo da gioco; Prove sul campo da gioco → Verifica umana; Schema di ingresso/uscita → Convalidare argomenti e autorizzazioni; Trasporto e autenticazione → server MCP; Set di dati di valutazione → Prove sul campo da gioco. M04 · Mappa delle relazioni Costruire un server MCP minimo Elaborazione Cliente MCP Dati Schema di ingresso/uscita Decisione/controllo Trasporto e autenticazione Strumento/servizio server MCP Decisione/controllo Convalidare argomenti e autorizzazioni Elaborazione Gestore degli strumenti Memorizza/indicizza Dati azionari fittizi Dati Risultati dello strumento Memorizza/indicizza Set di dati di valutazione Elaborazione Prove sul campo da gioco Decisione/controllo Verifica umana Flusso principale Dati e contesto Feedback e reso

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

  1. Attuare il contratto utilizzando l'attrezzatura e testare l'input mancante, sconosciuto e valido.
  2. Registrare l'input, la fonte e il risultato atteso prima di eseguire l'esperimento. Utilizzare solo i dati fittizi nell'esempio.
  3. Seguire le fasi del diagramma. Ad ogni passaggio registrare quali informazioni vengono ricevute e prodotte; non confondere il risultato intermedio con il risultato finale.
  4. Ripetere dopo aver rimosso le informazioni necessarie o reso ambiguo l'input. Controlla se il sistema chiarisce, ferma o inventa una risposta.
  5. 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

Per preparare: M03: sicurezza e risoluzione dei problemi MCP