MCP Servers: The Model Context Protocol in Practice
Was ist das Model Context Protocol?
Das Model Context Protocol (MCP) ist ein offener Standard, der definiert, wie KI-Modelle mit externen Tools und Datenquellen kommunizieren. Statt dass jedes LLM seine eigene Tool-Integration implementiert, bietet MCP eine einheitliche Schnittstelle.
Das Problem: LLMs sind in sich geschlossene Systeme. Sie können Text generieren, aber nicht auf Ihre Datenbank zugreifen, keine E-Mails senden oder Ihre internen APIs aufrufen – zumindest nicht ohne Hilfe.
Die Lösung: Ein MCP-Server stellt dem LLM definierte "Tools" zur Verfügung. Das Modell entscheidet eigenständig, wann es welches Tool aufruft.
Architektur eines MCP-Servers
Ein MCP-Server besteht aus drei Teilen:
Ein konkretes Beispiel
In einem Gesundheitsplattform-Projekt habe ich einen MCP-Server gebaut, der dem KI-Chatbot Zugriff auf die Wissensdatenbank gibt:
``python
from mcp.server import Server
from mcp.types import Tool, TextContent
server = Server("health-knowledge")
@server.tool()
async def search_knowledge(
query: str,
category: str | None = None,
) -> list[TextContent]:
"""Durchsucht die Wissensdatenbank nach relevanten Inhalten."""
results = await vector_store.similarity_search(
query=query,
filter={"category": category} if category else None,
k=5,
)
return [
TextContent(
type="text",
text=f"{r.metadata['title']}\n{r.page_content}"
)
for r in results
]
@server.tool()
async def get_article_details(article_id: str) -> list[TextContent]:
"""Holt die vollständigen Details eines Wissensartikels."""
article = await db.get_article(article_id)
return [TextContent(type="text", text=article.to_markdown())]
``
MCP vs. klassisches Function Calling
| Aspekt | Function Calling | MCP |
|--------|-----------------|-----|
| Standard | Provider-spezifisch (OpenAI, Anthropic) | Offener Standard |
| Transport | HTTP/REST | stdio, HTTP/SSE |
| Discovery | Manuell definiert | Automatische Tool-Discovery |
| Wiederverwendung | Pro Integration | Ein Server, viele Clients |
Der größte Vorteil von MCP: Ein MCP-Server kann von verschiedenen KI-Clients genutzt werden – ob Claude, ChatGPT oder ein eigener LangChain-Agent. Man implementiert die Integration einmal und kann sie überall nutzen.
Lessons Learned
1. Tool-Beschreibungen sind entscheidend
Das LLM entscheidet anhand der Tool-Beschreibung, ob und wann es ein Tool aufruft. Klare, präzise Beschreibungen mit Beispielen verbessern die Trefferquote drastisch.
2. Error Handling nicht vergessen
Was passiert, wenn die Datenbank nicht erreichbar ist? Oder die Suche keine Ergebnisse liefert? Der MCP-Server muss sinnvolle Fehlermeldungen zurückgeben, die das LLM interpretieren kann.
3. Logging und Observability
In Produktionsumgebungen ist es essenziell zu wissen, welche Tools wie oft aufgerufen werden und wie lange die Antwortzeiten sind. Wir loggen jeden Tool-Call mit Metadaten.
Wann lohnt sich ein MCP-Server?
Fazit
MCP ist noch ein junger Standard, aber er löst ein reales Problem: die standardisierte Kommunikation zwischen KI-Modellen und externen Systemen. Die Implementierung eines MCP-Servers ist mit Python und dem offiziellen SDK in wenigen Tagen machbar.
Sie möchten KI in Ihre Produkte integrieren? Ich helfe Ihnen beim Entwurf und der Implementierung von MCP-Servern und RAG-Pipelines.