- Veröffentlicht am
AI-Agenten mit DeepSeek und Model Context Protocol (MCP) erstellen: Eine praktische Anleitung mit OpenAIs Agentic SDK

In diesem Beitrag untersuchen wir, wie DeepSeek AI mit dem OpenAI Agentic SDK über das Model Context Protocol (MCP) integriert werden kann, um eine leistungsstarke und kosteneffiziente Alternative zu herkömmlichen LLM-Setups zu demonstrieren. Durch die Kombination von DeepSeek mit aufstrebenden Agentenstandards und öffentlichen MCP-Servern können Sie autonome Agenten mit geringeren Kosten und größerer Flexibilität bereitstellen.
Wir behandeln:
- Was das Model Context Protocol (MCP) ist und warum es für die Interoperabilität von Agenten wichtig ist
- Wie Sie OpenAIs Agentic SDK mit DeepSeek anstelle von OpenAI-Modellen verbinden
- Wie Sie das Setup konfigurieren, um mit Live-MCP-Servern zu kommunizieren
- Ein vollständiges Python-Skript, das Sie über die Befehlszeile ausführen können, um diese Integration zu demonstrieren
Diese Anleitung verdeutlicht das aufstrebende Potenzial von AI-Agenten, das Model Context Protocol (MCP) als Grundlagenschicht und DeepSeek als kostengünstige, aber leistungsfähige LLM-Option für agentische Workflows.
Was ist das Model Context Protocol (MCP)?
Das Model Context Protocol (MCP) ist ein offenes Protokoll für die Kommunikation zwischen Agenten, das autonomen Agenten und Tools ermöglicht, strukturierte Nachrichten in Echtzeit auszutauschen. Es entkoppelt Agenten von modellspezifischen APIs und schafft ein interoperables Ökosystem, in dem Agenten, Tools und Orchestratoren eine gemeinsame Sprache sprechen. Weitere Informationen zu MCP finden Sie in diesem Beitrag in meinem Blog.
Das Model Context Protocol (MCP) unterstützt Streaming-Nachrichten, mehrstufige Interaktionen und standardisierte Tool-Nutzung. Mit zunehmender Akzeptanz wird MCP zu einer Grundlagenschicht für agenten-native Infrastruktur – ähnlich wie HTTP für das Web.
Um tiefer in die Funktionsweise des Protokolls einzutauchen, besuchen Sie die MCP-Dokumentationsseite.
Warum DeepSeek mit dem Agentic SDK verwenden?
Das OpenAI Agentic SDK bietet ein leistungsstarkes Framework für die Erstellung von Tool-verwendenden Agenten. Obwohl es für OpenAI-Modelle optimiert ist, ist das SDK flexibel genug, um andere LLM-Anbieter wie DeepSeek über benutzerdefinierte Clients zu integrieren.
Warum das wichtig ist:
- Kosten: Die Preise von DeepSeek sind deutlich niedriger als die von GPT-4, was umfangreichere Experimente ermöglicht.
- Leistung: DeepSeek-Modelle sind in den Bereichen Code, logisches Denken und mehrstufige Dialoge wettbewerbsfähig.
- Flexibilität: Der Wechsel zwischen Anbietern ermöglicht eine Optimierung für Budget und Anwendungsfall.
In diesem Setup überschreiben wir den standardmäßigen OpenAI-Client und leiten Anfragen über die OpenAI-kompatible API an DeepSeek weiter. Deepseek-chat, das LLM-Modell von DeepSeek AI, ist für konversationelle KI-Anwendungen konzipiert und bietet starke Leistung in mehrstufigen Dialogen und Codegenerierung, was es für agentische Workflows geeignet macht.
Einrichtung der Integration
Die in diesem Setup verwendeten Model Context Protocol (MCP)-Server sind:
- Filesystem MCP Server: Ein Node.js-Server, der das Model Context Protocol (MCP) für Dateisystemoperationen implementiert.
- Git MCP Server: Ein Model Context Protocol-Server für die Interaktion mit Git-Repositories und Automatisierung. Dieser Server bietet Tools zum Lesen, Durchsuchen und Manipulieren von Git-Repositories über Large Language Models.
Um mitzumachen, benötigen Sie:
- Einen DeepSeek-API-Schlüssel – hier erhalten
- Python 3.8+
- Das
openai-agentsSDK:
python -m venv env
source env/bin/activate
pip install openai-agents
- Das folgende Skript, gespeichert als
agent_mcp_deepseek.py
Sie benötigen außerdem:
uvxinstalliert- Node.js und
npxinstalliert
Python-Skript: Agent mit Model Context Protocol (MCP) + DeepSeek
Um das Skript auszuführen, verwenden Sie den folgenden Befehl:
python agent_mcp_deepseek.py --repo_path /pfad/zu/ihrem/repository
Das folgende Skript verbindet sich mit beiden Git- und Filesystem-MCP-Servern unter Verwendung von MCPServerStdio und führt dann eine interaktive Agentensitzung mit DeepSeek durch. Der Benutzer kann Fragen zum Dateisystem oder einem Git-Repository stellen, und der Agent nutzt den Kontext dieser Server, um zu antworten.
Wichtige Funktionen:
- Duale Model Context Protocol (MCP)-Server-Integration: Git-Kontext über
uvx, Dateisystemkontext übernpx - Anpassbare Basis-URL und Modellname für DeepSeek über Umgebungsvariablen
- Interaktive CLI-Schleife: Stellen Sie Fragen wie "Welche Dateien wurden im letzten Commit geändert?" oder "Liste die größte Datei im Ordner auf"

