Budowa minimalnego serwera MCP

Minimalny serwer udostępnia jedną wąską funkcję z przewidywalnymi argumentami i wynikami.

Czego się dowiesz

  • Wyjaśnij: host, klient i serwer
  • Zastosuj pomysł na przykładzie: Budowa minimalnego serwera MCP
  • Rozpoznaj ograniczenia i zweryfikuj rezultaty ćwiczeń

Minimalny serwer udostępnia jedną wąską funkcję z przewidywalnymi argumentami i wynikami. Zacznij od fikcyjnych zasobów i nie pisz.

Jest to laboratorium koncepcyjne lub zewnętrzne. Nie zakłada się, że aplikacja udostępnia wszystkie opisane elementy sterujące.

Jak to działa, krok po kroku

Program obsługi demonstracji i testy

Poniższa procedura demonstracyjna wykorzystuje wyłącznie dane fikcyjne. W przypadku rzeczywistego serwera MCP zarejestruj go w wybranym zestawie SDK i transporcie, a następnie przetestuj wykrywanie i wywołania za pomocą kompatybilnego klienta. stdio odpowiada lokalnym podprocesom; Przesyłany strumieniowo protokół HTTP jest odpowiedni dla zdalnych punktów końcowych. Sprawdź wyraźnie zgodność ze starszymi wersjami SSE lub nowszymi wersjami.

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 }

Schemat objaśniający

Budowa minimalnego serwera MCP Postępuj zgodnie ze strzałkami wskazującymi główny przepływ. Przerywane niebieskie strzałki przedstawiają dane lub kontekst; przerywane różowe strzałki pokazują opinie lub zwracane wyniki. Kolory i kształty wyróżniają modele, sklepy, decyzje i wyniki. Znajomości: Klient MPK → Serwer MPK; Serwer MPK → Sprawdź argumenty i uprawnienia; Sprawdź argumenty i uprawnienia → Osoba obsługująca narzędzia; Osoba obsługująca narzędzia → Fikcyjne dane giełdowe; Fikcyjne dane giełdowe → Wyniki narzędzi; Wyniki narzędzi → Testy na placu zabaw; Testy na placu zabaw → Weryfikacja przez człowieka; Schemat wejścia/wyjścia → Sprawdź argumenty i uprawnienia; Transport i uwierzytelnianie → Serwer MPK; Zbiór danych ewaluacyjnych → Testy na placu zabaw. M04 · Mapa relacji Budowa minimalnego serwera MCP Przetwarzanie Klient MPK Dane Schemat wejścia/wyjścia Decyzja / kontrola Transport i uwierzytelnianie Narzędzie / usługa Serwer MPK Decyzja / kontrola Sprawdź argumenty i uprawnienia Przetwarzanie Osoba obsługująca narzędzia Sklep / indeks Fikcyjne dane giełdowe Dane Wyniki narzędzi Sklep / indeks Zbiór danych ewaluacyjnych Przetwarzanie Testy na placu zabaw Decyzja / kontrola Weryfikacja przez człowieka Główny przepływ Dane i kontekst Informacje zwrotne i zwrot

Postępuj zgodnie ze strzałkami wskazującymi główny przepływ. Przerywane niebieskie strzałki przedstawiają dane lub kontekst; przerywane różowe strzałki pokazują opinie lub zwracane wyniki. Kolory i kształty wyróżniają modele, sklepy, decyzje i wyniki. Na małym ekranie przewijaj w poziomie, aby zobaczyć cały schemat.

Kompletny przykład

get_product_stock akceptuje ciąg znaków SKU. LX-240 zwraca ilość=3; nieznany SKU zwraca not_found zamiast zera. Prawdziwy serwer sprawdza również uprawnienia do katalogu.

{"name":"get_product_stock","description":"Read fictional stock; never reserve it","inputSchema":{"type":"object","properties":{"sku":{"type":"string","minLength":1}},"required":["sku"],"additionalProperties":false}}

Spróbuj sam

  1. Zaimplementuj kontrakt, korzystając z urządzenia i przetestuj brakujące, nieznane i prawidłowe dane wejściowe.
  2. Przed rozpoczęciem eksperymentu zapisz dane wejściowe, źródło i oczekiwany wynik. W przykładzie użyj wyłącznie fikcyjnych danych.
  3. Postępuj zgodnie z etapami diagramu. Na każdym etapie zapisuj, jakie informacje zostały otrzymane i wyprodukowane; nie myl produktu pośredniego z efektem końcowym.
  4. Powtórz po usunięciu niezbędnych informacji lub wprowadzeniu niejednoznaczności. Sprawdź, czy system wyjaśnia, zatrzymuje lub wymyśla odpowiedź.
  5. Porównaj z objaśnionym rozwiązaniem. Zachowaj konfigurację, datę, wynik i wyjaśnienie różnic. Zmień jedną rzecz i przetestuj ponownie.

Wyjaśnione rozwiązanie

W umowie rozróżnia się znalezione, nie znalezione i niepowodzenie, więc klienci nie muszą zgadywać. Pomyślne ćwiczenie pozwala pokazać związek między danymi wejściowymi, etapami i wynikiem. Gdy brakuje informacji, bardziej użyteczna jest ostrożna odpowiedź niż wymyślane szczegóły. Porównaj więcej niż styl: sprawdź także warunki, źródła i operacje.

Kiedy to podejście pomaga i jakie ma ograniczenia

Pin SDK i wersja protokołu; przykład umowy nie jest pełnym uściskiem dłoni. Wybierz to podejście, jeśli poprawia ono zmierzoną potrzebę. Zachowaj prostą linię bazową i porównaj wyniki, korzystając z identycznych danych wejściowych. Jeden udany przykład nie gwarantuje niezawodności w każdej sytuacji.

Sprawdź swoją wiedzę

Czy serwer z narzędziami automatycznie oferuje zasoby i podpowiedzi?

Nie. Możliwości są opcjonalne i należy je odkryć i sprawdzić.

Kto realizuje połączenie zaproponowane przez modelkę?

Aplikacja lub usługa hosta po sprawdzeniu poprawności. Model nie uzyskuje automatycznie nieograniczonego dostępu.

Jaki wynik powinno dać to ćwiczenie?

W umowie rozróżnia się znalezione, nie znalezione i niepowodzenie, więc klienci nie muszą zgadywać.

Pojęcia do zapamiętania

  • Serwer MPK: Usługa udostępniająca możliwości poprzez protokół kontekstu modelu.
  • Wywołanie narzędzia: Ustrukturyzowane żądanie użycia możliwości zewnętrznej.
  • Autoryzacja / Autoryzacja: Sprawdzanie prawa dostępu do operacji lub zasobu.

Źródła i następny krok

Aby przygotować: M03 — Bezpieczeństwo MCP i rozwiązywanie problemów