# MCP ist ein Transport, nicht eine Architektur

<!-- category -- MCP, ACP, AI,Architecture,LLM,Patterns -->
<datetime class="hidden">2026-01-20T16:00</datetime>

*Dies ist ein Teil von 2's als Komponenten. [Teil: Warum LLMs als Sensoren fehlschlagen](/blog/llms-fail-as-sensors) deckte den Kategoriefehler der Verwendung von LLMs für die Wahrnehmung ab Dieser Artikel behandelt die Kategoriefehler des Verwendens von MCP als Architektur.*

---


**Wie baue ich einen MCP-Server, ist die falsche Frage?**

SDKs existieren ,. , Ein LLM kann ein Gerüst in Sekunden , . , Die wirkliche Frage ist ,: ,

> *Welche Rolle sollte ein MCP-Server innerhalb eines Systems spielen, das nicht lügen darf?*

Die knappe Fertigkeit ist jetzt die Gestaltung der **System rund um** MCP-:-Behörde,-Zulassung,-Überprüfungsfähigkeit,- und deterministische Kontrolle.-MCP-Handles Transport-—- jene Bedenken leben anderswo

Dieser Artikel erklärt, wie ich MCP verwende **ohne Agenten ,, , Autonomie , oder Vibes**Und warum die meisten MCP-Beispiele dieselben Probleme neu erstellen, wie wir es mit ungezwungenem Werkzeug gesehen haben.

[TOC]

---


## Was eigentlich MCP ist und was ' ist

Das MCP-Protokoll ) ist ein **Drahtprotokoll**Es bewegt sich.

- Ein- und Ausgänge
- Schemata
- Metadaten des Werkzeugs
- Entdeckung von Fähigkeiten

Es tut es **nicht**:

- Entscheiden *wenn* Werkzeuge sollten laufen
- Wahrheit bestätigen
- Vertrauen stärken
- Nebenwirkungen verwalten

```mermaid
flowchart LR
    subgraph MCP["MCP: What It Does"]
        Schema[Schema Discovery] --> Transport[Transport Layer]
        Transport --> Invoke[Tool Invocation]
        Invoke --> Response[Structured Response]
    end

    subgraph NotMCP["Not MCP's Job"]
        When[When to run?]
        Trust[Is this true?]
        Should[Should we act?]
        Safe[Is this safe?]
    end

    style MCP fill:none,stroke:#16a34a,stroke-width:2px
    style NotMCP fill:none,stroke:#dc2626,stroke-width:2px
    style Schema fill:none,stroke:#059669,stroke-width:2px
    style Transport fill:none,stroke:#059669,stroke-width:2px
    style Invoke fill:none,stroke:#059669,stroke-width:2px
    style Response fill:none,stroke:#059669,stroke-width:2px
    style When fill:none,stroke:#dc2626,stroke-width:2px
    style Trust fill:none,stroke:#dc2626,stroke-width:2px
    style Should fill:none,stroke:#dc2626,stroke-width:2px
    style Safe fill:none,stroke:#dc2626,stroke-width:2px
```

**MCP ist näher an OpenAPI als ein Agent-Framework.**

Wenn Sie MCP als Ihre Argumentationsschicht verwenden, haben Sie bereits den gleichen Kategoriefehler gemacht, der in [Teil](/blog/llms-fail-as-sensors).

Wenn MCP Transport ist, dann lebt die Architektur über ihm.

---


## Das Kernprinzip: Propose vs Decide

Dies ist die Grundregel von [Reduzierte RAG](/blog/reduced-rag) und [Beschränkte Fuzziness](/blog/constrained-fuzzy-image-intelligence):

- **Probabilistische Komponenten vorschlagen**
- **Deterministische Systeme entscheiden**

In meinen Systemen

- LLMs sind *niemals* Behörden
- Werkzeuge sind *niemals* autonom
- Jede MCP-Antwort ist ein **Vorschlag**Nicht eine Tatsache

"-Deterministisch-"-deterministisch bedeutet hier: **Regel: ,, reproduzierbar und auditierbar**.