Beispiel der Skriptausgabe im Terminal
Unten finden Sie den vollständigen Skriptcode, der die oben beschriebene Integration implementiert.
#!/usr/bin/env python3
"""
This script runs a Model Context Protocol (MCP) client that interacts with MCP servers
to answer questions about a specified git repository and its filesystem.
It utilizes an AI model (via OpenAI API or compatible services like DeepSeek)
to generate responses based on the context provided by the MCP servers.
Usage:
python agent_mcp_deepseek.py --repo_path <path_to_your_git_repo>
Prerequisites:
- Python 3.7+
- Required Python packages (install via pip, e.g., openai, agents)
- `uvx` tool installed (`pip install uvx`)
- `npx` tool installed (comes with Node.js/npm)
- Environment variable `DEEPSEEK_API_KEY` set with your API key.
"""
import os
import asyncio
import shutil
import argparse
import logging
from typing import List
from openai import AsyncOpenAI
from agents import Agent, Runner, set_tracing_disabled, OpenAIChatCompletionsModel
from agents.mcp import MCPServer, MCPServerStdio
# --- Configuration ---
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# AI Model Configuration (DeepSeek API or compatible)
BASE_URL = os.getenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com/v1")
API_KEY = os.getenv("DEEPSEEK_API_KEY")
MODEL_NAME = os.getenv("DEEPSEEK_MODEL_NAME", "deepseek-chat")
# ANSI escape codes for colored console output
DARK_BLUE = "\033[34m"
RESET = "\033[0m"
# --- Pre-run Checks ---
# Validate essential configuration
if not API_KEY:
raise ValueError(
"API key is missing. Please set the DEEPSEEK_API_KEY environment variable."
)
if not BASE_URL:
logging.warning("DEEPSEEK_BASE_URL not set, using default: %s", BASE_URL)
if not MODEL_NAME:
logging.warning("DEEPSEEK_MODEL_NAME not set, using default: %s", MODEL_NAME)
# Check for required external tools
if not shutil.which("uvx"):
raise RuntimeError("uvx command not found. Please install it, e.g., `pip install uvx`.")
if not shutil.which("npx"):
raise RuntimeError("npx command not found. Please ensure Node.js and npm/npx are installed and in your system's PATH.")
# --- Core Logic ---
async def run_agent_query(
mcp_servers: List[MCPServer],
directory_path: str,
user_query: str
) -> None:
"""Runs the AI agent to answer a specific query about the repository/filesystem.
Args:
mcp_servers: A list of active MCP server instances.
directory_path: The path to the target git repository and filesystem root.
user_query: The question asked by the user.
"""
logging.info(f"Processing query for directory: {directory_path}")
# Initialize the AI client
client = AsyncOpenAI(base_url=BASE_URL, api_key=API_KEY)
# Disable agent tracing for cleaner output in this interactive tool
set_tracing_disabled(disabled=True)
# Create the AI agent instance
agent = Agent(
name="Assistant",
instructions=(
f"You answer questions about the git repository and filesystem located at "
f"'{directory_path}'. Use this path for context when interacting with tools."
),
mcp_servers=mcp_servers,
model=OpenAIChatCompletionsModel(model=MODEL_NAME, openai_client=client),
)
# Run the agent with the user's query
print("\n" + "-" * 40)
print(f"{DARK_BLUE}Question: {user_query}{RESET}")
print("Assistant thinking...")
try:
result = await Runner.run(starting_agent=agent, input=user_query)
print(f"{DARK_BLUE}Answer:\n{result.final_output}{RESET}")
except Exception as e:
logging.error(f"Error during agent execution: {e}", exc_info=True)
print(f"Sorry, an error occurred while processing your request: {e}")
finally:
print("-" * 40 + "\n")
async def main() -> None:
"""Sets up MCP servers and handles the interactive user query loop.
Parses command-line arguments for the repository path, starts the Git and
Filesystem MCP servers, and then enters a loop to accept user questions,
running the agent for each query until the user quits.
"""
parser = argparse.ArgumentParser(
description="Run an AI assistant powered by Model Context Protocol (MCP) servers to query a git repository."
)
parser.add_argument(
"--repo_path",
type=str,
required=True,
help="Path to the target git repository."
)
args = parser.parse_args()
directory_path = os.path.abspath(args.repo_path) # Use absolute path
logging.info(f"Target repository path: {directory_path}")
if not os.path.isdir(directory_path):
raise FileNotFoundError(f"The specified repository path does not exist or is not a directory: {directory_path}")
# Start MCP servers concurrently
try:
async with MCPServerStdio(
name="Git Server (via uvx)",
cache_tools_list=True, # Example: Cache tool list for performance
params={"command": "uvx", "args": ["mcp-server-git"]},
# Note: mcp-server-git typically doesn't need a path argument,
# it operates on the repo where it's invoked or uses tool parameters.
) as git_server, MCPServerStdio(
name="Filesystem Server (via npx)",
params={
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", directory_path],
},
) as fs_server:
logging.info("Model Context Protocol (MCP) servers (Git, Filesystem) started successfully.")
servers = [git_server, fs_server]
# Interactive query loop
while True:
try:
message = input("Enter your question (or type '/quit' to exit): ")
except EOFError:
print("\nExiting.") # Handle Ctrl+D
break
if message.strip().lower() == "/quit":
logging.info("'/quit' command received. Exiting.")
break
if not message.strip():
continue # Ignore empty input
logging.info(f"User question: {message}")
await run_agent_query(servers, directory_path, message)
except Exception as e:
logging.critical(f"Failed to start or run Model Context Protocol (MCP) servers: {e}", exc_info=True)
print(f"Critical error: {e}. Exiting.")
finally:
logging.info("Model Context Protocol (MCP) toolkit finished.")
if __name__ == "__main__":
logging.info("Starting Model Context Protocol (MCP) toolkit...")
try:
asyncio.run(main())
except KeyboardInterrupt:
print("\nInterrupted by user. Exiting.")
logging.info("Process interrupted by user (KeyboardInterrupt).")
except (ValueError, RuntimeError, FileNotFoundError) as e:
logging.error(f"Initialization failed: {e}")
print(f"Error: {e}")
# Exit with error code if setup fails
exit(1)
Wichtige Erkenntnisse
- Das Model Context Protocol (MCP) entkoppelt Agenten von Modellen und ermöglicht flexible, Echtzeit-Tool-Kommunikation über heterogene Systeme hinweg.
- Das Agentic SDK ist nicht auf OpenAI beschränkt – mit kleinen Änderungen können Sie es mit DeepSeek oder jedem OpenAI-kompatiblen Modell betreiben.
- Dieses Setup reduziert die Kosten, während die Funktionalität der Agenten erhalten bleibt.
- Mit Tools wie
uvxundnpxkönnen Sie ein vollständiges Agenten-Toolkit mit öffentlichen Model Context Protocol (MCP)-Tools und einem offenen Protokollstack erstellen.
Dieses Skript demonstriert das frühe Potenzial der Kombination von standardisierter Kommunikation (Model Context Protocol (MCP)) mit erschwinglicher Intelligenz (DeepSeek), um praktische, leistungsstarke AI-Agenten zu erstellen.
- Mit der Weiterentwicklung des Model Context Protocol (MCP)-Ökosystems wird eine wachsende Anzahl von protokollkonformen Servern erwartet – was Agenten den Zugriff auf Datenbanken, APIs, Cloud-Ressourcen und Unternehmenssysteme ermöglicht.
- Diese offene und komponierbare Infrastruktur ermöglicht modellunabhängige Workflows und tiefgreifendere Automatisierungsmöglichkeiten.
- Genau wie HTTP das moderne Web unterstützt, könnte Model Context Protocol (MCP) die Kernschicht für das aufstrebende agenten-native Internet sein.
Hat Ihnen dieser Beitrag gefallen? Fanden Sie ihn hilfreich? Hinterlassen Sie gerne einen Kommentar unten, um Ihre Gedanken mitzuteilen oder Fragen zu stellen. Ein GitHub-Konto ist erforderlich, um an der Diskussion teilzunehmen.
Weiterlesen
Ähnliche Beiträge
Jan 19, 2025
0KommentareAI-Workflows in E2B-Sandboxes starten: Ein Leitfaden für Anfänger
Ein praktischer Leitfaden zur Einrichtung von E2B-Sandboxes, Integration von DeepSeek AI und Ausführung von Python-basierten AI-Workflows für Datenverarbeitung und Visualisierung.
May 4, 2025
0KommentareUmfassendes Tutorial: FastAPI-APIs mit FastAPI-MCP in intelligente Werkzeuge verwandeln
Entdecken Sie, wie FastAPI-MCP nahtlos die Lücke zwischen Ihren FastAPI-APIs und KI-Agenten schließt. Dieses umfassende Tutorial behandelt Einrichtung, Sicherheit, Bereitstellung und reale Anwendungsfälle und befähigt Sie, mühelos intelligente Anwendungen zu erstellen.
Apr 21, 2025
0KommentareBeherrschung des OpenAI Agents Python SDK: Intelligente KI-Workflows mit Tools, Schutzmechanismen & Multi-Agenten-Koordination erstellen
Ein ausführliches, schrittweises Tutorial zum OpenAI Agents Python SDK, das Installation, Tool-Integration, Kontextmanagement, Schutzmechanismen, Multi-Agenten-Orchestrierung und Tracing abdeckt, um robuste KI-Agenten-Anwendungen zu erstellen.