Skip to main content
Glama
Jotarose

mcp-server-multitask

by Jotarose

mcp_training

MCP-Server mit Werkzeugen für Wetter, Geokodierung und Währungen sowie ein Konsolen-Client, der mit einem OpenAI-Modell spricht, das diese Werkzeuge nutzen kann.

Tú › ¿Qué tiempo hace en Madrid?

Modelo:
  En Madrid hay 24,3 °C, humedad del 41 % y cielo despejado.

  · get_lat_lon_from_city → get_current_weather

Wie es funktioniert

main_client.py ──> OpenAI (Responses API) ──> [túnel] ──> main_server.py (MCP)
   tu terminal        el modelo decide                     5 herramientas
                      qué herramientas usa                 sobre APIs públicas

Der Client führt die Werkzeuge nicht aus: Er übergibt OpenAI die öffentliche URL des MCP-Servers, und OpenAI listet sie auf, ruft sie auf und verknüpft sie (Stadt → Koordinaten → Wetter). Deshalb muss der Server über das Internet erreichbar sein: OpenAI verbindet sich von seinen Servern aus, nicht von deinem Rechner.

Werkzeuge

Werkzeug

Eingabe

Ausgabe

get_lat_lon_from_city

Stadtname

Breitengrad und Längengrad

get_current_weather

Koordinaten

Temperatur, Luftfeuchtigkeit, Himmelszustand

weather_forecast

Koordinaten

7-Tage-Vorhersage

get_exchange_rate

zwei ISO-Codes

aktueller Wechselkurs

convert_currency

Betrag + Kurs

umgerechneter Betrag

Wetter und Geokodierung nutzen Open-Meteo (kostenlos, kein Schlüssel). Währungen nutzen ExchangeRate-API, die einen Schlüssel erfordert, und unterstützen 20 Währungen (/monedas in der CLI).

Struktur

config/settings.py     configuración y logging (todo sale del .env)
server/                herramientas + clientes HTTP de las APIs externas
client/                cliente de OpenAI + interfaz de terminal
main_server.py         arranca el servidor MCP
main_client.py         arranca la conversación

Related MCP server: Python Weather MCP Server

Installation

Erfordert Python 3.11+. Mit uv (empfohlen):

git clone <url-del-repo>
cd mcp_training
uv sync

Oder mit pip und einer virtuellen Umgebung:

python -m venv .venv
.venv\Scripts\activate        # Windows;  en Linux/macOS: source .venv/bin/activate
pip install -r requirements.txt

Konfiguration

Kopiere das Beispiel und fülle deine Schlüssel aus:

cp .env.example .env

Nur zwei Variablen sind erforderlich:

Variable

Wofür

API_KEY_EXCHANGE

Wechselkurse (kostenloser Schlüssel hier)

OPENAI_API_KEY

das Modell des Clients

Und eine dritte, MCP_PUBLIC_URL, die im nächsten Schritt ausgefüllt wird. Alles andere (Modell, Port, Transport, Timeouts, Log-Level) hat sinnvolle Standardwerte und ist in .env.example dokumentiert.

Verwendung

Es werden drei Terminals benötigt: Server, Tunnel und Client.

1. Starte den MCP-Server

uv run python main_server.py

Er lauscht auf http://127.0.0.1:8002/mcp.

2. Veröffentliche den Server mit einem Tunnel

OpenAI benötigt eine öffentliche URL, um den Server zu erreichen. Mit devtunnel:

devtunnel port create -p 8002 --allow-anonymous
devtunnel host

Kopiere die ausgegebene URL (https://xxxxxxx-8002.euw.devtunnels.ms) und setze sie in die .env:

MCP_PUBLIC_URL=https://xxxxxxx-8002.euw.devtunnels.ms

Jeder Tunnel ist geeignet (ngrok, Cloudflare Tunnel …); wichtig ist nur, dass die URL von außen erreichbar ist. Der Client hängt /mcp selbst an, falls es nicht enthalten ist.

3. Starte den Client

uv run python main_client.py

Gib deine Anfrage ein und drücke die Eingabetaste. Die Konversation hat ein Gedächtnis: Nachdem du nach Madrid gefragt hast, kannst du einfach «und morgen?» sagen.

Convierte 100 USD a EUR
¿Cuál es el clima actual en Madrid?
Dame el pronóstico del tiempo para Nueva York

CLI-Befehle:

Befehl

Funktion

/ayuda

Werkzeuge, Beispiele und Befehle

/monedas

unterstützte Währungscodes

/salir

beenden (auch Ctrl+C und Ctrl+D)

Den Server ohne den Client verwenden

Der Server ist ein Standard-MCP-Server: Er funktioniert mit jedem kompatiblen Client. Um ihn als Unterprozess zu verbinden (Claude Desktop, Claude Code …), setze MCP_TRANSPORT=stdio in der .env; dann werden weder Tunnel noch Port benötigt.

Häufige Probleme

Symptom

Ursache

API_KEY_EXCHANGE Field required beim Start

fehlende .env oder fehlender Schlüssel

Der Client startet nicht und meldet MCP_PUBLIC_URL

fehlende Tunnel-URL in der .env

Das Modell sagt, es könne die Werkzeuge nicht nutzen

Server oder Tunnel sind ausgefallen, oder MCP_PUBLIC_URL ist veraltet (ändert sich bei jedem devtunnel host)

OpenAI-Kontingentfehler

Guthaben aufgebraucht; erneuter Versuch behebt es nicht

Um die Details jedes Aufrufs (Argumente, Antworten, URLs) zu sehen, setze LOG_LEVEL=DEBUG in der .env. Die Logs gehen nach stderr, also speichert python main_client.py > chat.txt nur die Konversation.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A server that integrates the MCP library with OpenAI's API, allowing users to interact with various tools, such as the weather tool, through natural language queries.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI agents to fetch real-time weather data for any location using the OpenWeatherMap API. Demonstrates how to build a simple MCP server that exposes weather information as a tool for LLMs.
    1
    GPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to call weather tools, read resources, and use prompt templates for live weather data integration.
    1,107 npm
    MIT