Znasz już teorię stojącą za Model Context Protocol. Teraz czas na praktykę — jak skonfigurować serwery MCP w Claude Code, jakie gotowe serwery warto uruchomić i jakich błędów unikać. Ten poradnik zakłada, że masz zainstalowanego Claude Code (npm install -g @anthropic-ai/claude-code) i klucz API Anthropic.
~/.claude/settings.json) dotyczy wszystkich projektów. Konfiguracja projektowa (.mcp.json w katalogu projektu) pozwala na ustawienia specyficzne dla repozytorium — idealne gdy projekt wymaga konkretnych serwerów MCP, a inne nie.Konfiguracja globalna MCP w ~/.claude/settings.json
Otwórz plik konfiguracyjny Claude Code. Jeśli nie istnieje, zostanie utworzony przy pierwszym uruchomieniu:
# Ścieżka pliku konfiguracyjnego:
~/.claude/settings.json
# Przykładowa konfiguracja z serwerem filesystem i GitHub:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/home/user/projekty",
"/tmp"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_twoj_token_tutaj"
}
}
}
}
Konfiguracja projektowa .mcp.json
Dla ustawień specyficznych dla projektu umieść plik .mcp.json w katalogu projektu. Claude Code automatycznie wykrywa ten plik podczas uruchomienia w danym katalogu:
# Przykład .mcp.json dla projektu z bazą SQLite:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"./database.db"
]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "twoj_klucz_brave_api"
}
}
}
}
Gotowe serwery MCP — przegląd
Według dokumentacji Anthropic i repozytorium MCP na GitHubie, popularne gotowe serwery to:
- @modelcontextprotocol/server-filesystem — odczyt/zapis plików z kontrolą dostępu do katalogów
- @modelcontextprotocol/server-github — zarządzanie repozytoriami, issues, PRami
- mcp-server-sqlite (Python/uvx) — zapytania SQL do bazy SQLite
- @modelcontextprotocol/server-brave-search — wyszukiwanie Brave Search API
- @modelcontextprotocol/server-puppeteer — automatyzacja Chrome (scraping, testy)
- @modelcontextprotocol/server-fetch — pobieranie zawartości stron WWW
Własny serwer MCP w Node.js
Napisanie prostego serwera MCP nie jest trudne. Anthropic udostępnia SDK dla Node.js i Pythona:
// Minimalny serwer MCP w Node.js (plik: my-mcp-server.js)
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "moj-serwer", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
// Rejestracja narzędzia
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "pobierz_date",
description: "Zwraca aktualną datę i godzinę serwera",
inputSchema: { type: "object", properties: {} }
}]
}));
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "pobierz_date") {
return { content: [{ type: "text", text: new Date().toISOString() }] };
}
});
// Uruchomienie przez stdio
const transport = new StdioServerTransport();
await server.connect(transport);
Kiedy UŻYWAĆ MCP, a kiedy NIE warto
Kiedy MCP ma sens
Używaj MCP gdy: model potrzebuje dostępu do aktualnych danych (baza danych, pliki projektu), musisz automatyzować operacje na zewnętrznych systemach (GitHub, Jira, Google Drive), budujesz agenta AI który ma wykonywać długie wieloetapowe zadania wymagające narzędzi.
Kiedy MCP to przerost formy
Nie potrzebujesz MCP do prostych pytań i odpowiedzi, jednorazowych zadań tekstowych, gdy dane możesz przekazać bezpośrednio w prompcie (małe pliki, fragmenty kodu). Niepotrzebne serwery MCP spowalniają inicjalizację i zwiększają powierzchnię ataku.
Bezpieczeństwo i typowe błędy
Bezpieczeństwo serwerów MCP to temat, który warto traktować poważnie. Kilka kluczowych zasad:
- Zasada najmniejszych uprawnień — daj serwerowi filesystem dostęp tylko do niezbędnych katalogów, nie do całego systemu plików
- Tokeny API jako zmienne środowiskowe — nigdy nie wpisuj tokenów bezpośrednio w kodzie, używaj pola
envw konfiguracji - Weryfikuj serwery zewnętrzne — uruchamiaj tylko serwery MCP ze sprawdzonych źródeł (oficjalne repo Anthropic lub zweryfikowane pakiety npm)
Typowe błędy przy konfiguracji: nieprawidłowa ścieżka do serwera (sprawdź czy npx jest w PATH), brakujące zmienne środowiskowe (token API), konflikty portów przy SSE, oraz uruchamianie Claude Code bez uprawnień do katalogów wskazanych w konfiguracji filesystem.