Eigenen MCP-Server in Python bauen (in 10 Minuten)
Einen minimalen MCP-Server mit dem offiziellen Python-SDK und MCPServer bauen, testen und verbinden – plus Designtipps.
SDK auswählen
Es gibt offizielle SDKs für TypeScript, Python, C#, Java, Kotlin, Go und weitere Sprachen. Diese Anleitung nutzt das offizielle Python-SDK 2.x, das Python 3.11 oder neuer voraussetzt. Ältere 1.x-Versionen verwendeten FastMCP aus mcp.server.fastmcp statt MCPServer.
1. Projekt einrichten
uv init demo && cd demo
uv add "mcp[cli]"2. Server schreiben
Ein Tool ist eine normale Funktion mit Typangaben und Docstring; das SDK macht daraus Schema und Beschreibung des Tools. mcp.run() startet einen stdio-Server.
# server.py
from mcp.server import MCPServer
mcp = MCPServer("demo")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
if __name__ == "__main__":
mcp.run()3. Testen
Öffne ihn im MCP Inspector, um deine Tools über eine Weboberfläche aufzurufen:
uv run mcp dev server.py4. Mit einem Client verbinden
Verwende einen absoluten Pfad. Claude Desktop und Cursor nutzen diesen Eintrag; in Claude Code führst du claude mcp add demo -- uv run --with "mcp[cli]" mcp run /absoluter/pfad/server.py aus.
{
"mcpServers": {
"demo": {
"command": "uv",
"args": ["run", "--with", "mcp[cli]", "mcp", "run", "/absolute/path/to/server.py"]
}
}
}Designtipps
- Verwende klare Tool-Namen und -Beschreibungen – das Modell wählt Tools anhand dieser Texte aus.
- Prüfe Eingaben und gib kurze, nützliche Texte zurück.
- Biete keine zerstörerischen Aktionen ohne Bestätigung an.
- Füge deinem GitHub-Repository das Topic
mcp-serverhinzu, dann nimmt Socketlist es automatisch auf.