RAG gegen MCP: Welches ist tatsächlich für Ihre KI-Anwendung notwendig?
RAG gegen MCP: RAG liest Dokumente, während MCP in Echtzeit-Systemen agiert. Beide werden in Code implementiert, ein Finanzassistent gibt es auf drei Arten, und es gibt eine einfache Regel zur Auswahl.
Quellen: RAG vs MCP: A Complete Guide for Developers in 2026
Menschen fragen oft, ob sie RAG oder MCP benötigen, als wären es zwei konkurrierende Optionen auf einer Menüliste. Das ist nicht der Fall, und sobald man beides verstanden hat, wird die Entscheidung fast automatisch. Hier ist die kurze Version.
- RAG versorgt ein Modell mit Wissen, das es während des Trainings nie gesehen hat, indem es relevante Texte abruft und sie in die Anfrage einfügt. Das Modell liest diesen Text.
- MCP ist ein Standardprotokoll, über das ein Modell Tools aufrufen und auf Systemen agieren kann. Hier führt das Modell eine Aktion aus.
- Die klare Einteilung lautet: RAG bezieht sich auf den Inhalt Ihrer Dokumente, während MCP sich auf die Fähigkeiten Ihrer Systeme bezieht.
- Beide konkurrieren nicht. RAG ist eine Technik und MCP ein Protokoll – daher ist die Frage „RAG oder MCP?“ etwas wie die Frage „Caching oder HTTP?“
- Alles, was sich ändert – wie Preise, Lagerbestände oder Kontostände – eignet sich schlecht für RAG. Eine Vektordatenbank gibt das zurück, was indexiert wurde, nicht das, was aktuell zutrifft.
- Eine große Menge an meist statischem Text, wie Dokumentationen, Verträge oder Richtlinien, ist eine Verschwendung, wenn sie ausschließlich über MCP bereitgestellt wird. Das würde API-Aufrufe für Fragen erfordern, die ein gut aufgebauter Index sofort beantworten könnte.
- Die meisten Produktionsysteme im Jahr 2026 kombinieren beides: MCP zur Abrufung frischer Daten und Ausführung von Aktionen sowie RAG, um das Modell mit stabilem Fachwissen zu untermauern.
Nehmen wir eine Frage, die einfach zu sein scheint, aber es nicht ist: Wie hoch ist Apples Kurs-Gewinn-Verhältnis heute? Mit RAG erhält man eine zuversichtliche, gut formulierte, aber falsche Antwort. Mit MCP funktioniert die Antwort hingegen korrekt.
Derselbe Domain, derselbe Benutzer – völlig unterschiedliche Architektur. Im Folgenden werden beide Konzepte von Grund auf erläutert, ein Finanzassistent auf drei Arten entwickelt und schließlich eine Entscheidungsregel vorgestellt, die man ohne lange Überlegung anwenden kann.
Was RAG ist
Der Name steht für Retrieval-Augmented Generation. Ohne Fachjargon sind es drei Schritte: Die für die Frage des Benutzers am relevantesten Textabschnitte werden abgerufen, der Prompt wird durch Einfügen dieser Abschnitte erweitert, und anschließend wird aus diesem entlehnten Kontext eine Antwort generiert.
Stellen Sie sich eine Prüfung vor, in der keine Notizen erlaubt sind, aber ein Forschungsassistent draußen wartet. Eine Frage wird unter der Tür durchgeschoben, der Assistent eilt in die Bibliothek, wählt die drei besten Seiten aus und schob sie erneut unter die Tür – die Antwort wird dann aus diesen Seiten verfasst. Dabei wurde nichts gelernt; die richtigen Seiten kamen einfach zum richtigen Zeitpunkt.
Das ist RAG. Die Gewichte des Modells ändern sich niemals, denn was bearbeitet wird, ist der Prompt und nicht das Modell selbst.
Warum eine Vektordatenbank nötig ist
Der schwierige Teil ist der erste Schritt – das Finden der richtigen Seiten. Eine Schlüsselwortsuche versagt hier oft, weil die Fragen der Menschen selten dieselben Wörter enthalten wie der Quelltext. Jemand fragt nach „Unternehmen, die Geld verlieren“, während im Dokument von „negativem Nettogewinn“ die Rede ist: Keine gemeinsamen Wörter, doch dieselbe Bedeutung.
Embeddings lösen dieses Problem. Ein solches Modell wandelt Text in einen Vektor, also eine Liste von Zahlen, um, wodurch ähnliche Bedeutungen nah beieinander liegen. „Unternehmen, die Geld verlieren“ und „negativer Nettogewinn“ enden trotz fehlender gemeinsamer Vokabeln als Nachbarn. Eine Vektordatenbank speichert diese Vektoren und kann schnell beantworten: Was liegt diesem Vektor am nächsten?
RAG in Code
Unten finden Sie eine minimale Implementierung ohne Framework, sodass alle Komponenten sichtbar sind. Sie enthält einige Finanzbeispiele, embeddet sie, ordnet sie nach kosinusähnlicher Ähnlichkeit zur Frage und leitet die besten Ergebnisse an ein Chat-Modell weiter.
from openai import OpenAI
client = OpenAI()
# Your knowledge base, already chunked.
DOCUMENTS = [
"The P/E ratio divides share price by earnings per share. "
"When earnings are negative, P/E is undefined and usually shown as N/A.",
"EV/EBITDA is often preferred over P/E for capital-intensive companies "
"because it is unaffected by capital structure and depreciation policy.",
"The PEG ratio adjusts P/E by the expected earnings growth rate. "
"A PEG below 1.0 is traditionally read as undervalued.",
]
def embed(text: str) -> list[float]:
"""Turn text into a vector."""
response = client.embeddings.create(
model="text-embedding-3-small",
input=text,
)
return response.data[0].embedding
def cosine_similarity(a: list[float], b: list[float]) -> float:
"""How close are two vectors? 1.0 means identical direction."""
dot = sum(x * y for x, y in zip(a, b))
norm_a = sum(x * x for x in a) ** 0.5
norm_b = sum(y * y for y in b) ** 0.5
return dot / (norm_a * norm_b)
# Index once, reuse many times. In production this lives in a vector DB.
INDEX = [(doc, embed(doc)) for doc in DOCUMENTS]
def retrieve(question: str, k: int = 2) -> list[str]:
"""Step 1: find the most relevant chunks."""
q_vector = embed(question)
scored = [
(cosine_similarity(q_vector, vector), doc)
for doc, vector in INDEX
]
scored.sort(reverse=True)
return [doc for _, doc in scored[:k]]
def answer(question: str) -> str:
"""Steps 2 and 3: augment the prompt, then generate."""
context = "\n\n".join(retrieve(question))
prompt = (
f"Answer using only the context below.\n\n"
f"Context:\n{context}\n\n"
f"Question: {question}"
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
)
return response.choices[0].message.content
print(answer("What do I use when a company has negative earnings?"))
Schauen Sie sich an, was passiert ist. Das Modell wurde nie mit diesen drei Auszügen trainiert, antwortete jedoch richtig, weil der richtige Teiltext in seine Anfrage gelangte.
Schauen Sie sich auch die Beschränkungen an. RAG kann nur das zurückgeben, was indiziert wurde. Wenn sich Apples Kursverhältnis heute Morgen geändert hat und der Index im letzten Monat erstellt wurde, wird RAG die Zahl vom letzten Monat angeben und völlig sicher erscheinen. Genau diese Beschränkung ist der Grund für die Existenz von MCP.
Was MCP ist
MCP, das Model Context Protocol, wurde im November 2024 von Anthropic eingeführt. Berichten zufolge wechselte es im Dezember 2025 zur Agentic AI Foundation, einem Projekt der Linux Foundation, wodurch es nun in Claude, ChatGPT, Gemini, Cursor und VS Code unterstützt wird und kein privates Format eines einzelnen Anbieters mehr ist.
Es handelt sich um ein Standardprotokoll zur Verbindung von KI-Modellen mit Tools. Es ist keine Technik, sondern ein Protokoll, das zur gleichen Familie wie HTTP oder SQL gehört.
Vor USB-C hatte jedes Gerät seinen eigenen Anschluss, wodurch fünfzehn Geräte fünfzehn inkompatible Kabel bedeuteten. AI-Tools sahen vor MCP genauso aus. Das Verbinden von 10 AI-Anwendungen mit 100 Tools konnte bedeuten, dass bis zu 1.000 individuelle Integrationen entwickelt werden mussten, von denen jede speziell angefertigt und eigenständig gewartet werden musste. MCP reduziert das auf eine einzige Form. Ein Tool-Anbieter implementiert das Protokoll einmal, und jeder kompatible Client kann es nutzen, während eine AI-Anwendung die Client-Seite einmal implementiert und so auf alles zugreifen kann.
Was ein MCP-Server bereitstellt
- Tools sind aufrufbare Funktionen. Der Aufruf von etwas wie
get_stock_price("AAPL.US")führt echten Code aus und liefert ein echtes Ergebnis. - Resources sind Daten, die das Modell lesen kann, wie beispielsweise Dokumentation oder Datein Inhalte.
- Prompts sind wiederverwendbare Vorlagen, die mehrere Tools zu einem vollständigen Workflow zusammenfügen können.
MCP in Code
Ein funktionsfähiger Server ist einfach aufgebaut. Der folgende Server umfasst eine Zitatabfrage sowie einen Vergleich von zwei Kursen – das ist alles.
from mcp.server.fastmcp import FastMCP
import httpx
mcp = FastMCP("finance-tools")
@mcp.tool()
def get_current_price(ticker: str) -> dict:
"""Get the latest price for a stock ticker.
The docstring matters more than you'd think. It is what the
model reads to decide whether to call this tool at all.
"""
response = httpx.get(f"https://api.example.com/quote/{ticker}")
return response.json()
@mcp.tool()
def compare_tickers(ticker_a: str, ticker_b: str) -> dict:
"""Compare two tickers on price, market cap and P/E ratio."""
return {
"a": get_current_price(ticker_a),
"b": get_current_price(ticker_b),
}
if __name__ == "__main__":
mcp.run()
Ein Befehl registriert es bei Claude Code:
claude mcp add finance -- python /path/to/server.py
Das Modell kann jetzt Dinge erledigen. Es liest nicht über Preise, sondern holt sie ab.
Ein Detail, das leicht unterschätzt wird: Die Dokumentation ist die Schnittstelle. Ob das Modell überhaupt ein Tool aufruft, hängt davon ab, wie dieses Tool beschrieben ist. Eine vage Beschreibung führt zu einem Tool, das niemand verwendet – das ist der übliche Grund, warum ein ordnungsgemäß installierter MCP-Server scheinbar nichts tut.
Der praktische Unterschied
Im Vergleich unterscheiden sich die beiden in ihrer Natur und ihrer Funktion. RAG ist eine Technik, die aus einem Index liest; MCP ist ein Protokoll, das auf Live-Systeme zugreift. RAG macht ein Modell besser informiert, während MCP es fähig macht. RAG ist pro Abfrage günstig und schnell, da es sich um eine Vektorabfrage handelt, während MCP die Kosten der zugrunde liegenden API verursacht. RAG wird veraltet, sobald der Index es wird, und MCP gibt das zurück, was die Quelle gerade anzeigt.
Die Regel passt in einen Satz. Antwort in einem Dokument? RAG. Antwort in einem System? MCP.
Probieren Sie es mit echten Fragen aus. „Was bedeutet das PEG-Verhältnis?“ befindet sich in einem Dokument, daher RAG. „Wie hoch ist der Kurs von Microsoft?“ befindet sich in einem System, daher MCP. „Eine Bestellung aufgeben“ oder „diesen Bericht senden“ ist eine Aktion, daher MCP unabhängig davon, denn das Abrufen kann nicht auf etwas eingreifen. „Was besagt unsere Rückerstattungspolitik zu bereits geöffneten Artikeln?“ ist eine Ansammlung statischen Textes, daher RAG.
Warum die Leute ständig fragen, ob es sich um dasselbe handelt
Der Verwirrung liegt nur eine Ursache zugrunde. Ein MCP-Server kann Dokumentation als Ressource veröffentlichen, und das ähnelt dem Abrufen. Was sie voneinander unterscheidet, sind Größe und Mechanismus. Ressourcen umfassen eine begrenzte Anzahl von Dokumenten, die das Modell anhand der ID finden kann, während RAG Tausende von Dokumenten umfasst, bei denen eine semantische Sortierung die relevanten drei hervorheben muss.
Beides kann auch kombiniert werden. Innerhalb eines MCP-Servers kann man einen kompletten RAG-Pipeline ausführen und sie dem Modell als search_knowledge_base-Tool präsentieren. Das Modell ruft anschließend ein Tool auf, das der MCP-Teil ist, und dieses Tool übernimmt die Informationsabrufung, was der RAG-Teil darstellt.
Ein Assistent, auf drei Arten erstellt
Absstrakte Vergleiche reichen nur bis zu einem gewissen Punkt, daher sollten Sie sich einen Finanzanalyse-Assistenten ansehen, der auf jede der drei Arten erstellt wurde, um zu erkennen, wo Probleme auftreten. Die Finanzbranche eignet sich gut als Testfall, da derselbe Bereich sowohl Definitionen enthält, die sich nie ändern, als auch Zahlen, die jede Sekunde wechseln. Für Marktdaten eignet sich ein Anbieter wie EODHD zur Demonstration, da er eine herkömmliche REST-API sowie einen offiziellen MCP-Server bietet, was es ermöglicht, die Architekturen ohne Änderung der Datenanbieter miteinander zu vergleichen.
Version A: Nur RAG
Indexieren Sie ein Korpus mit finanziellen Kenntnissen, um anschließend daraus Antworten zu geben. Das Korpus besteht aus einer Liste kurzer Definitionen; in einem echten System gibt es noch einige tausend weitere Einträge.
# Building a knowledge base of financial concepts
CORPUS = [
"Market capitalization equals share price multiplied by shares outstanding.",
"The P/E ratio compares share price to earnings per share.",
"Free cash flow is operating cash flow minus capital expenditures.",
"A dividend yield above 6% often signals either a falling share price "
"or an unsustainable payout ratio.",
# ...plus a few thousand more chunks
]
Nach der Indizierung wird eine konzeptionelle Frage gestellt:
# Index them, then:
answer("Explain what a high dividend yield might indicate")
Der Fall funktioniert sehr gut. Das Konzept ändert sich im Laufe der Zeit nicht, die Antwort befindet sich im Korpus und die Suche findet sie. Nun eine aktuelle Frage:
answer("What is Apple's current dividend yield?")
Das misslingt – und auf die schlimmstmögliche Weise. Das Modell holt einen Abschnitt ab, der erklärt, was die Dividendenrendite bedeutet, erinnert sich daran, während des Trainings einige Zahlen zu Apple aufgenommen zu haben, und liefert etwas wie „Apples Dividendenrendite beträgt etwa 0,5 %.“ Es wirkt zuversichtlich, ist gut formatiert – und möglicherweise bereits monatelang veraltet – doch nichts im Prozesswege weist darauf hin. Das ist der von vielen unterschätzte Fehlermodus von RAG: Es wird kein Fehler ausgelöst, es werden flüssige, veraltete Texte zurückgegeben.
Version B: Nur MCP
Hier ist das Modell stattdessen mit Echtzeitdaten verbunden.
# EODHD publishes two endpoints. v2 uses OAuth, v1 uses an API key.
claude mcp add --transport http eodhd https://mcp.eodhd.com/v2/mcp
Wenn dieselbe Frage erneut gestellt wird, nimmt sie nun einen anderen Weg. Das Modell ruft resolve_ticker("Apple") auf, um AAPL.US zu erhalten, und ruft anschließend ein Tools für fundamentale Daten auf, um die aktuelle Zahl zu ermitteln. Auf diese Zahl kann man sich verlassen, da sie abgerufen und nicht aus dem Gedächtnis entnommen wurde.
Zwei Konzeptionsentscheidungen auf diesem Server sind es wert, unabhängig vom verwendeten Anbieter untersucht zu werden, da sie die Probleme lösen, mit denen jedes Systems zur Aufrufung von Tools konfrontiert ist. Erstens ist die Auflösung von Tickers ein erstklassiges Tool. Benutzer sagen „Apple“, während APIs AAPL.US benötigen, und Benutzer nennen „Deutsche Bank“, während die API DBK.XETRA verlangt. Ein Resolver, der mit Namen, teilweisen Tickers sowie ISINs umgehen kann und Alternativen anbietet, wenn ein Unternehmen an mehreren Börsen handelt, anstatt einfach zu raten, beseitigt einen möglichen Fehlerpunkt. Viele Fehler bei der Aufrufung von Tools in Finanzagenturen treten genau in diesem Schritt auf.
Zweitens ist die Dokumentation als Ressourcen integriert. Der Server liefert angeblich über hundert Seiten eigener API-Dokumentation als MCP-Ressourcen, sodass das Modell ohne Auslösung einer API-Aufruf prüfen kann, welche Parameter ein Endpunkt akzeptiert. Das ist architektonisch interessant: ein kleines RAG-basiertes Muster, das innerhalb eines MCP-Servers existiert, wobei statische Referenzmaterialien als Ressourcen und aktuelle Daten als Tools dienen – jeweils für ihre eigene Aufgabe optimiert.
Version C: beides, wie es tatsächlich geliefert wird
Allein genommen ergibt keine der Versionen ein zufriedenstellendes Produkt. Die RAG-Version kann den heutigen Preis nicht angeben, und die MCP-Version verschwendet einen API-Aufruf damit, ein Kurs-Gewinn-Verhältnis zu erläutern. Ein wirklich gutes Design leitet jede Frage an das richtige Untersystem weiter.
def route(question: str) -> str:
"""Decide which subsystem answers this question."""
# Signals that the question is about live state
live_signals = ["current", "today", "now", "latest", "price", "quote"]
if any(signal in question.lower() for signal in live_signals):
return "mcp" # fetch it
return "rag" # look it up
Der obige Schlüsselwort-Test ist absichtlich grob gestaltet. Produktionsrouter sind in der Regel folgendes Modell: Man gibt ihnen das Abrufwerkzeug sowie die Werkzeuge für Echtzeitdaten, beschreibt jedes davon ausführlich und lässt sie selbst wählen. Die Aufteilung darunter bleibt unverändert.
In der Praxis verläuft es wie folgt:
- „Was misst das Kurs-Gewinn-Verhältnis?“ wird an RAG weitergeleitet: sofortig und nahezu kostenlos.
- „Wie hoch ist Microsofts Kurs-Gewinn-Verhältnis gerade?“ wird an MCP weitergeleitet: in Echtzeit, mit einem einzigen API-Aufruf.
- „Ist Microsofts Kurs-Gewinn-Verhältnis für seinen Sektor hoch?“ benötigt beide: MCP für die Zahl und RAG für den Sektorkontext, der sie interpretiert.
Genau bei dieser dritten Art lohnt sich die Kombination, und sie ähnelt auch den meisten tatsächlichen Nutzerfragen.
Vergleiche, die mit diesem verwechselt werden
Drei weitere Kombinationen tauchen oft zusammen mit der Verwirrung zwischen RAG und MCP auf, und jede lässt sich schnell klären.
MCP im Vergleich zu einer API. Ein MCP-Server ist in der Regel nur eine Umhüllung um eine API und ersetzt diese nicht. Der Unterschied liegt im vorgesehenen Nutzerkreis: Eine REST-API eignet sich für Entwickler, die die Dokumentation studieren und Integrationsskripte schreiben, während ein MCP-Server für Modelle geeignet ist, die laufend Tools entdecken und deren Beschreibungen lesen, um zu entscheiden, welche Funktion verwendet werden soll. Die zugrunde liegende API ist weiterhin erforderlich; MCP standardisiert lediglich die Art und Weise, wie ein Modell sie findet und aufruft. Rufen Sie die API direkt aus deterministischem Anwendungscode auf und verwenden Sie MCP, wenn ein Modell laufend eine Aktion auswählen muss.
MCP gegenüber einem Agenten. Die beiden existieren auf unterschiedlichen Ebenen, was einen Vergleich zwischen ihnen zu einem Kategorienfehler macht. Der Agent ist der Teil, der vernimmt, plant und entscheidet; MCP ist sein Weg in die Außenwelt. Ohne MCP kann ein Agent denken, aber nicht handeln, und ein MCP-Server ohne Agenten hat keine Aufrufer. Claude Code ist hier der Agent, und die MCP-Server fungieren als seine Hände.
RAG gegen Feintuning. Beides verändert die Fähigkeiten eines Modells, wenn auch auf unterschiedliche Weise. Beim Feintuning werden die Gewichte angepasst und Verhaltensweisen gelehrt: Tonfall, Format, Branchenstil, konsistente Struktur. Dies ist kostspielig und langsam im Iterationsprozess, und das Aktualisieren des Wissens erfordert ein Neutraining. RAG lässt die Gewichte unverändert, ändert den Prompt und lehrt Fakten; das Aktualisieren bedeutet lediglich das Neuindexieren eines Dokuments, was nur Sekunden dauert. Im Allgemeinen sollte man Feintuning nutzen, um das Verhalten des Modells zu steuern, und RAG dafür, was es wissen sollte. Wenn sich die Antwort ändert, wenn sich ein Dokument ändert, handelt es sich um RAG. Wenn sie sich ändert, wenn sich die Stilrichtlinien ändern, könnte es sich um Feintuning handeln.
Die richtige Technologie auswählen
Jeder, der einen dieser beiden Ansätze entwickelt, kann aus einem stark umkämpften Markt im Jahr 2026 wählen.
Für den RAG-Bereich benötigen Sie eine Vektordatenbank. Qdrant lässt sich sauber in Docker selbst hosten und bietet einen offiziellen MCP-Server, sodass auf einen Index sowohl von Skripten als auch von Claude Code zugegriffen werden kann. Chroma ist der einfachste Einstieg – es läuft innerhalb weniger Minuten ohne zusätzliche Infrastruktur. Weaviate und Pinecone ergänzen die ernsthafteren Optionen, wobei Pinecone vollständig verwaltet wird, falls Teams lieber nichts selbst betreiben möchten. Für die Orchestrierung bleibt LlamaIndex das am besten auf das Problem der Abruf- und Indexierungslogik ausgerichtete Framework, während LangChain breiter gefächert und aufwändiger ist.
Auf der MCP-Seite leitet Composio viele Anwendungen über einen einzigen Endpunkt und lädt Tools just in Time, wodurch die durch den Anschluss von Dutzenden Servern verursachte Überlastung verringert wird. Arcade.dev betrachtet die Authentifizierung als zentrales Thema und injiziert OAuth-Tokens in die Ausführung der Tools, ohne sie dem Modell zugänglich zu machen – was wichtig wird, sobald mehrere Benutzer beteiligt sind. Mem0 fällt in beide Kategorien: Es handelt sich um einen MCP-Server, dessen Zweck die semantische Speicherung, also das Abrufen von Informationen, ist.
Danach kommt die Überwachbarkeit. Wenn beide Komponenten laufen, hilft es, zu erkennen, welche Abrufanfragen unsinnige Ergebnisse liefern und welche Tool-Anfragen fehlschlagen – und Langfuse, das Open Source ist und selbst gehostet werden kann, deckt diesen Aspekt ab.
Beachten Sie, dass mehrere dieser Anbieter mittlerweile einen MCP-Server für Produkte anbieten, die im Grunde auf dem Abrufen von Informationen basieren. In der Praxis konvergieren die beiden Ansätze eher, anstatt miteinander zu konkurrieren.
Häufig gestellte Fragen
Ist RAG dasselbe wie MCP? Nein. RAG injiziert den abgerufenen Text in einen Prompt, damit das Modell ihn lesen kann, während MCP es dem Modell ermöglicht, Tools aufzurufen und Aktionen auszuführen. Das eine macht das Modell besser informiert, das andere macht es fähiger. Sie arbeiten auf unterschiedlichen Ebenen und treten oft gemeinsam in einer Anwendung auf.
Ersetzt MCP RAG? Nein, und so zu denken führt zu echten Konstruktionsfehlern. MCP standardisiert lediglich die Art und Weise, wie Tools aufgerufen werden. Wenn 50.000 Dokumente eine semantische Suche erfordern, sind weiterhin Embeddings, eine Vektordatenbank sowie ein Abrufpipeline notwendig. MCP ändert lediglich den Zugriffsweg, sodass der Pipeline ein Tool hinter einer Standard-Schnittstelle statt einer maßgeschneiderten Integration wird.
Wann ist RAG die bessere Wahl? Wenn die Antwort in einem großen, relativ stabilen Textkorpus zu finden ist, wie z. B. in Dokumentationen, Verträgen, Richtlinien, Forschungsartikeln oder Supportartikeln. Es kostet pro Abfrage weniger und liefert schnellerere Antworten als ein API-Aufruf. Wechseln Sie auf MCP, sobald die Antwort vom aktuellen Zustand abhängt oder der Benutzer etwas erledigt haben möchte und nicht nur eine Erklärung.
Unterscheidet sich ein MCP-Server von einer API? In der Regel handelt es sich dabei um eine Schicht über einer API. Die API ist die Funktion selbst, während MCP die Standardmethode ist, damit ein Modell sie entdecken und aufrufen kann. Entwickler lesen während der Entwicklung die API-Dokumentationen, während Modelle während des Betriebs die MCP-Toolbeschreibungen lesen.
Braucht MCP eine Vektordatenbank? Nein. MCP verfügt über keinen eigenen Abrufmechanismus. Eine Vektordatenbank wird nur dann eingesetzt, wenn ein von Ihnen bereitgestelltes Tool semantische Suche durchführt; in diesem Fall steht sie hinter dem Tool und nicht daneben.
Kann ein MCP-Server RAG intern ausführen? Ja, und das ist ein gängiges Produktionsmuster. Erstellen Sie einen normalen Abrufpipeline und stellen Sie ihn als ein Tool zur Verfügung, z. B. search_internal_docs. Das Modell ruft ein einziges Tool auf, während die Embedding-Generierung sowie die Vektorsuche im Hintergrund ablaufen.
Was ist kostengünstiger? Nach der Indizierung ist RAG in der Regel pro Abfrage günstiger: ein kurzer Embedding-Aufruf plus eine Vektorabfrage. MCP kostet so viel wie die dahinterliegende API – was je nach Anwendung von günstig für Aktienkurse bis teuer für Browser-Sessions oder Dokumentverarbeitung reicht. Der kostspielige Fehler besteht darin, Fragen an MCP zu senden, die mit einem statischen Index bereits gelöst worden wären.
Wie steht MCP in Beziehung zu A2A? Sie lösen unterschiedliche Probleme. MCP verbindet ein Modell mit Tools, während A2A (Agent-to-Agent) es Agenten ermöglicht, miteinander zu kommunizieren. Ein einzelner Agent kann über MCP auf eine Datenbank zugreifen und Aufgaben über A2A an einen spezialisierten Agenten weiterleiten, sodass sie sich ergänzen statt miteinander zu konkurrieren.
Wie kann man schnell die richtige Wahl treffen? Stellen Sie sich vor, die Abfrage wird in einer Stunde erneut ausgeführt. Wenn sich die Antwort ändert, handelt es sich um einen dynamischen Zustand, und es wird MCP benötigt. Falls nicht, handelt es sich um stabile Informationen, wofür RAG erforderlich ist. Danach sollte geprüft werden, ob der Benutzer eine Aktion wünscht – denn in diesem Fall ist MCP auf jeden Fall notwendig, da RAG nicht handeln kann.
Warum die Verwirrung anhält
Der Vergleich wird weiterhin diskutiert, weil beide Technologien ungefähr zur gleichen Zeit populär wurden und beide mit dem Satz „gibt Ihrer KI Zugang zu Ihren Daten“ beschrieben werden. Dieser Satz hat zu viel Gewicht. Das Lesen dessen, was geschrieben wurde, ist ein anderes Problem als das Handeln innerhalb Ihrer Systeme. Wenn diese Unterscheidung richtig getroffen wird, entsteht die Architektur größtenteils von selbst.