
Viele Teams beschreiben Model Context Protocol zunächst als „den Standard, um Tools mit KI-Agenten zu verbinden“. Das stimmt, ist aber für Architekturentscheidungen zu grob.
Praktischer ist diese Sicht:
Die offizielle Spezifikation beschreibt MCP als JSON-RPC-basiertes Protokoll für Tools, Ressourcen und Prompts in Agent-Runtimes. Relevant sind vor allem die Spezifikation, der Lifecycle-Teil und die ursprüngliche Ankündigung von Anthropic.
Nicht gelöst werden damit:
Darum behandeln reife Teams MCP als Delivery-Protokoll und nicht als vollständige Agent-Architektur.
Ein häufiger Fehler ist, jede Fähigkeit hinter MCP zu verstecken, nur weil es modern wirkt. Besser ist es, je nach Aufgabe die passende Oberfläche zu wählen.
| Oberfläche | Stärken | Schwäche | Verwenden Sie sie, wenn |
|---|---|---|---|
| MCP-Server | Discovery, agent-native Ausführung, Host-Interop | Stabile Payloads und Policies müssen Sie selbst entwerfen | Der Aufrufer ein Agent-Host ist und Tool-/Resource-Semantik wichtig ist |
| REST API | Deterministische Verträge, ausgereifte Auth/Gateways/Caches | Der Agent muss die Endpoint-Semantik kennen | Sie langfristige, host-unabhängige Verträge für mehrere Konsumenten brauchen |
| Skills | Workflow-Anweisungen und Guardrails verteilen | Schwach als Live-Datenebene | Sie Verfahrenswissen verpacken und Laufzeitdaten via MCP/API beziehen wollen |
Die einfache Regel:
Genau diese Kombination ist in der Praxis oft am stabilsten.
Governed MCP mit puppyone sehenGet startedEin schwaches MCP-Tool ist meist ein „kann alles“-Wrapper. Ein starkes MCP-Tool ist schmal, typisiert und gut begrenzt.
Die Grundregeln:
import { McpServer } from "@modelcontextprotocol/sdk/server";
const server = new McpServer({ name: "org-context" });
server.tool(
"get_knowhow_item",
{
description: "Read one governed Know-How item by id",
inputSchema: {
type: "object",
properties: { id: { type: "string" } },
required: ["id"],
additionalProperties: false
}
},
async ({ id }, ctx) => {
const item = await ctx.store.read(id);
if (!ctx.policy.canRead(ctx.user, item.policyTag)) {
return {
ok: false,
error: { code: "forbidden", message: "Access not permitted" }
};
}
return {
ok: true,
data: {
id: item.id,
title: item.title,
version: item.version,
summary: ctx.redactor(item.summary)
},
trace: {
requestId: ctx.requestId,
policyTag: item.policyTag
}
};
}
);
Die Stärke liegt nicht in Raffinesse, sondern darin, dass das Tool nicht zur unkontrollierten Durchreiche des Gesamtsystems wird.
Viele Tutorials hören bei „der Server läuft“ auf. Das reicht nicht, wenn der Server sensible Kontexte lesen oder Aktionen auslösen kann.
Ein sinnvolles Mindestmaß:
Nützlich sind hier Docks Dokumentationen zu HEALTHCHECK, Compose Healthchecks, rootless/non-root Betrieb und Read-Only Mounts.
FROM node:22-slim AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci --ignore-scripts
COPY . .
RUN npm run build && npm prune --omit=dev
FROM gcr.io/distroless/nodejs22-debian12:nonroot
WORKDIR /app
COPY --from=build /app/dist ./dist
USER 65532:65532
ENV NODE_ENV=production
CMD ["/nodejs/bin/node", "dist/server.js"]
Ob lokal oder on-prem: ohne klare Runtime-Grenzen bleibt „local-first“ nur ein Versprechen.
MCP ist stark für agent-native Ausführung, aber REST bleibt sinnvoll wegen:
Deshalb veröffentlichen viele Teams denselben regierten Kontext sowohl via MCP als auch via REST. Weiterhin hilfreich sind Microsofts API-Design-Guidelines sowie RFC 6585 und RFC 9110 für Rate Limits und Retry-After.
Entscheidend ist nicht Redundanz, sondern Spezialisierung:
Wenn Sie beides brauchen, ist das normal.
Skills eignen sich hervorragend, um Arbeitsweisen, Guardrails und wiederholbare Abläufe zu verteilen.
Typische Anwendungsfälle:
Als alleinige Datenebene taugen sie jedoch wenig. Für Frische, Autorisierung und strukturierte Retrieval-Pfade brauchen Sie weiterhin MCP oder APIs. Die Anthropic-Dokumentation zu Skills und das öffentliche Skills-Repository zeigen das Format gut.
Die praktikable Aufteilung:
Wenn ein Agent ein Tool falsch verwendet, sollten Sie beantworten können:
Genau deshalb sind OpenTelemetry und strukturierte Logs keine Kür. Gute Startpunkte sind Context Propagation und Traces. Für Retention und Audit helfen NIST SP 800-92 und SP 800-53 Rev.5.
{
"ts": "2026-04-03T09:15:00Z",
"event": "tool.execute",
"requestId": "req_7ad2",
"tool": "get_knowhow_item",
"actor": "agent_ops_reader",
"decision": "allow",
"resultHash": "sha256:ab12...",
"latencyMs": 42
}
Wenn Ihr Stack so etwas nicht liefern kann, ist das eigentliche Problem noch nicht die Protokollwahl.
Die meisten MCP-Projekte scheitern nicht am Protokoll, sondern am Kontext dahinter:
Hier kommt eine regierte Kontextbasis ins Spiel. Teams evaluieren puppyone genau für diesen Zweck: Enterprise-Know-How strukturieren, hybrid indexieren und dieselbe kontrollierte Wissensbasis via MCP, API oder Workflow-Packaging ausliefern. Dadurch muss der MCP-Server Kontext nicht bei jedem Call neu zusammensuchen.
Besonders relevant ist das, wenn:
Weiterführend:
Starten Sie nicht mit einer großen Protokollmigration. Wählen Sie lieber einen read-heavy Workflow und machen Sie ihn langweilig stabil:
Danach können Sie Tools, Skills und Orchestrierung sicher ausbauen.
Governed MCP mit puppyone planenGet startedNein. MCP ist stark für agentenseitige Ausführung, REST für host-unabhängige Verträge, Gateway-Kontrollen und breitere Wiederverwendung.
Nein. Zu breite Tools sind schwer zu kontrollieren und zu debuggen. Beginnen Sie mit schmalen, typisierten, vorhersagbaren Fähigkeiten.
Meistens nicht. Skills verpacken Workflow-Intention gut, aber für Frische, Autorisierung und Auditierbarkeit brauchen Sie MCP-Tools oder APIs.