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.

ℹ️ Dwa miejsca konfiguracji MCP: Konfiguracja globalna (~/.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
📷 Schemat przepływu: Claude Code ↔ serwer MCP filesystem ↔ system plików — z zaznaczonymi uprawnieniami dostępu

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

1

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.

2

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 env w konfiguracji
  • Weryfikuj serwery zewnętrzne — uruchamiaj tylko serwery MCP ze sprawdzonych źródeł (oficjalne repo Anthropic lub zweryfikowane pakiety npm)
⚠️ Uwaga — prompt injection przez MCP: Złośliwa zawartość pliku odczytanego przez serwer filesystem może próbować manipulować zachowaniem modelu. Zawsze przeglądaj co serwery MCP odczytują w Twoim imieniu i ogranicz dostęp do zaufanych katalogów.

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.

⚠️ Nota informacyjna: Treści mają charakter edukacyjny. Wszelkie działania podejmujesz na własną odpowiedzialność. Przed zmianami w środowisku produkcyjnym wykonaj kopię zapasową.