MCP vs. klassische API

MCP ersetzt keine REST- oder GraphQL-APIs — es lebt eine Schicht darüber. Aber im Vergleich wird klarer, was MCP eigentlich Neues bringt.

Faustregel: Wenn ein Mensch oder klassisches Programm die API benutzt → REST. Wenn ein LLM-Agent sie benutzt → MCP davor.
Wer entdeckt was möglich ist?
REST
Nutzer/Entwickler liest die Docs.
MCP
Client fragt zur Laufzeit tools/list ab — automatisch.
Wer ruft auf?
REST
Der Client direkt, oft als HTTP-Request.
MCP
Der MCP-Client als Adapter zwischen Modell und Server.
Format der Parameter
REST
Frei — JSON, Form-Encoded, Query-String, Header, …
MCP
JSON-Schema, vom Server deklariert — Modell kennt die erwarteten Felder.
Auth
REST
Tokens im Header, jeder Client implementiert eigenes Schema.
MCP
Vom Server-Setup vorgegeben; oft ein Token in der MCP-Server-Konfig.
Beobachtbarkeit
REST
HTTP-Logs, Tracing.
MCP
Jede tools/call wird durch den Client sichtbar — User sieht jedes Aufrufen.
Side Effects
REST
Implizit (POST = schreibend, GET = lesend) — Konvention.
MCP
Tools können meta-Flags setzen (z.B. requires confirmation).
Zielgruppe
REST
Andere Programme, Skripte, Frontends.
MCP
LLM-Agenten — Tool-Beschreibungen sind in natürlicher Sprache, nicht in Endpunkt-Pfaden.
Wenn die API sich ändert
REST
Clients müssen aktualisiert werden.
MCP
Server-Schema ändert sich; Client fragt erneut tools/list.

Wann ist MCP der Overkill?

  • Wenn dein Agent immer dieselbe API ruft — dann ist ein direktes Tool (mit OpenAI Function-Calling oder Claude Tool-Use) einfacher.
  • Wenn die API streng vertraulich ist und du nicht möchtest, dass ein generischer Client sie nutzt — MCP-Server müssen geschützt werden wie jede andere API auch.
  • Wenn der Aufruf-Mix ein reines Read-Only-Frontend ist — da reicht GraphQL.

Wann lohnt sich MCP besonders?

  • Du baust einen lokalen Agenten (Claude Desktop, Claude Code), der mehrere Datenquellen und Tools beherrschen soll — Filesystem, Git, DB, Slack — und du willst sie nicht alle einzeln im Agent verdrahten.
  • Du betreibst ein internes Tool, das von verschiedenen LLM-Anwendungen benutzt werden soll. Ein MCP-Server, beliebige Clients.
  • Du möchtest, dass ein Drittanbieter-Tool von deinem Agenten benutzt werden kann, ohne es selbst in dein Codebase einzubauen.