Eigenständiger Guide

MCP oder ein einzelner API-Call

Eine Abwägung auf zwei Achsen, keine Regel, die für dich entscheidet.

Behrad Mirafshar
Behrad Mirafshar
Gründer, Bonanza Design
7 Min. Lesezeit

Was du am Ende dieser Seite mitnimmst

Am Ende dieser Seite hast du einen Weg, dich für einen bestimmten Job zwischen einem MCP-Server und einem einzelnen API-Call zu entscheiden, keine Regel, die für dich entscheidet.

Das ist eine Entscheidung, keine Methode, deshalb gibt es hier keine Aufgabe und nichts zu bauen. Die Seite hängt unter Spezialist 4, Wiederkehrende Arbeit automatisieren, weil Skills, Hooks und MCP dieselbe Frage aus verschiedenen Blickwinkeln beantworten (wie läuft deine Methode ohne dich).

MCP vs. API: die zwei Achsen

Zwei Dinge entscheiden das, nicht eines. Wäge beide ab, bevor du zu einer der Optionen greifst.

Token-Kosten

Jedes Tool, das ein MCP-Server anbietet, muss sich selbst beschreiben: seinen Namen, was es tut, welche Argumente es annimmt. Diese Beschreibung liegt in jedem einzelnen Turn im Kontextfenster, egal ob das Tool benutzt wird oder nicht. Verbinde fünf MCP-Server mit je einem Dutzend Tools, und es sind Dutzende Beschreibungen geladen, bevor du ein Wort getippt hast. Ein einzelner API-Call hat keine solche Beschreibung in der Unterhaltung: Seine Form steht in einer Datei, nicht im Fenster.

Zugriffsumfang

Ein MCP-Server gibt alles frei, wofür er gebaut wurde, oft die Aktionen einer ganzen Plattform, weil ihn das für viele verschiedene Aufgaben und viele verschiedene Personen nützlich macht. Ein einzelner API-Call erreicht genau den einen Endpoint, für den du ihn geschrieben hast, nicht mehr und nicht weniger. Breiterer Zugriff ist bequem, bis er auch das ist, worüber ein Reviewer nachdenken muss.

Wo die Grenze verschwimmt

Skills optimieren die MCP-Seite. Ein gut zugeschnittener Skill macht aus einem Dutzend Tool-Aufrufen, die jemand sonst von Hand ausführen würde, eine einzige Anweisung. Die Token-Kosten der Tool-Beschreibungen kaufen die Zeit zurück, die eine Person sonst damit verbracht hätte, sie manuell aneinanderzureihen.

Code optimiert die API-Seite. Ein Skript, das einen API-Call macht, kostet in keinem Turn etwas im Kontextfenster, weil seine Logik in einer Datei liegt, die ausgeführt wird, und nicht in einer Beschreibung, die gelesen wird. Außerdem tut es jedes Mal exakt dasselbe, was ein MCP-Tool-Aufruf, der in jedem Turn neu durchdacht wird, nicht garantiert.

Deshalb verschwimmt die Grenze in der Praxis. Viele echte Setups enden als Skill, der einen direkten API-Call kapselt: die Leichtigkeit von „eine Anweisung, erledigt“ von der MCP-Seite, ohne MCPs Steuer pro Turn für all die anderen Tools zu zahlen, die im selben Server ungenutzt herumliegen.

Ein Vergleich am Beispiel

Derselbe Job, von beiden Seiten der Entscheidung aus betrachtet: die offenen Issues eines Repositorys auflisten. Beide Snippets sind Illustrationen, kein Code aus einem echten Build.

Was eine MCP-Tool-Beschreibung kostet

Ein Tool von vielen, die der Server anbietet
{
  "name": "list_issues",
  "description": "List issues in a repository. Supports filtering by state, labels, assignee, and milestone. Returns issue number, title, state, labels, assignee, and body.",
  "input_schema": {
    "type": "object",
    "properties": {
      "owner": { "type": "string" },
      "repo": { "type": "string" },
      "state": { "type": "string", "enum": ["open", "closed", "all"] },
      "labels": { "type": "array", "items": { "type": "string" } },
      "assignee": { "type": "string" },
      "milestone": { "type": "string" }
    },
    "required": ["owner", "repo"]
  }
}
// One of dozens of tool descriptions the server exposes.
// This one loads into every turn's context whether it's called or not.
// So do the other create_issue, update_issue, add_comment, merge_pr … tools.

Was ein einzelner API-Call kostet

list-open-issues.js
// list-open-issues.js: the one job this script does, and nothing else.
async function listOpenIssues(owner, repo) {
  const res = await fetch(
    `https://api.github.com/repos/${owner}/${repo}/issues?state=open`,
    { headers: { Authorization: `Bearer ${process.env.GITHUB_TOKEN}` } },
  );
  return res.json();
}

// This description exists here, in the file. It costs zero tokens in the
// context window on any turn. Claude runs the script, it doesn't reason
// about a schema for it first.

Nebeneinander gelegt bleibt der Trade-off bei jedem Job gleich, auf den du eine der beiden Optionen ansetzt.

