Protokół Model Context Protocol (MCP) to otwarty standard umożliwiający modelom takim jak Anthropic Claude i narzędzia programistyczne, takie jak Kod Claude'a odwoływać się do zewnętrznych narzędzi, źródeł danych i monitów w bezpieczny, standardowy sposób.
Ten przewodnik przeprowadzi Cię przez proces tworzenia własnego serwera MCP od podstaw, umożliwiając Claude Code dostęp do niestandardowych funkcji i tym samym znaczne rozszerzenie jego funkcjonalności poza wbudowane funkcje.
Czym jest protokół Model Context Protocol (MCP)?
MCP (Model Context Protocol) to protokół kontekstu modelu. otwarta specyfikacja Zaprojektowany w celu standaryzacji sposobu, w jaki klienci modelu językowego (takie jak Claude, Claude Code czy inne front-endy LLM) łączą się z serwerami narzędzi i źródłami danych. Pomyśl o MCP jako o „portach USB-C dla LLM”: definiują one schemat transportu/JSON-RPC i wspólny sposób publikowania przez serwery trzech rodzajów możliwości:
- Zasoby — dane w formie pliku lub dokumentu, które klient może odczytać (np. wiersz bazy danych, plik tekstowy, ładunek JSON).
- Narzędzia — funkcje wywoływalne, które model może poprosić hosta o wykonanie (za zgodą użytkownika).
- Monity — wielokrotnego użytku szablony komunikatów lub przepływy pracy, które model/klient może wywołać.
MCP obsługuje wiele transportów (stdio, HTTP, SSE) i udostępnia schemat, zestawy SDK oraz przykładowe serwery, dzięki czemu nie musisz samodzielnie opracowywać formatu połączenia. Protokół jest publicznie dostępny (specyfikacja + zestawy SDK) i zawiera samouczki oraz galerię przykładowych serwerów, co przyspiesza jego wdrażanie.
Jak zbudowana jest architektura MCP?
Architektura MCP jest celowo prosta i modułowa: jej główne elementy to MCP serwery, MCP klientów, Transport które przesyłają między sobą komunikaty JSON-RPC w ramkach. Poniżej znajdują się główne komponenty, z którymi będziesz wchodzić w interakcję podczas tworzenia serwera dla Claude Code (lub innych klientów MCP).
Serwer, klient i protokół
- Serwer MCP — Usługa, która publikuje Narzędzia, zasoby i monity. Narzędzia mogą wykonywać efekty uboczne lub pobierać dane; zasoby udostępniają treści tylko do odczytu; monity to wielokrotnego użytku szablony monitów, z których klient może poprosić model o pobranie próbek.
- Klient MCP (host) — Zazwyczaj część hosta LLM (np. Claude Code, wtyczka VS Code, klient przeglądarki). Wykrywa dostępne serwery, prezentuje opisy narzędzi modelowi i kieruje wywołania inicjowane przez model do serwerów.
- Protokół — Wiadomości są kodowane jako JSON-RPC; specyfikacja definiuje zdarzenia cyklu życia, odkrywanie narzędzi, wywoływanie, uzupełnianie/próbkowanie i sposób, w jaki ustrukturyzowane wyniki są przekazywane z powrotem do klienta i modelu.
Wzorzec komunikacji (co się dzieje, gdy używane jest narzędzie)
- Klient wysyła wiadomość użytkownika do modelu.
- Model analizuje kontekst i decyduje o wywołaniu narzędzia udostępnionego przez MCP (lub wielu narzędzi).
- Klient przekierowuje wywołanie narzędzia do serwera MCP poprzez wybrany transport.
- Serwer uruchamia narzędzie i zwraca wyniki.
- Model otrzymuje dane wyjściowe narzędzia i komponuje ostateczną odpowiedź dla użytkownika.
Prymitywy implementacyjne
- JSON-RPC Wiadomości są zgodne ze schematem MCP.
- Definicje narzędzi są publikowane w odpowiedziach wykrywania serwera, aby klienci mogli je zaprezentować w interfejsie użytkownika.
- Zasoby są odwoływane przez
@source:pathskładnia przez klientów (np.@postgres:...), umożliwiając modelom odwoływanie się do zawartości zewnętrznej bez konieczności wprowadzania ogromnych ilości danych do monitu.
Dlaczego warto zintegrować Claude Code z serwerami MCP?
Claude Code to oferta firmy Anthropic skoncentrowana na przepływach pracy skoncentrowanych na kodzie i programistach (integracja edytora/IDE, rozumienie kodu itp.). Udostępnienie wewnętrznych narzędzi (wyszukiwarki kodów źródłowych, narzędzia CI Runner, systemu zgłoszeń, prywatnych rejestrów) za pośrednictwem serwerów MCP pozwala Claude Code nazywać je… narzędzia pierwszej klasy kodowanie wewnętrznych konwersacji i przepływów agentów.
Zintegrowanie Claude Code z serwerami MCP otwiera przed agentem kodującym praktyczne możliwości istotne w środowisku produkcyjnym:
1. Pozwól modelowi działać na rzeczywistych systemach
Claude Code może zlecić serwerowi MCP odpytywanie systemów śledzenia zgłoszeń, uruchamianie zapytań do bazy danych, odczytywanie obszernych dokumentów lub generowanie żądań dostępu do GitHub — umożliwiając kompleksową automatyzację z poziomu sesji kodowania. Jest to wyraźnie obsługiwane w dokumentacji Claude Code (przykłady: odpytywanie Postgres, Sentry lub tworzenie żądań dostępu).
2. Odciąż duże zbiory danych i specjalistyczną logikę
Zamiast osadzać każde źródło danych w monicie (co zużywa tokeny), publikujesz dane i narzędzia za pośrednictwem MCP. Model wywołuje narzędzie, otrzymuje ustrukturyzowaną odpowiedź i uzasadnia ją — zmniejsza to zużycie tokenów i pozwala serwerom wykonywać dużą liczbę zadań (zapytania do bazy danych, odczyty długich plików, uwierzytelnianie).
3. Bezpieczeństwo i zarządzanie
MCP centralizuje kontrolę dostępu i audyt na poziomie serwera, umożliwiając organizacjom dodawanie serwerów do białej listy, kontrolowanie dostępności narzędzi i ograniczanie danych wyjściowych. Claude Code obsługuje również konfigurację MCP dla przedsiębiorstw i zgody na zakresy.
4. Ponowne wykorzystanie i ekosystem
Serwery MCP można ponownie wykorzystywać w różnych klientach i zespołach. Wystarczy raz skompilować, a wielu klientów Claude/LLM będzie mogło korzystać z tych samych usług (lub wymieniać implementacje).
Czego potrzebujesz, zanim zaczniesz?
Minimalne wymagania
- Maszyna rozwojowa z Pythona 3.10+ (w przykładzie użyjemy Pythona). Alternatywnie Node i inne języki są obsługiwane przez zestawy SDK MCP.
uv(narzędzie firmy Astral) lub równoważny program do uruchamiania serwerów MCP stdio (samouczek MCP wykorzystujeuv). Poniżej przedstawiono kroki instalacji.- Zainstalowany Claude Code lub dostęp do klienta Claude (na komputerze lub w interfejsie CLI) w celu rejestracji i przetestowania serwera; lub dowolnego klienta obsługującego MCP. Claude Code obsługuje serwery HTTP, SSE i lokalne serwery stdio.
- Uwaga dotycząca bezpieczeństwa: W ustawieniach zespołowych lub korporacyjnych do Claude Code dodawaj tylko zaufane serwery MCP — serwery MCP zapewniają serwerom dostęp do poufnych danych, a ryzyko szybkiego wstrzyknięcia istnieje, jeśli serwer zwróci złośliwą zawartość.
Jak zainstalować i zweryfikować interfejs wiersza poleceń Claude Code
To jest Instrukcja instalacji i użytkowania kodu Claude.
1) Krótkie podsumowanie — zalecane metody instalacji
Użyj instalator natywny (zalecane) lub Homebrew na macOS/Linux. NPM jest dostępny, jeśli potrzebujesz instalacji opartej na Node. Windows pobiera instalatory PowerShell/CMD. Źródło: oficjalna dokumentacja Claude Code i GitHub.
2) Wymagania wstępne
- macOS 10.15+, Ubuntu 20.04+/Debian 10+ lub Windows 10+ (w systemie Windows zalecany jest WSL).
- Node.js 18+ wymagane tylko dla metody instalacji NPM.
3) Polecenia instalacyjne (wybierz jedno)
Natywny (zalecany — brak zależności od węzła), macOS / Linux / WSL:
curl -fsSL https://claude.ai/install.sh | bash
# optional: install latest explicitly
curl -fsSL https://claude.ai/install.sh | bash -s latest
# or install a specific version
curl -fsSL https://claude.ai/install.sh | bash -s 1.0.58
Windows PowerShell:
irm https://claude.ai/install.ps1 | iex
# or for latest: & (::Create((irm https://claude.ai/install.ps1))) latest
(Są to oficjalne skrypty instalatora natywnego).
NPM (jeśli chcesz przeprowadzić globalną instalację opartą na Node):
# requires Node.js 18+
npm install -g @anthropic-ai/claude-code
Czy nie posługiwać się sudo npm install -g — ostrzegaj przed instalacjami globalnymi sudo (problemy z uprawnieniami/bezpieczeństwem). Jeśli napotkasz błędy uprawnień, użyj nvm lub napraw globalny prefiks npm zamiast używać sudo.
4) Sprawdź, czy plik binarny został zainstalowany (podstawowe sprawdzenia)
Uruchom je lokalnie natychmiast po instalacji:
# is the command on PATH?
which claude
# version (or -v)
claude --version
# or
claude -v
# help (sanity check)
claude --help
Spodziewany: which pokazuje ścieżkę (np. /usr/local/bin/claude or ~/.nvm/.../bin/claude) i claude --version Drukuje ciąg znaków podobny do semvera. Zarówno dokumentacja, jak i plik README pokazują claude jako podstawowy punkt wejścia CLI.
5) Sprawdź stan instalacji i konfigurację (zalecane kontrole)
a) claude doctor,Uruchomić:
claude doctor
Ta wbudowana diagnostyka sprawdza typ instalacji, typowe problemy (np. problemy z uprawnieniami npm), zależności, takie jak ripgrepi sugeruje poprawki. Dokumentacja wyraźnie zaleca uruchomienie claude doctor po instalacji.
b) Uruchom test dymowy (nieinteraktywny)
Z katalogu Twojego projektu:
cd /path/to/your/project
claude -p "Explain this project in 3 sentences"
To używa tryb (-p) aby wysłać pojedynczy monit, a następnie wyjść; przydatne w przypadku ciągłej integracji lub szybkich kontroli funkcjonalnych.
c) Weryfikacja uwierzytelnienia (upewnij się, że CLI może połączyć się z Anthropic)
Claude Code obsługuje kilka przepływów uwierzytelniania (OAuth w konsoli, klucz API, integracje z dostawcami). Typowe kontrole:
- W przypadku korzystania z klucza API (CI / headless / lokalna zmienna środowiskowa):
export ANTHROPIC_API_KEY="sk-..."
# then
claude auth status
claude auth whoami # or `claude auth whoami` / `claude whoami` depending on version
Możesz użyć Interfejs API CometKlucz API umożliwiający korzystanie z Claude Code. Korzystanie z API Claude'a za pośrednictwem CometAPI zapewni Ci 20% zniżki.
- Jeśli użyłeś OAuth za pomocą konsoli - uruchomić:
claude auth status
claude auth whoami
Powinny zostać wyświetlone informacje o koncie/planie lub potwierdzenie uwierzytelnienia.
Przygotowanie środowiska krok po kroku
Poniżej przedstawiono konkretne kroki przygotowania dwóch popularnych zestawów narzędzi dla programistów (TypeScript i Python), a następnie szybkie sprawdzenia w celu upewnienia się, że wszystko działa.
H3 — A. Konfiguracja TypeScript/Node (najszybsza ścieżka)
- Utwórz projekt i zainstaluj SDK:
mkdir mcp-demo && cd mcp-demo
npm init -y
npm install @modelcontextprotocol/sdk express zod
npm install --save-dev typescript tsx @types/node @types/express
- Stwórz
server.ts(Pełny przykład znajdziesz w sekcji „Jak szybko zbudować…”.) - Biegać:
npx -y tsx server.ts
- Przetestuj lokalnie za pomocą Inspektor MCP lub dodaj do kodu Claude'a:
npx @modelcontextprotocol/inspector
# or (for Claude Code)
claude mcp add --transport http my-server http://localhost:3000/mcp
(Polecenia Inspector i Claude umożliwiają weryfikację odkryć i wywoływanie narzędzi.)
Jak szybko zbudować serwer MCP dla Claude Code?
szybka lista kontrolna
-
Uruchom serwer (zalecany protokół HTTP umożliwiający strumieniowanie):
node server.tsoruvicorn server:app. -
Na komputerze deweloperskim wykonaj jedną z następujących czynności:
- Zastosowanie Inspektor MCP potwierdzić (
npx @modelcontextprotocol/inspector) i potwierdźtools/listorazresources/listLub - Dodaj serwer do kodu Claude:
claude mcp add --transport http <name> http://<host>:<port>/mcp(lub postępuj zgodnie z przepływami interfejsu użytkownika sieci Web, jeśli Twój klient obsługuje zdalny MCP).
Jeśli planujesz używać łącznika Messages API firmy Anthropic do zdalnego MCP (bez oddzielnego klienta), przeczytaj dokumentację Claude — może być wymagany nagłówek beta (sprawdź dokumentację, aby poznać dokładny nagłówek i bieżący stan wsparcia).
Poniżej znajdują się dwa kompletne, ale kompaktowe przykłady serwerów, które można skopiować, uruchomić i połączyć z Claude Code (lub MCP Inspector). Przykład TypeScript wykorzystuje Express + TypeScript SDK; przykład Python demonstruje montowanie FastAPI.
Uwaga: poniższy kod jest oparty na publicznych przykładach SDK i celowo minimalistyczny, aby zapewnić przejrzystość. W środowisku produkcyjnym należy dodać uwierzytelnianie, rejestrowanie, ograniczanie przepustowości i walidację danych wejściowych poza domyślnymi ustawieniami SDK.
Przykład 1: TypeScript + Express (strumieniowy HTTP)
Stwórz server.ts (kompletny):
// server.ts
import express from "express";
import * as z from "zod/v4";
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const server = new McpServer({ name: "claude-code-demo", version: "0.1.0" });
// Register a simple tool: add two numbers
server.registerTool(
"add",
{
title: "Add",
description: "Add two numbers a and b",
inputSchema: { a: z.number(), b: z.number() },
outputSchema: { result: z.number() }
},
async ({ a, b }) => {
const output = { result: a + b };
return {
content: ,
structuredContent: output
};
}
);
// Register a resource: greet user (dynamic)
server.registerResource(
"greeting",
new ResourceTemplate("greeting://{name}", { list: undefined }),
{ title: "Greeting", description: "Return a greeting for the name" },
async (uri, params) => {
return {
contents:
};
}
);
// Express + Streamable HTTP transport
const app = express();
app.use(express.json());
app.post("/mcp", async (req, res) => {
const transport = new StreamableHTTPServerTransport({ enableJsonResponse: true });
// Close transport when connection closes
res.on("close", () => transport.close());
await server.connect(transport);
await transport.handleRequest(req, res, req.body);
});
const port = parseInt(process.env.PORT || "3000", 10);
app.listen(port, () => console.log(`MCP server listening: http://localhost:${port}/mcp`));
Biegać:
npm install
npx -y tsx server.ts
Następnie połącz się w kodzie Claude'a (przykład):
# Add the remote server to your Claude Code MCP list (local dev)
claude mcp add --transport http my-demo http://localhost:3000/mcp
Przykład ten został zaadaptowany z oficjalnego dokumentu TypeScript SDK Quick Start i pokazuje, jak zarejestrować narzędzia i zasoby, a następnie udostępnić je za pomocą protokołu Streamable HTTP.
Przykład 2: Python + FastAPI (FastMCP + Streamable HTTP)
Stwórz server.py (kompletny):
# server.py
from fastapi import FastAPI
from mcp.server.fastmcp import FastMCP
app = FastAPI()
mcp = FastMCP("claude-python-demo", stateless_http=True)
# tool: simple sum
@mcp.tool()
def add(a: int, b: int) -> dict:
"""Add two integers"""
return {"result": a + b}
# resource: simple greeting resource template
@mcp.resource("greeting://{name}")
def greeting(name: str):
return {"contents": }
# mount the streamable-http MCP endpoint (FastMCP exposes an ASGI app)
app.mount("/mcp", mcp.streamable_http_app())
# optional endpoint to demonstrate other API routes
@app.get("/")
async def root():
return {"status": "OK"}
Biegać:
uvicorn server:app --reload --port 8000
Połącz się z inspektorem:
npx @modelcontextprotocol/inspector
# In Inspector select Streamable HTTP and enter http://localhost:8000/mcp
Przykłady zestawu SDK języka Python i narzędzia FastMCP ułatwiają rejestrację @mcp.tool() oraz @mcp.resource() udekorowane funkcje, które LLM może odkryć i wywołać.
Jak Claude Code nazywa swoje narzędzia?
Gdy LLM zdecyduje się na użycie narzędzia, klient wysyła wywołanie JSON-RPC do serwera MCP. Serwer uruchamia żądane narzędzie (na przykład wysyła zapytanie do bazy danych, uruchamia testy lub wywołuje zewnętrzne API) i zwraca ustrukturyzowana treść oraz prezentowalna treśćKlient (Claude Code) może następnie uwzględnić ustrukturyzowane dane wyjściowe w kontekście modelu, dzięki czemu model może kontynuować wnioskowanie na podstawie tych wiarygodnych danych — a nie tylko tekstowych danych wyjściowych serwera. Zestaw SDK TypeScript obsługuje rejestrowanie inputSchema oraz outputSchema (zod) dzięki czemu argumenty i dane wyjściowe są sprawdzane i maszynowo typizowane.
Jakich narzędzi do testowania i debugowania należy używać?
Inspektor MCP
Inspektor MCP to oficjalne wizualne narzędzie programistyczne do testowania serwerów MCP. Umożliwia połączenie z serwerem (stdio, SSE lub streamable-HTTP), wyświetlenie listy narzędzi, ręczne ich wywołanie oraz sprawdzenie cyklu życia komunikatów JSON-RPC — co jest nieocenione podczas programowania. Uruchom je za pomocą npx @modelcontextprotocol/inspector.
Testowanie lokalne a zdalne
- Lokalny (stdio) — szybki cykl iteracji dla aplikacji desktopowych i debugowania offline.
- HTTP z możliwością przesyłania strumieniowego — przetestuj za pomocą Inspektora lub połącz się z Claude Code za pomocą
claude mcp addCLI lub łącznik MCP w Messages API do testów zdalnych. Upewnij się, że podałeś wszystkie nagłówki uwierzytelniania wymagane dla Twojego serwera.
Podsumowanie
MCP to praktyczny pomost między nowoczesnymi systemami LLM a systemami, które faktycznie przechowują dane i wykonują działania. W przypadku przepływów pracy z kodem, integracja Claude Code z serwerem MCP zapewnia modelowi ustrukturyzowany, audytowalny dostęp do repozytoriów, CI, systemów śledzenia błędów i niestandardowych narzędzi – co przekłada się na bardziej precyzyjną automatyzację i bezpieczniejsze efekty uboczne. Dzięki oficjalnym zestawom SDK w językach TypeScript i Python, strumieniowemu protokołowi HTTP do zdalnego hostingu oraz narzędziom takim jak MCP Inspector, można zbudować minimalny serwer w kilka minut i iterować go w kierunku wdrożenia produkcyjnego.
Deweloperzy mogą uzyskać dostęp Claude Sonnet 4.5 API oraz Claude Opus 4.1 API itp. poprzez CometAPI, najnowsza wersja modelu jest zawsze aktualizowany na oficjalnej stronie internetowej. Na początek zapoznaj się z możliwościami modelu w Plac zabaw i zapoznaj się z Przewodnik po API aby uzyskać szczegółowe instrukcje. Przed uzyskaniem dostępu upewnij się, że zalogowałeś się do CometAPI i uzyskałeś klucz API. Interfejs API Comet zaoferuj cenę znacznie niższą niż oficjalna, aby ułatwić Ci integrację.
Gotowy do drogi?→ Zarejestruj się w CometAPI już dziś !
Jeśli chcesz poznać więcej wskazówek, poradników i nowości na temat sztucznej inteligencji, obserwuj nas na VK, X oraz Discord!