```mermaid
flowchart TD
    subgraph Proposers["Proposers (Probabilistic)"]
        LLM[LLM Synthesis]
        MCP1[MCP Tool Response]
        MCP2[MCP Tool Response]
    end

    subgraph Constrainer["Constrainer (Deterministic)"]
        Validate[Validate Proposals]
        Compare[Compare Confidence]
        Policy[Apply Policy Rules]
        Decide[Accept / Reject / Escalate]
    end

    subgraph Persistence["Persistence (Facts)"]
        Facts[(Verified Facts<br/>With Provenance)]
    end

    LLM --> Validate
    MCP1 --> Validate
    MCP2 --> Validate
    Validate --> Compare
    Compare --> Policy
    Policy --> Decide
    Decide --> Facts

    style Proposers fill:none,stroke:#d97706,stroke-width:2px
    style Constrainer fill:none,stroke:#2563eb,stroke-width:2px
    style Persistence fill:none,stroke:#16a34a,stroke-width:2px
    style LLM fill:none,stroke:#d97706,stroke-width:2px
    style MCP1 fill:none,stroke:#d97706,stroke-width:2px
    style MCP2 fill:none,stroke:#d97706,stroke-width:2px
    style Validate fill:none,stroke:#2563eb,stroke-width:2px
    style Compare fill:none,stroke:#2563eb,stroke-width:2px
    style Policy fill:none,stroke:#2563eb,stroke-width:2px
    style Decide fill:none,stroke:#2563eb,stroke-width:2px
    style Facts fill:none,stroke:#16a34a,stroke-width:3px
```

Der MCP-Server entscheidet sich für den Constrainer.

---


## Warum Werkzeuge das falsche mentale Modell sind

Das Standard-MCP-Frameming ist:

- Methoden als Werkzeuge darlegen
- Lassen Sie das Modell wählen, welches Werkzeug anzurufen ist.
- Bitten Sie vor der Ausführung um Erlaubnis

Dies scheitert aus vorhersehbaren Gründen.

1. **Werkzeugbeschreibungen werden zu Aufforderungen**Die LLM zieht die Absicht aus der Formulierung heraus, nicht aus der Schemasemantik
2. **Werkzeugauswahl Drifts**Das Modell optimiert die Plausibilität des Modells, nicht aber die Korrektheit, und pflückt Werkzeuge basierend auf Beschreibungsgleichheit.
3. **Berechtigungsaufforderung ist nicht sicher**Ein modaler Dialog verhindert, dass das falsche Werkzeug ausgewählt wird
4. **Keine Wiederspielbarkeit**Sie können eine Sitzung reproduzieren, weil die Werkzeugauswahl probabilistisch war.

**Reframe-Endpunkte von MCP veröffentlichen Signale, nicht Aktionen, sondern**

- Signale sind typisiert ,, , begrenzt , , und zuzuordnen
- Jedes Signal hat Vertrauen.
- Natürliche Sprache ist ein *Präsentationsschicht*Nicht das Substrat

```mermaid
flowchart LR
    subgraph Wrong["❌ Tools Mental Model"]
        Desc[Tool Description<br/>'Gets weather for city'] --> LLM1[LLM Chooses]
        LLM1 --> Execute[Execute Action]
        Execute --> Trust1[Trust Result?]
    end

    subgraph Right["✓ Signals Mental Model"]
        Schema2[Typed Schema<br/>city: string, units: enum] --> Invoke2[Deterministic Invoke]
        Invoke2 --> Signal[Signal Response<br/>+ confidence + provenance]
        Signal --> Validate2[Constrainer Validates]
    end

    style Wrong fill:none,stroke:#dc2626,stroke-width:2px
    style Right fill:none,stroke:#16a34a,stroke-width:2px
    style Desc fill:none,stroke:#dc2626,stroke-width:2px
    style LLM1 fill:none,stroke:#dc2626,stroke-width:2px
    style Execute fill:none,stroke:#dc2626,stroke-width:2px
    style Trust1 fill:none,stroke:#dc2626,stroke-width:2px
    style Schema2 fill:none,stroke:#16a34a,stroke-width:2px
    style Invoke2 fill:none,stroke:#16a34a,stroke-width:2px
    style Signal fill:none,stroke:#16a34a,stroke-width:2px
    style Validate2 fill:none,stroke:#16a34a,stroke-width:2px
```

---


## Signalverträge über Chat

Jeder MCP-Endpunkt in meinen Systemen hat

