Skip to main content
Glama

MCP + LangChain Demo

Ein anfängerfreundliches Projekt, das zeigt, wie man MCP (Model Context Protocol) Server erstellt und mit einem LLM-Agent unter Verwendung von LangChain und LangGraph verbindet.


Was ist MCP?

MCP (Model Context Protocol) ist ein offenes Protokoll, mit dem Sie LLMs auf standardisierte Weise benutzerdefinierte Tools (Funktionen) zur Verfügung stellen können. Stellen Sie es sich als ein universelles Plugin-System für KI-Modelle vor.

Schlüsselkonzepte:

Begriff

Definition

MCP Server

Ein Prozess, der Tools (Funktionen) über einen Transport (stdio oder HTTP) bereitstellt. Das LLM kann diese Tools aufrufen.

MCP Client

Ein Prozess, der eine Verbindung zu einem oder mehreren MCP-Servern herstellt, deren Tools entdeckt und an ein LLM weiterleitet.

Tool

Eine Python-Funktion, die mit @mcp.tool() dekoriert ist und die das LLM aufrufen kann.

Transport

Die Kommunikationsmethode zwischen Client und Server. stdio = selbe Maschine via stdin/stdout. streamable-http = über HTTP.

FastMCP

Eine High-Level-Python-Klasse aus der Bibliothek mcp, die das Erstellen von MCP-Servern vereinfacht.


Related MCP server: Model Context Protocol Multi-Agent Server

Projektstruktur

MCPLEARNING/
├── mathserver.py      # MCP Server 1 - Math tools (stdio transport)
├── weather.py         # MCP Server 2 - Weather tool (HTTP transport)
├── client.py          # LangChain agent that connects to both servers
├── .env               # API keys (NOT pushed to GitHub)
├── .gitignore
├── requirements.txt
└── pyproject.toml

Wie es funktioniert (Schritt für Schritt)

Schritt 1: MCP Server — mathserver.py

Diese Datei erstellt einen MCP-Server namens "Math", der zwei Tools bereitstellt:

  • add(a, b) — Gibt die Summe zweier Ganzzahlen zurück.

  • multiply(a, b) — Gibt das Produkt zweier Ganzzahlen zurück.

Er läuft auf dem stdio-Transport; das bedeutet, der Client startet ihn als Unterprozess und kommuniziert über stdin/stdout. Kein Port erforderlich.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Math")

@mcp.tool()
def add(a: int, b: int) -> int:
    """Addition of two numbers"""
    return a + b

@mcp.tool()
def multiply(a: int, b: int) -> int:
    """Multiplication of two numbers"""
    return a * b

if __name__ == "__main__":
    mcp.run(transport="stdio")

Schritt 2: MCP Server — weather.py

Diese Datei erstellt einen MCP-Server namens "Weather", der ein Tool bereitstellt:

  • get_weather(location) — Gibt Wetterinformationen für einen bestimmten Ort zurück.

Er läuft auf dem streamable-http-Transport; das bedeutet, er startet einen Webserver unter http://127.0.0.1:8000/mcp. Der Client verbindet sich über HTTP mit ihm.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Weather")

@mcp.tool()
async def get_weather(location: str) -> str:
    """Get the weather"""
    return "It's always raining in California"

if __name__ == "__main__":
    mcp.run(transport="streamable-http")

Schritt 3: Client-Agent — client.py

Dies ist das Gehirn des Projekts. Es:

  1. Stellt eine Verbindung zu beiden MCP-Servern her, unter Verwendung von MultiServerMCPClient.

  2. Entdeckt alle Tools von beiden Servern (add, multiply, get_weather).

  3. Erstellt ein Groq LLM (gehostetes Open-Source-Modell) und bindet die Tools daran.

  4. Erstellt einen LangGraph-Agenten — einen Zustandsautomaten, in dem:

    • Das LLM entscheidet, ob es ein Tool aufruft oder direkt antwortet.

    • Wenn ein Tool aufgerufen wird, wird das Ergebnis zur endgültigen Antwort an das LLM zurückgegeben.

  5. Testet zwei Abfragen:

    • "Was ist 3 + 5?" → Verwendet das add-Tool.

    • "Wie ist das Wetter in Kalifornien?" → Verwendet das get_weather-Tool.


Voraussetzungen

  • Python 3.13+

  • uv Paketmanager (empfohlen) oder pip

  • Ein Groq-API-Schlüssel — Erhalten Sie einen kostenlos unter console.groq.com


Einrichtung

1. Repository klonen

