iToverDose/Software· 23 APRIL 2026 · 06:09

Bau von MCP-Servern in Python: eine Produktionsanleitung für 2026

Das Model Context Protocol (MCP) entwickelte sich in achtzehn Monaten von einem "Nebenthema von Anthropic" zum Branchenstandard. Stand März 2026 verzeichnen MCP-SDKs 97 Millionen monatliche Downloads. Jedes ernsthafte Agenten-Framework — Claude, Cursor, OpenAI Agents SDK, Microsoft Agent —

DEV Community2 min0 Kommentare

Das Model Context Protocol (MCP) entwickelte sich in nur achtzehn Monaten von einem "Nebenthema von Anthropic" zu einem Branchenstandard. Stand März 2026 verzeichnen MCP-SDKs monatlich 97 Millionen Downloads. Jedes ernstzunehmende Agenten-Framework – darunter Claude, Cursor, OpenAI Agents SDK und Microsoft Agent Framework – unterstützt MCP nativ. Für Python-Backend-Entwickler ist MCP derzeit das wichtigste Thema zum Lernen.

Dieser Beitrag erklärt praktisch, wie man einen produktionsreifen MCP-Server mit FastMCP, dem Python-Framework, das die Entwicklung vereinfacht, bereitstellt.

Was ist MCP? MCP ist ein Protokoll, um Tools, Ressourcen und Prompts standardisiert an einen KI-Agenten zu exponieren. Statt dass jedes Agenten-Framework eigene Adapterformate erfindet, schreibt man einmal einen Server, der in jeden MCP-kompatiblen Client integriert werden kann. Man kann es sich wie "USB-C für Agenten" vorstellen.

Ein minimaler Server exponiert: Tools – Funktionen, die der Agent aufrufen kann (z. B. search_customers, get_order_status) Ressourcen – URIs, die der Agent lesen kann (z. B. crm://contacts/123) Prompts – parametrisierte Prompt-Vorlagen

Starter: Ein FastMCP-Server in 40 Zeilen

server.py

from fastmcp import FastMCP
from pydantic import BaseModel
import httpx

mcp = FastMCP("internal-crm")

class Customer(BaseModel):

id: str name: str tier: str mrr: float

@mcp.tool()
async def search_customers(query: str, tier: str | None = None) -> list[Customer]:

"""Suche im CRM nach Kunden anhand von Name oder E-Mail. Optional nach Tier filtern.""" async with httpx.AsyncClient() as client: r = await client.get( " params={"q": query, "tier": tier}, ) return [Customer(**row) for row in r.json()]

@mcp.tool()
async def get_customer_notes(customer_id: str) -> str:

"""Hole die neuesten Notizen des Account-Managers für einen Kunden.""" async with httpx.AsyncClient() as client: r = await client.get(f") return r.text

@mcp.resource("crm://customer/{customer_id}")
async def customer_resource(customer_id: str) -> str:

"""Nur-lesbares Kundenprofil.""" async with httpx.AsyncClient() as client: r = await client.get(f") return r.text

if __name__ == "__main__": mcp.run(transport="streamable-http", host="0.0.0.0", port=8000)

Das ist ein vollständiger, produktionsnaher MCP-Server. Typensichere Eingaben und Ausgaben über Pydantic. Docstrings werden zu Tool-Beschreibungen, die der Agent liest. Ressourcen erhalten URIs, die der Agent in seinen Kontext einbetten kann.

Der Transport-Wechsel: stdio → Streamable HTTP Jedes MCP-Tutorial aus 2024 nutzte stdio-Transport – der Server läuft als Subprozess, der Agent leitet JSON-RPC über stdin/stdout weiter. Das ist für Desktop-Tools wie Claude Desktop in Ordnung. Für die Produktion ist das die falsche Lösung. Streamable HTTP (finalisiert in der Spezifikation 2025) behebt dies: Server laufen als langlebige HTTP-Dienste, nicht als Subprozesse pro Aufruf Skalieren horizontal hinter einem Load Balancer Über Teams und Apps hinweg nutzbar Einmal bereitstellen, über URL entdecken In FastMCP ist der Wechsel eine Zeile: transport="streamable-http".

Authentifizierung: OAuth 2.1 auf einfache Weise Die MCP-Spezifikation 2025 führte OAuth 2.1 als Standard-Authentifizierungsmechanismus ein. Man sollte nichts Eigenes entwickeln. FastMCP enthält OAuth-Middleware, die sich in bestehende Identitätsanbieter (Auth0, Okta, Cognito, Clerk etc.) integriert: from fastmcp.auth import OAuth2Middleware

mcp.add_middleware(OAuth2Middleware( issuer=" audience="mcp-internal-crm", required_scope="crm:read", ))

Der Agent übernimmt den Autorisierungsprozess. Der Server beschränkt sich darauf, die Scopes für jedes Tool durchzusetzen.

Bereitstellung auf AWS ohne unnötige Kosten Zwei Muster haben sich für produktionsreife MCP-Server bewährt:

Muster A – Gering frequentierte interne Tools: Lambda + API Gateway Nutzt mangum oder den ASGI-Adapter von FastMCP, um innerhalb von Lambda zu laufen Cold Starts ~300-500 ms (akzeptabel für menschengesteuerte Agenteninteraktionen) Kosten: nahezu null bei Inaktivität

Muster B – Hochfrequentierte gemeinsame Server: ECS Fargate hinter ALB Ein Dienst pro logischem Server Automatische Skalierung nach CPU/RAM Kombiniert mit ElastiCache für zustandsbehaftete Sitzungskontinuität Kosten: vorhersehbar, ~30 USD/Monat für einen kleinen, immer aktiven Dienst

KI-Zusammenfassung

Learn to build production-grade MCP servers in Python with FastMCP, Streamable HTTP, OAuth 2.1, and AWS deployment. Includes 40-line starter code and cost optimization strategies.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #HSCQFL

0 / 1200 ZEICHEN

Menschen-Check

7 + 8 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.