KI-Automatisierung

MCP anpassen: Datenbank und lokale APIs mit dem KI-Agent verbinden

Model Context Protocol Custom Server Datenbank API mit Claude verbinden 2026
Offenlegung: KuzCloud veröffentlicht Mac-Hosting-Leitfäden; MCP selbst ist ein offenes Protokoll von Anthropic. Dieser Artikel ist ein technisches Tutorial, kein Produktpitch.
Kurzfassung: Das Model Context Protocol (MCP) ermöglicht einem Host (Claude Desktop, Cursor, Claude Code), Tools aufzurufen, Resources zu lesen und Prompts zu nutzen, die von einem separaten MCP-Server-Prozess bereitgestellt werden. Um MCP zu erweitern oder anzupassen, schreiben Sie einen Custom Server, der Ihre Datenbank, interne REST-API oder Shell-Skripte kapselt — und registrieren ihn in der Host-Konfiguration. Nutzen Sie stdio für lokale Einzelmaschinen-Setups; nutzen Sie SSE/HTTP, wenn der Server auf einem anderen Host läuft (z. B. ein dauerhaft laufender Mac mini). Dieser Leitfaden führt in 8 Schritten vom Gerüst bis zu Produktionschecks — mit konkreten Pfaden und Config-Snippets.

Warum MCP für Power-User wichtig ist

Vor MCP hatte jede IDE ihr eigenes Plugin-Format. Anthropics Model Context Protocol standardisiert, wie ein KI-Client Fähigkeiten entdeckt: Tools auflisten → Tool mit JSON-Args aufrufen → strukturierte Ergebnisse zurückgeben. Das bedeutet: Ein Postgres-Read-only-Server kann Claude Desktop, Cursor und andere MCP-Hosts bedienen, ohne Integrationen neu zu schreiben.

Hardcore-Entwickler interessieren sich dafür, weil:

  • Datenbanken abfragbarer Kontext werden, ohne Schema-Dumps in jeden Chat zu kopieren
  • Interne APIs (Billing, Feature Flags, Deploy-Status) als typisierte Tools erscheinen statt als fragiles Copy-Paste
  • IDE- und Agent-Stacks dieselbe Toolchain teilen, wenn Sie auch Claude-Code-Alternativen oder OpenClaw auf einem Remote-Mac betreiben

Offizielle Referenz: Model Context Protocol specification und Anthropic MCP documentation.

MCP-Architektur in 60 Sekunden

┌─────────────┐     JSON-RPC      ┌──────────────────┐
│  MCP Host   │ ◄──────────────► │  MCP Server       │
│ (Claude /   │   tools/resources │ (your custom code)│
│  Cursor)    │                   │  → DB / API / CLI │
└─────────────┘                   └──────────────────┘
Rolle Beispiele Verantwortung
Host Claude Desktop, Cursor, Claude Code Startet Server, sendet tools/call, rendert Ergebnisse
Server Ihr Node-/Python-Binary Implementiert list_tools, call_tool, optional resources/read
Transport stdio, SSE Überträgt JSON-RPC-Nachrichten zwischen Host und Server

Tiefen-Faustregel: Ein Server pro Vertrauensgrenze. Legen Sie keinen Produktions-Schreibzugriff und experimentelle Shell-Tools in dieselbe Server-Binary — Prozesse trennen, damit Sie einen Config-Block widerrufen können, ohne den anderen anzufassen.

Transport-Entscheidungsmatrix

Transport Latenz Am besten für Config-Datei (typisch)
stdio Niedrigste Lokale DB auf Laptop, Einzelnutzer claude_desktop_config.json, Cursor mcp.json
SSE (HTTP) +1 Hop Server auf NAS, Remote-Mac, Docker-Sidecar Host-URL http://host:port/sse
Streamable HTTP (neuere Hosts) Ähnlich wie SSE Wie SSE; Host-Version prüfen Je nach Host-Docs
Szenario Empfohlener Transport
SQLite-Datei auf derselben Maschine wie Claude Desktop stdio
PostgreSQL im Büro-LAN SSE-Server auf Jump-Host ODER stdio via SSH-Wrapper
5 interne REST-Microservices Ein Gateway-MCP-Server mit namespaced Tools
Team-weiter Tool-Katalog Zentraler MCP-Server auf always-on Host (siehe Remote-Mac-Setup)

Muster 1 — Datenbank-MCP-Server

Ziel: Dem Modell read-only SQL (oder vordefinierte Queries) gegen PostgreSQL, MySQL oder SQLite ausführen lassen.

Design-Constraints:

  • Benannte Tools (query_sales_summary, list_tables) statt rohem beliebigem SQL bereitstellen, wenn möglich
  • Zeilenlimits (z. B. max. 200 Zeilen) und Statement-Timeouts (z. B. 5 s) erzwingen
  • Connection Strings niemals durch das Modell leiten — aus DATABASE_URL in der Server-Umgebung laden

Beispiel-Tool-Oberfläche:

Tool-Name Input Output
postgres_query_readonly { "sql": "SELECT ..." } JSON-Zeilen + Spaltennamen
describe_table { "table": "orders" } Spaltentypen aus information_schema

