This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
MCP ist ein Transport, nicht eine Architektur
Tuesday, 20 January 2026
Dies ist ein Teil von 2's als Komponenten. Teil: Warum LLMs als Sensoren fehlschlagen 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 VibesUnd warum die meisten MCP-Beispiele dieselben Probleme neu erstellen, wie wir es mit ungezwungenem Werkzeug gesehen haben.
Was eigentlich MCP ist und was ' ist
Das MCP-Protokoll ) ist ein DrahtprotokollEs 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
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.
Wenn MCP Transport ist, dann lebt die Architektur über ihm.
Das Kernprinzip: Propose vs Decide
Dies ist die Grundregel von Reduzierte RAG und Beschränkte Fuzziness:
- Probabilistische Komponenten vorschlagen
- Deterministische Systeme entscheiden
In meinen Systemen
- LLMs sind niemals Behörden
- Werkzeuge sind niemals autonom
- Jede MCP-Antwort ist ein VorschlagNicht eine Tatsache
"-Deterministisch-"-deterministisch bedeutet hier: Regel: ,, reproduzierbar und auditierbar.
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.
- Werkzeugbeschreibungen werden zu AufforderungenDie LLM zieht die Absicht aus der Formulierung heraus, nicht aus der Schemasemantik
- Werkzeugauswahl DriftsDas Modell optimiert die Plausibilität des Modells, nicht aber die Korrektheit, und pflückt Werkzeuge basierend auf Beschreibungsgleichheit.
- Berechtigungsaufforderung ist nicht sicherEin modaler Dialog verhindert, dass das falsche Werkzeug ausgewählt wird
- Keine WiederspielbarkeitSie 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äsentationsschichtNicht das Substrat
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 SchemaEin- und Ausgänge, die nicht frei sind
- VertrauenWie sicher ist dieses Ergebnis?
- HerkunftWo ist dies aus der ?? ?( ?Frame ID ? , ?Binding Box ? , ?Wellenform Region ?
- NachweiseWas 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-RegelFakten brauchen Provenienz
Der Constrainer der Teil, den jeder überspringt
Die meisten MCP-Tutorials zeigen
- Werkzeuge definieren
- Verbindung zu LLM herstellen
- 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
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
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:
- ProzessisolierungMCP-Server laufen in separaten Prozessen
- Explizite Eingänge, /-AusgängeKein geteilter wandelbarer Zustand
- Kein UmgebungskontextJeder Anruf wird auf expliziten Eingaben ausgewertet.
- Gemusterte VerträgeFehler 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
- WiedergabeReproduzieren Sie jede Sitzung durch Wiederholung von Eingaben
- PrüfungJedes Signal hat einen rückverfolgbaren Ursprung
- Deterministische PrüfungDie gleichen Eingänge sind dieselben Ausgänge.
- EinhaltungErklärbare Entscheidungsketten
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ähigkeitenLaufzeitenzählung verfügbarer Signale
- Zusammensetzung des Inter---ProzessesSaubere Grenzen zwischen Bauteilen
- Interoperabilität von WerkzeugenFunktioniert 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änkerDeterministische Logik, die Vorschläge bewertet und entscheidet, was anhält
- SignalBeschriftete Reaktion mit Konfidenzmittel und Beweiszeiger
- AntragstellerJede Komponente, die Fakten ohne Autorität nahelegt
- NachweiszeigerVerweis auf nachprüfbare Quelle
Verwandte Artikel
Frühere in der Reihe Teil: Warum LLMs als Sensoren fehlschlagen