- **Ein Schema**Ein- und Ausgänge, die nicht frei sind
- **Vertrauen**Wie sicher ist dieses Ergebnis?
- **Herkunft**Wo ist dies aus der ?? ?( ?Frame ID ? , ?Binding Box ? , ?Wellenform Region ?
- **Nachweise**Was unabhängig überprüft werden kann

Keine freie text-Behörde ,. , keine beste Anstrengung

**Beispiele aus Produktionssystemen**

Evidenz-Zeugner
|--------|-------------------|------------------|
Textextraktion von OCR-Texten – | – Florenz – -2 – Vertrauenspunkt , | – Bounding-Box-Koordinaten , | –
Bild-Klassifikation Bild-Score Bild-Niveau Bild-ID
Audio-Transkription Bild des Flüsterworts Bild des -Level-Konfidenzniveaus Bild der Zeitstempelbereich Bild des |
Lautsprecher-Identifikation Lautsprecher-Diarisations-Cluster-Abstand Segmentgrenzen

**Die Regel: Wenn ein Ergebnis validiert werden kann, wird es akzeptiert.**

Dies ist das gleiche Prinzip wie [Design-Regel](/blog/llms-fail-as-sensors)Fakten brauchen Provenienz

---


## Der Constrainer der Teil, den jeder überspringt

Die meisten MCP-Tutorials zeigen

1. Werkzeuge definieren
2. Verbindung zu LLM herstellen
3. Lass es laufen

Die fehlende Komponente ist die **Begrenzer** Die deterministische Logik, die

- Bewertung konkurrierender Vorschläge
- Durchsetzung der Politik
- beschließt, was anhält und was abgelehnt wird
- Wege zur Eskalation, wenn das Vertrauen gering ist

```mermaid
flowchart TD
    subgraph Sources["Signal Sources"]
        Heuristics[Heuristics<br/>Text-likeliness: 0.3]
        LocalModel[Local Model<br/>Florence-2 OCR: 0.85]
        LLMCall[LLM Escalation<br/>GPT-4V: 0.92]
    end

    subgraph Constrainer["Constrainer Logic"]
        Receive[Receive All Signals]
        Check{Confidence<br/>≥ 0.7?}
        Cross[Cross-Validate<br/>Signals Agree?]
        Accept[Accept as Fact]
        Reject[Reject / Log]
        Escalate[Escalate to<br/>Higher Tier]
    end

    Heuristics --> Receive
    LocalModel --> Receive
    LLMCall --> Receive

    Receive --> Check
    Check -->|Yes| Cross
    Check -->|No| Escalate
    Cross -->|Yes| Accept
    Cross -->|No| Reject

    style Sources fill:none,stroke:#d97706,stroke-width:2px
    style Constrainer fill:none,stroke:#2563eb,stroke-width:2px
    style Heuristics fill:none,stroke:#d97706,stroke-width:2px
    style LocalModel fill:none,stroke:#d97706,stroke-width:2px
    style LLMCall fill:none,stroke:#d97706,stroke-width:2px
    style Receive fill:none,stroke:#2563eb,stroke-width:2px
    style Check fill:none,stroke:#2563eb,stroke-width:2px
    style Cross fill:none,stroke:#2563eb,stroke-width:2px
    style Accept fill:none,stroke:#16a34a,stroke-width:2px
    style Reject fill:none,stroke:#dc2626,stroke-width:2px
    style Escalate fill:none,stroke:#7c3aed,stroke-width:2px
```

**Echte Zwangsent scheidungen**

- LLM-Unterschrift zurückweisen, wenn Heuristiken auf Text uneins sind
- Bevorzugen Sie niedrigeres, aber belegtes Vertrauen OCR über hoheres, halluzinierter Text
- Escalate to vision LLM nur, wenn lokale Modell-Konfidenz

**MCP verbindet Komponenten. Der Constrainer regiert sie.**

---


## Die LLM ausschalten und warum ich es tue

Meine MCP-Server funktionieren immer noch mit dem LLM deaktiviert.

Dies ist ein degradierter Modus, der die **Primärmodus**.

Wenn Ihr System aufhört zu arbeiten, wenn das LLM nicht verfügbar ist, sollte die LLM einen Job erledigen.

Die Kernfunktionen

- Deterministische Zusammenfassung aus extrahierten Fakten
- Evidence---erste Retrieval über Einbettungen und Filter
- Strukturierte Abfragen gegen die Faktendatenbank

Die LLM wird .: .

- Eine Syntheseschicht (optional)
- Eine Erklärungsmaschine auf Anfrage
- Ein Anreicherer für die Ausgabe natürlicher Sprache

Das LLM ist **nicht**:

- Entscheidungsträger
- Speicher
- Ein Wahrheitsmotor

```mermaid
flowchart TD
    subgraph AlwaysOn["Always On (Deterministic)"]
        Sensors[Sensors + Heuristics]
        Local[Local Models<br/>Florence-2, Whisper, CLIP]
        Facts[(Facts Database)]
        Query[Query Engine]
    end

    subgraph Optional["Optional (LLM)"]
        Synthesis[Natural Language Synthesis]
        Explain[Explanation Generation]
    end

    Sensors --> Local
    Local --> Facts
    Facts --> Query
    Query --> Synthesis
    Query --> Explain

    style AlwaysOn fill:none,stroke:#16a34a,stroke-width:2px
    style Optional fill:none,stroke:#6b7280,stroke-width:2px,stroke-dasharray: 5 5
    style Sensors fill:none,stroke:#16a34a,stroke-width:2px
    style Local fill:none,stroke:#16a34a,stroke-width:2px
    style Facts fill:none,stroke:#16a34a,stroke-width:3px
    style Query fill:none,stroke:#16a34a,stroke-width:2px
    style Synthesis fill:none,stroke:#6b7280,stroke-width:2px
    style Explain fill:none,stroke:#6b7280,stroke-width:2px
```

**Warum das so wichtig ist**

Weitere Informationen finden Sie unter: http:www.cordis.lu/
|---------|---------------------|----------------------|
| **Kosten** Kosten für API-Kosten für -Befestigte Infrastruktur
| **Zuverlässigkeit** API-Ausfall - System nach unten - Kernfunktionen weiter -|
| **Prüfbarkeit** Mock LLM-Antworten Deterministische Behauptungen
| **Vertrauen** Das Modell sagte so, ", |, Evidenz-Kette

---


## MCP als Grenze, nicht als Integration

Ich behandle MCP als **harte Grenze**:

- **Prozessisolierung**MCP-Server laufen in separaten Prozessen
- **Explizite Eingänge, /-Ausgänge**Kein geteilter wandelbarer Zustand
- **Kein Umgebungskontext**Jeder Anruf wird auf expliziten Eingaben ausgewertet.
- **Gemusterte Verträge**Fehler bei Schemaverletzungen sind nicht Warnungen

Dies steht im Gegensatz zu .:

- In---Prozessagenten mit geteiltem Speicher
- Prompt--®chaining mit versteckten Kontext Akkumulation
- Einsatz von Werkzeugen, bei denen frühere Drehungen das Verhalten beeinflussen

**Warum Grenzen von Bedeutung sind**

1. **Wiedergabe**Reproduzieren Sie jede Sitzung durch Wiederholung von Eingaben
2. **Prüfung**Jedes Signal hat einen rückverfolgbaren Ursprung
3. **Deterministische Prüfung**Die gleichen Eingänge sind dieselben Ausgänge.
4. **Einhaltung**Erklärbare Entscheidungsketten

```mermaid
flowchart LR
    subgraph Process1["Process: Orchestrator"]
        Orch[Orchestrator<br/>Constrainer Logic]
    end

    subgraph Process2["Process: MCP Server 1"]
        MCP1[Image Analysis<br/>Signals]
    end

    subgraph Process3["Process: MCP Server 2"]
        MCP2[Audio Analysis<br/>Signals]
    end

    subgraph Process4["Process: MCP Server 3"]
        MCP3[Video Analysis<br/>Signals]
    end

    Orch <-->|MCP Protocol| MCP1
    Orch <-->|MCP Protocol| MCP2
    Orch <-->|MCP Protocol| MCP3

    style Process1 fill:none,stroke:#2563eb,stroke-width:2px
    style Process2 fill:none,stroke:#16a34a,stroke-width:2px
    style Process3 fill:none,stroke:#16a34a,stroke-width:2px
    style Process4 fill:none,stroke:#16a34a,stroke-width:2px
    style Orch fill:none,stroke:#2563eb,stroke-width:2px
    style MCP1 fill:none,stroke:#16a34a,stroke-width:2px
    style MCP2 fill:none,stroke:#16a34a,stroke-width:2px
    style MCP3 fill:none,stroke:#16a34a,stroke-width:2px
```

---


## Misserfolgsmodi MCP-Beispiele

Echte Ausfälle aus ungezwungener MCP-Nutzung

Fehler-Modus der Ursache
|--------------|-------|------------|
| **Werkzeughalluzination** Beschreibung Leckage in LLM-Resultate
| **Exekution von Over---Eager** Das Modell ruft Werkzeuge an, um " zu überprüfen.
| **Schemadrift** Werkzeug-Verhaltensänderungen,-Schema tut nichts'-Zeugnungen|-Zegnungen Versionierte Schemata,-Zeigprüfungen
| **Silent partielle Ausfälle** Werkzeug liefert partielle Daten zurück, model proceeds - Vertrauensschwellen , restlos geprüft
| **LLM-Übervertrauen** Das Modell behandelt die Werkzeugausgabe als Grundwahrheit.
| **Kapazitätssteigerung** |-Modell "-Tries"-schrittweise leistungsfähigere Werkzeuge |-Kapazitätsgrade +-Policy-Gating-Budgets +-Etats

Der gemeinsame Faden **Diese Ausfälle passieren, weil der LLM als Behörde vertraut wird**.

Die Fixierung **Die LLMs schlagen vor, dass die Constrainer entscheiden, die Fakten bleiben bestehen.**.

---


## Was MCP ist gut bei -(, wenn richtig verwendet -)

MCP ist exzellent für

- **Entdeckung von Fähigkeiten**Laufzeitenzählung verfügbarer Signale
- **Zusammensetzung des Inter---Prozesses**Saubere Grenzen zwischen Bauteilen
- **Interoperabilität von Werkzeugen**Funktioniert mit jedem MCP®--kompatiblen Client
- **Modellische Integration von -**Swap LLMs ohne Änderung der Signalkontrakte

MCP ist **nicht**:

- Ein Handlungsrahmen
- Ein Argumentationssystem
- Eine Sicherheitsschicht
- Eine Vertrauensgrenze

Verwenden Sie MCP für das, was es ist... ein Drahtprotokoll für strukturierte Kommunikation zwischen Komponenten...

---


## Wo MCP aufhört

MCP standardisiert, wie Modelle und Werkzeuge den Kontext austauschen. Es definiert nicht, wer unter welchen Bedingungen handeln darf oder wie Entscheidungen geprüft werden.

Andere Ansätze bestehen, um diese Einschränkungen formalisieren manchmal als Aktionsfähigkeit Protokolle beschrieben.

Dieser Artikel ist ' , über ACP , . , es ist .' , um das Design-Prinzip ,: , **Verkehr und Governance sind getrennte Anliegen**.

MCP sagt Ihnen: *Wie* um ein Tool zu nennen ... . Etwas anderes muss entscheiden *ob* Sie sollten in meinen Systemen, dass die Constrainer ' in Unternehmen Systeme, es könnte eine Politik-Engine sein

---


## Demo MCP vs. Produktion MCP

|-Aspekt - Demo MCP - MCP-Produktion MCP – MCP
|--------|----------|----------------|
| **Beschreibung des Werkzeugs** Natürliche Sprache, detailliertes, minimales und erstes Schema.
| **Wer entscheidet sich, anzurufen** LLM-Orchester-Ausbilder
| **Antwortformat** Freier Text von - Form des Textes Eingegebene Signale mit Konfidenz
| **Validierung** Nicht-|, nicht--, keine Validierung
| **LLM-Abhängigkeit** Erforderliche zusätzliche Anreicherung (optional)
| **Wiedergabe** Nicht deterministisch, vollständig reproduzierbar
| **Prüfpfad** Signal-Provenienz-Kette

---


## Schließung

MCP ermöglicht **Zusammensetzung**.
Determinismus ermöglicht **Vertrauen**.
LLMs aktivieren **Durchlässigkeit**.

Aber nur, wenn

> *Wahrscheinlichkeit schlägt vor, — und Determinismus hält an*

MCP ohne Constrainer ist nur prompte Injektion mit zusätzlichen Schritten.

Mache Synthese zum letzten Schritt Mache die LLM optional Mache jede Tatsache rückführbar

---


## Stichworte

- **MCP-Protokoll (Model Context Protocol)**Wire-Protokoll für Werkzeugerkennung und Anrufung zwischen Prozessen
- **Beschränker**Deterministische Logik, die Vorschläge bewertet und entscheidet, was anhält
- **Signal**Beschriftete Reaktion mit Konfidenzmittel und Beweiszeiger
- **Antragsteller**Jede Komponente, die Fakten ohne Autorität nahelegt
- **Nachweiszeiger**Verweis auf nachprüfbare Quelle

---


## Verwandte Artikel

**Frühere in der Reihe** [Teil: Warum LLMs als Sensoren fehlschlagen](/blog/llms-fail-as-sensors)

- [Reduzierte RAG-:-Karte für probabilistische Systeme](/blog/reduced-rag)
- [BildSummarizer-:-Beschränkte Fuzzy Bildintelligenz](/blog/constrained-fuzzy-image-intelligence)
- [VideoSummarizer-:. Reduzierte RAG für Video](/blog/videosummarizer-scalable-video-intelligence)
- [StyloFlow-:-Signal---Driven Workflows](/blog/styloflow-signal-driven-workflows)