Read-only-DB-Rolle verwenden: GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_reader;

Muster 2 — Lokales REST-API-Gateway

Ziel: Bestehende HTTP-Endpunkte als MCP-Tools kapseln, damit Claude keine langlebigen API-Keys im Chat-Fenster hält.

Gateway-Muster:

Claude → MCP tool "deploy_status" → your server → GET https://internal/api/v1/deployments

Implementierungstipps:

  • Jedes Tool auf eine HTTP-Methode + Pfad-Template mappen
  • Inputs mit Schema (Zod, Pydantic) validieren, bevor fetch aufgerufen wird
  • Abgeschnittenes JSON (erste 8 KB) plus truncated: true-Flag zurückgeben, wenn Antworten riesig sind
  • Correlation IDs serverseitig loggen; keine Secrets in Tool-Ergebnissen ausgeben

Das passt gut zu Multi-Agent-Orchestrierung, wenn OpenClaw-Worker dieselben internen APIs via MCP statt ad-hoc curl aufrufen.

Muster 3 — IDE- und Repo-Brücke

Cursor und Claude Code bringen bereits MCP-Client-Support mit. Ihr Custom Server kann bereitstellen:

  • Repo-Tools: git_diff_summary, run_linter (sandboxed)
  • Doc-Resources: file:// oder resources/read für AGENTS.md, OpenAPI-Specs
  • ECC-/Plugin-Hooks: nach ECC-Installation MCP-Tools hinzufügen, die die ecc-Skripte Ihres Teams kapseln

IDE-Brücken stdio-lokal halten, es sei denn, das ganze Team teilt eine Remote-Dev-Box.

Acht-Schritte-Runbook

Schritt 1 — Offizielles SDK installieren

Node (für die meisten Hosts empfohlen):

mkdir mcp-company-gateway && cd mcp-company-gateway
npm init -y
npm install @modelcontextprotocol/sdk zod pg

Python-Alternative: pip install mcp (siehe MCP Python SDK).

Schritt 2 — Minimalen Server scaffolden

src/index.ts erstellen:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new McpServer({ name: "company-gateway", version: "1.0.0" });

server.tool("ping", {}, async () => ({
  content: [{ type: "text", text: "pong" }],
}));

const transport = new StdioServerTransport();
await server.connect(transport);

Einmal ausführen: npx tsx src/index.ts — sollte blockieren und auf stdio warten (keine Ausgabe ist normal).

Schritt 3 — Read-only-Postgres-Tool hinzufügen

export DATABASE_URL="postgresql://mcp_reader:****@127.0.0.1:5432/app"

postgres_query_readonly registrieren mit Zod-validiertem SQL, das mit SELECT beginnen muss (; und DDL-Keywords serverseitig ablehnen).

Schritt 4 — In Claude Desktop registrieren

~/Library/Application Support/Claude/claude_desktop_config.json bearbeiten (macOS):

{
  "mcpServers": {
    "company-gateway": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/mcp-company-gateway/src/index.ts"],
      "env": { "DATABASE_URL": "postgresql://mcp_reader@127.0.0.1:5432/app" }
    }
  }
}

Claude Desktop neu starten. In neuem Chat prüfen, ob das Hammer-/Tools-Icon ping und postgres_query_readonly listet.

Schritt 5 — In Cursor registrieren

Projekt- oder globale .cursor/mcp.json:

{
  "mcpServers": {
    "company-gateway": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/mcp-company-gateway/src/index.ts"]
    }
  }
}

Cursor-Fenster neu laden. Dasselbe ping-Tool aus dem Agent-Panel testen.

Schritt 6 — SSE für Remote-Host freigeben (optional)

Wenn der MCP-Server auf einem Remote-Mac läuft (Team-Bastion oder gemieteter M4):

# Example: SDK HTTP/SSE transport on port 8787 — bind localhost only unless behind VPN
node dist/sse-server.js --port 8787 --host 127.0.0.1

Host-Config auf url: "http://127.0.0.1:8787/sse" via SSH-Tunnel zeigen:

ssh -L 8787:127.0.0.1:8787 user@remote-mac

Einen unauthentifizierten MCP-SSE-Port niemals ins öffentliche Internet stellen.

Schritt 7 — Secrets und Sandboxing

Regel Warum
Secrets nur in Server-env, nie in Tool-Argumenten Verhindert Prompt-Injection-Exfiltration
Separate Server für Prod vs. Staging Stoppt versehentliche Cross-Environment-Queries
Subprocess-Tools mit timeout und Allowlists begrenzen Blockiert rm -rf-Klasse Fehler

Schritt 8 — Mit MCP Inspector verifizieren

npx @modelcontextprotocol/inspector npx tsx src/index.ts

tools/list und tools/call manuell aufrufen, bevor Sie der Host-UI vertrauen. Jeden Tool-Aufruf mit Timestamp + OS-User loggen (nicht Chat-Inhalt) für Audit.