Derselbe Job, von beiden Seiten der Entscheidung aus betrachtet: die offenen Issues eines Repos auflisten.
MCP-ServerEinzelner API-Call
Was in jedem Turn geladen wirdJedes Tool, das der Server anbietet: list_issues plus create_issue, update_issue, add_comment, merge_pr und alles andere, was mitgeliefert wirdNichts. Die Form des Requests steht in einer Datei, die ausgeführt wird, nicht in der Unterhaltung
Was erreichbar istAlles, wofür der Server gebaut wurde, meist der Großteil der API-Oberfläche der PlattformDer eine Endpoint, den das Skript aufruft, und nur der
Wer es pflegen mussNiemand, sobald es verbunden ist. Der Autor des Servers hält es aktuellDu oder wer auch immer das Skript und seine Authentifizierung geschrieben hat
Was ein zweiter Job kostetNichts Neues. Der Server bietet das nächste benötigte Tool wahrscheinlich schon anEin zweites Skript oder eine zweite Funktion im selben

Wann welche Wahl richtig ist

MCP passt tendenziell, wenn …

die Aufgabe von Session zu Session ihre Form ändert, mehrere Personen dieselbe Verbindung brauchen, ohne dass jede ihren eigenen Client schreibt, oder die API der Plattform so groß ist, dass sich ein selbstgebauter Wrapper für jede Aktion nicht lohnt. Die Token-Kosten pro Turn kaufen Flexibilität, für die du sonst in Setup-Zeit zahlen würdest.

Ein einzelner API-Call passt tendenziell, wenn …

es immer derselbe Job ist, der immer gleich läuft. Die Art von Aufgabe, die ein Skill oder ein Skript einfach erledigen sollte, ohne jedes Mal neu über ein Schema nachzudenken. Du schreibst und pflegst den Wrapper ohnehin gern selbst, und der Job soll im Kontext nichts kosten, egal wie oft er läuft.

Keines von beiden ist der Standard. Prüfe dein eigenes Setup mit /context: Wenn die Tool-Beschreibungen eines verbundenen Servers als sichtbarer Ausschnitt des Fensters auftauchen, ist dieser Ausschnitt das, was diese Seite mit Token-Kosten meint. Wäge ihn dagegen ab, wie oft du tatsächlich zu den Tools dieses Servers greifst.

Skills entscheiden es in der Praxis meistens. In Spezialist 4 erfährst du, wo Skills leben und wie sie an einen Hook angebunden werden, und in Claude Code Skills für Designer findest du ein funktionierendes Set von Skills, die direkte Calls statt einer breiten Verbindung kapseln.

Wie das Einsparen von SaaS-Kosten die Rechnung MCP gegen Skills verändert hat

FAQ

Ja. Jede Tool-Beschreibung, die der Server anbietet, wird nach dem Verbinden in jedem Turn ins Kontextfenster geladen, unabhängig davon, ob dieser Turn sie aufruft. Führe /context aus, um zu sehen, wie viel Platz sie in deinem eigenen Setup einnimmt.

Nein. Auf dieser Seite geht es um Kontextbudget und Zugriffsumfang, nicht um reine Latenz. Ein MCP-Aufruf und ein direkter API-Call können beide schnell oder langsam sein, je nach Dienst dahinter. Der Trade-off hier ist, was im Fenster liegt und was die Verbindung erreichen kann, nicht, welche schneller antwortet.

Die meisten echten Setups tun das. MCP für die Ad-hoc-Arbeit, die sich mit jeder Session ändert und bei der Flexibilität wichtiger ist als die Kosten pro Turn; ein Skript oder ein Skill, der einen einzelnen API-Call kapselt, für den einen Job, der ständig läuft und im Kontext nichts kosten soll.

Nein. Ein Skill ist, wie eine Aufgabe erledigt wird: die aufgeschriebene Methode, der Claude folgt. Ein API-Call ist das, was tatsächlich ausgeführt wird. Ein Skill kapselt oft genau deshalb einen direkten API-Call, damit die Aufgabe MCPs „eine Anweisung, erledigt“-Gefühl bekommt, ohne MCPs Token-Kosten pro Turn für Tools zu zahlen, die nichts mit dieser Aufgabe zu tun haben.

Diese Seite gibt bewusst kein Urteil ab. Eine frühere Version hat es versucht, und es las sich wie gut gegen schlecht, was nicht stimmt. Wäge die beiden Achsen oben gegen deine eigene Aufgabe ab: wie oft du sie brauchst, wie viele Personen sie brauchen und wie viel von der Plattform sie tatsächlich berühren muss.

Ja, und die meisten tun es. Die Entscheidung fällt pro Job, nicht pro Projekt: Ein Connector, den drei Leute jeden Tag nutzen, verdient sich seinen Platz im Kontextfenster, während ein einmaliger Abruf beim selben Dienst als einzelner Call in einem Skill oft günstiger ist. Entscheide jeden einzeln anhand der zwei Achsen.

Du willst das live mit deinem Team durchgehen?

Dieselbe Methode, an zwei Vormittagen an deinem eigenen Projekt statt an unserem vermittelt.

Masterclass buchenMehr erfahren