Przejdź do głównej zawartości

Budowanie niestandardowych serwerów MCP

Chociaż publiczny ekosystem serwerów MCP jest rozległy, ostateczna moc Model Context Protocol leży w jego rozszerzalności. Każda organizacja ma swój własny unikalny zestaw wewnętrznych narzędzi, API i dokumentacji. Budując niestandardowe serwery MCP, możesz zapewnić swojemu asystentowi AI bezpośredni, bezpieczny dostęp do tej zastrzeżonej wiedzy, odblokowując poziom dostosowanej automatyzacji, który po prostu nie jest możliwy przy użyciu gotowych narzędzi.

Ten przewodnik zapewnia ogólny przegląd procesu i zasad budowania własnego serwera MCP.

Budowanie serwera MCP jest zaskakująco proste dzięki otwartemu protokołowi i dostępnym SDK. Proces obejmuje zdefiniowanie zestawu “narzędzi”, z których może korzystać Twoje AI.

1. Wybierz swój stos

Możesz napisać serwer MCP w dowolnym języku, który może komunikować się przez stdio (dla lokalnych narzędzi) lub HTTP/SSE (dla zdalnych usług). Oficjalne SDK dla TypeScript i Python sprawiają, że proces jest szczególnie łatwy.

2. Zdefiniuj swoje narzędzia

“Narzędzie” to konkretna możliwość, którą chcesz udostępnić AI. Każde narzędzie ma nazwę, schemat oczekiwanych danych wejściowych (często definiowany za pomocą biblioteki takiej jak Zod) i funkcję zawierającą rzeczywistą logikę.

3. Zaimplementuj logikę

Funkcja narzędzia to miejsce, gdzie integrujesz się ze swoim wewnętrznym systemem. Może to obejmować wykonanie wywołania fetch do prywatnego API, zapytanie do wewnętrznej bazy danych lub skrobanie firmowej wiki.

4. Połącz i uruchom

Na koniec tworzysz instancję swojego serwera, łączysz go z transportem (takim jak StdioServerTransport dla narzędzia wiersza poleceń) i jest gotowy do użycia przez Twojego asystenta AI.


Przykład: Niestandardowy serwer dla wewnętrznej dokumentacji

Dział zatytułowany „Przykład: Niestandardowy serwer dla wewnętrznej dokumentacji”

Wyobraźmy sobie, że chcesz zbudować prosty serwer, który może skrobać wewnętrzną wiki Confluence Twojej firmy.

  1. Skonfiguruj projekt. Rozpocząłbyś nowy projekt Node.js, instalując MCP TypeScript SDK (@modelcontextprotocol/sdk) i bibliotekę do konwersji HTML na Markdown, taką jak turndown.

  2. Zdefiniuj narzędzie get_doc. Utworzyłbyś narzędzie o nazwie get_doc. Jego schemat wejściowy oczekiwałby jednego parametru string: url.

  3. Zaimplementuj logikę skrobania. Funkcja narzędzia przyjęłaby url, użyła fetch, aby pobrać zawartość HTML strony Confluence, a następnie użyła usługi turndown do przekonwertowania HTML na czysty Markdown odpowiedni dla AI.

  4. Zarejestruj i uruchom serwer. Dodałbyś narzędzie do nowej instancji McpServer i połączył je z StdioServerTransport. Teraz możesz dodać ten lokalny serwer do konfiguracji swojego asystenta AI.

Przykładowy kod TypeScript dla niestandardowego serwera MCP
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
import TurndownService from "turndown";
// 1. Utwórz instancję serwera MCP
const server = new McpServer({
name: "internal-docs",
version: "1.0.0"
});
const turndownService = new TurndownService();
// 2. Dodaj narzędzie do skrobania wewnętrznej dokumentacji
server.tool("get_doc",
{ url: z.string() },
async ({ url }) => {
// 3. Zaimplementuj logikę narzędzia
try {
const response = await fetch(url);
const html = await response.text();
const markdown = turndownService.turndown(html);
return {
content: [{ type: "text", text: markdown }]
};
} catch (error) {
// Obsłuż błędy elegancko
return {
content: [{ type: "text", text: `Błąd skrobania ${url}: ${error.message}` }]
};
}
}
);
// 4. Uruchom serwer
const transport = new StdioServerTransport();
await server.connect(transport);

Budując niestandardowe serwery MCP, możesz stworzyć hiperspersonalizowanego asystenta AI, który rozumie unikalny kontekst Twojej organizacji, czyniąc go jeszcze potężniejszą i niezbędną częścią Twojego zespołu.