Sicherheits- und Sandbox-Checkliste

  • Read-only-DB-Rollen für Analytics-Tools; zweiten Server mit Schreib-Tools nur auf Dev-Maschinen
  • Input-Validierung bei jedem Tool; verschachtelte Objekte über 32 KB ablehnen
  • Network-Egress-Allowlist vom Server-Prozess (iptables oder macOS-Firewall), wenn interne APIs gekapselt werden
  • OAuth für SaaS — Token-Refresh im Server implementieren; dem Modell nur opakes tool_ok bereitstellen

Wann MCP auf einem dedizierten Mac betreiben

Ruhezustand auf dem Laptop beendet stdio-Server. Teams, die gemeinsame MCP-Kataloge wollen (dieselben Postgres-Tools für 8 Entwickler), betreiben den Server oft auf einem dauerhaft laufenden Apple-Silicon-Mac — lokal am Schreibtisch oder auf einem kleinen Remote-Knoten — und greifen per SSH-Tunnel oder VPN darauf zu. Für gemietete M4-Macs als always-on Host siehe Preise und Hilfe.

Das ist eine Infrastruktur-Entscheidung, kein MCP-Zwang. Ein 16-GB-M4 führt 3–5 leichte MCP-Server-Prozesse (~80–150 MB je) plus Node-Tooling komfortabel; mehr RAM, wenn auf derselben Maschine auch Docker-Datenbanken laufen. Details zu gemieteten Knoten finden Sie unter Preise ansehen und Hilfe.

Fehlerbehebung

Fehler: Connection closed direkt nach Spawn

Muster: Claude-Desktop-Log zeigt Server-Exit-Code 1.
Fix: Denselben command + args im Terminal ausführen; fehlendes tsx, falschen absoluten Pfad oder Startup-Exception beheben. MCP-Hosts zeigen stderr nicht in der UI.

Fehler: Tool not found / leere Tool-Liste

Muster: Config-JSON-Tippfehler im Server-Namen oder Host hat nicht neu geladen.
Fix: JSON mit jq . claude_desktop_config.json validieren; Host-App vollständig beenden und neu öffnen (nicht nur Fenster schließen).

Fehler: SSE 404 oder CORS-Fehler

Muster: Remote-URL falscher Pfad (/sse vs. /mcp).
Fix: Pfad an SDK-HTTP-Transport-Docs anpassen; mit ssh -L tunneln und 127.0.0.1 in Config verwenden.

Ihre Situation Empfehlung
Solo-Dev, DB auf Laptop stdio + Claude Desktop + Cursor mcp.json
Team-interne APIs Ein Gateway-MCP-Server mit namespaced Tools
DB im LAN, Laptop woanders MCP-Server auf Jump-Host + SSH-Tunnel zu SSE/stdio
Schwere Agents + MCP auf einer Box 24 GB RAM, wenn Docker-DB + OpenClaw-Fan-Out denselben Host teilen
Greenfield Mit Inspector + ping tool starten, bevor produktives SQL

Wenn X → Y: Liegen die Daten auf einer anderen Maschine, MCP-Server neben die Daten legen und zum Host tunneln — Claude keinen rohen Datenbank-Port ins öffentliche Internet geben.

FAQ

Was ist der Unterschied zwischen MCP und ChatGPT-Plugins?

MCP ist ein offenes, host-agnostisches JSON-RPC-Protokoll mit SDKs in mehreren Sprachen. Plugins waren plattformspezifisch. MCP-Server laufen als lokale oder Remote-Prozesse unter Ihrer Kontrolle; der Host startet sie nur oder verbindet sich mit ihnen.

Kann ich MySQL oder SQLite genauso wie PostgreSQL anbinden?

Ja. Die Server-Implementierung ändert sich (Treiber + SQL-Dialekt); die MCP-Oberfläche (list_tools, call_tool) bleibt identisch. Read-only-Verbindungen und dialektspezifische Guards (SELECT only) verwenden.

Unterstützt Claude Code MCP-Custom-Server?

Stand 2026 unterstützen Claude Code und Cursor MCP-Client-Konfiguration ähnlich wie Claude Desktop. Pfade unterscheiden sich je nach Produkt — aktuelle Anthropic- und Cursor-Docs für mcpServers-Speicherort prüfen. Der Server-Code ist hostübergreifend wiederverwendbar.

Wie viele Tools sollte ein Server bereitstellen?

Unter ~20 Tools pro Server bleiben für zuverlässiges Modell-Routing. Bei wachsenden Katalogen in billing-gateway, data-gateway, ops-gateway aufteilen. Jeder erscheint als separater Block in der Host-Konfiguration.

Ist es sicher, Schreib-Tools (DELETE, Deploy) freizugeben?

Nur auf Nicht-Produktions-Servern mit expliziten menschlichen Bestätigungsflows. Read-Tools in gemeinsamen Configs bevorzugen; Schreibzugriff hinter einen zweiten MCP-Server legen, den nur Senior-Entwickler in der persönlichen Config aktivieren.

MCP-Server auf Apple Silicon betreiben

Mieten Sie einen KuzCloud-M4-Mac für dauerhaft laufende MCP-Gateways, Postgres-Read-only-Tools und SSE-Tunnel über SSH — ohne Hardwarekauf, nur genutzte Zeit zahlen.