git clone https://github.com/<YOUR_USERNAME>/MCPLEARNING.git
cd MCPLEARNING

2. Virtuelle Umgebung erstellen und aktivieren

# Using uv (recommended)
uv venv
uv pip install -r requirements.txt

# Or using pip
python -m venv .venv
.venv\Scripts\activate        # Windows
source .venv/bin/activate     # Mac/Linux
pip install -r requirements.txt

3. API-Schlüssel einrichten

Erstellen Sie eine .env-Datei im Projektstammverzeichnis:

GROQ_API_KEY=your_groq_api_key_here

WICHTIG: Committen Sie niemals Ihre .env-Datei. Sie wird über .gitignore ausgeschlossen.


Projekt ausführen

Sie benötigen zwei geöffnete Terminals:

Terminal 1 — Weather MCP Server starten

python weather.py

Sie sollten Folgendes sehen:

INFO: Uvicorn running on http://127.0.0.1:8000

Hinweis: Nur weather.py muss manuell gestartet werden. Die mathserver.py wird automatisch vom Client gestartet (stdio-Transport).

Terminal 2 — Client ausführen

python client.py

Erwartete Ausgabe

Available MCP tools:
- add
- multiply
- get_weather

==============================
Testing Math MCP
==============================

Math Response: 3 + 5 = 8.

==============================
Testing Weather MCP
==============================

Weather Response: It's always raining in California.

So erstellen Sie Ihren eigenen MCP Server

  1. Installieren Sie die MCP-Bibliothek:

pip install mcp
  1. Erstellen Sie eine neue Python-Datei (z.B. myserver.py):

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("MyServer")

@mcp.tool()
def my_tool(param: str) -> str:
    """Description of what this tool does."""
    return f"Result: {param}"

if __name__ == "__main__":
    mcp.run(transport="stdio")        # For stdio transport
    # mcp.run(transport="streamable-http")  # For HTTP transport
  1. Verbinden Sie sie in Ihrem Client, indem Sie sie zur Konfiguration von MultiServerMCPClient hinzufügen:

client = MultiServerMCPClient({
    "myserver": {
        "command": "python",
        "args": ["myserver.py"],
        "transport": "stdio",
    },
})

Transportvergleich

Transport

Funktionsweise

Wann zu verwenden

stdio

Client startet den Server als Unterprozess. Kommunikation via stdin/stdout.

Lokale Tools, einfache Einrichtung, kein Netzwerk nötig.

streamable-http

Server läuft als Webserver. Client verbindet sich via HTTP.

Entfernte Tools, mehrere Clients, geräteübergreifend.


Verwendete Schlüsselbibliotheken

Bibliothek

Zweck

mcp

Erstellen von MCP-Servern mit FastMCP.

langchain-mcp-adapters

Brücke zwischen MCP-Servern und LangChain-Tools.

langchain-groq

LangChain-Integration für Groq-gehostete LLMs.

langgraph

Erstellen von Agent-Workflows als Graph (Agent ↔ Tools-Schleife).

python-dotenv

Laden von API-Schlüsseln aus der .env-Datei.


Wichtige Dinge, die zu beachten sind

  1. Der Weather-Server muss vor dem Client gestartet werden — Da er den HTTP-Transport verwendet, muss der Serverprozess zuerst gestartet werden. Der Mathe-Server (stdio) wird automatisch vom Client gestartet.

  2. Groq-API-Schlüssel ist erforderlich — Ohne ihn schlagen die LLM-Aufrufe fehl. Holen Sie sich einen kostenlosen Schlüssel unter console.groq.com.

  3. Committen Sie niemals .env — Fügen Sie .env immer zu .gitignore hinzu, bevor Sie Code pushen.

  4. Portkonflikte — Der Weather-Server läuft standardmäßig auf Port 8000. Wenn ein anderer Prozess diesen Port verwendet, kann der Server nicht gestartet werden.

  5. Windows-Kodierungsproblem — Unter Windows unterstützt die Konsole möglicherweise keine UTF-8-Zeichen, die vom LLM zurückgegeben werden. Die client.py behandelt dies mit sys.stdout.reconfigure(encoding="utf-8").

  6. Modellverfügbarkeit — Der Groq-Modellname (openai/gpt-oss-120b) muss gültig und auf der Groq-Plattform verfügbar sein. Überprüfen Sie die Groq-Modellliste auf aktuelle Optionen.

F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Reyansh1996/MCPLEARNING'

If you have feedback or need assistance with the MCP directory API, please join our Discord server