Skip to main content
Glama
Jotarose

mcp-server-multitask

by Jotarose

mcp_training

Servidor MCP con herramientas de clima, geocodificación y divisas, y un cliente de consola que conversa con un modelo de OpenAI capaz de usarlas.

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

Cómo funciona

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

El cliente no ejecuta las herramientas: le pasa a OpenAI la URL pública del servidor MCP y es OpenAI quien las lista, las llama y las encadena (ciudad → coordenadas → clima). Por eso el servidor tiene que ser accesible desde internet: OpenAI se conecta desde sus servidores, no desde tu máquina.

Herramientas

Herramienta

Entrada

Salida

get_lat_lon_from_city

nombre de ciudad

latitud y longitud

get_current_weather

coordenadas

temperatura, humedad, estado del cielo

weather_forecast

coordenadas

pronóstico de 7 días

get_exchange_rate

dos códigos ISO

tasa de cambio actual

convert_currency

importe + tasa

importe convertido

Clima y geocodificación usan Open-Meteo (gratis, sin clave). Las divisas usan ExchangeRate-API, que sí requiere clave, y admiten 20 monedas (/monedas en la CLI).

Estructura

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

Instalación

Requiere Python 3.11+. Con uv (recomendado):

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

O con pip y un entorno virtual:

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

Configuración

Copia el ejemplo y rellena tus claves:

cp .env.example .env

Solo dos variables son obligatorias:

Variable

Para qué

API_KEY_EXCHANGE

tasas de cambio (clave gratuita aquí)

OPENAI_API_KEY

el modelo del cliente

Y una tercera, MCP_PUBLIC_URL, que se rellena en el paso siguiente. Todo lo demás (modelo, puerto, transporte, timeouts, nivel de log) tiene valores por defecto sensatos y está documentado en .env.example.

Uso

Hacen falta tres terminales: servidor, túnel y cliente.

1. Arranca el servidor MCP

uv run python main_server.py

Queda escuchando en http://127.0.0.1:8002/mcp.

2. Publica el servidor con un túnel

OpenAI necesita una URL pública para llegar al servidor. Con devtunnel:

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

Copia la URL que imprime (https://xxxxxxx-8002.euw.devtunnels.ms) y ponla en el .env:

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

Vale cualquier túnel (ngrok, Cloudflare Tunnel…); solo importa que la URL sea accesible desde fuera. El cliente añade /mcp por su cuenta si no lo lleva.

3. Lanza el cliente

uv run python main_client.py

Escribe tu consulta y pulsa Enter. La conversación tiene memoria: tras preguntar por Madrid puedes decir simplemente «¿y mañana?».

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

Comandos de la CLI:

Comando

Qué hace

/ayuda

herramientas, ejemplos y comandos

/monedas

códigos de moneda soportados

/salir

terminar (también Ctrl+C y Ctrl+D)

Usar el servidor sin el cliente

El servidor es un MCP estándar: sirve para cualquier cliente compatible. Para conectarlo como subproceso (Claude Desktop, Claude Code…) pon MCP_TRANSPORT=stdio en el .env; así no hacen falta ni el túnel ni el puerto.

Problemas frecuentes

Síntoma

Causa

API_KEY_EXCHANGE Field required al arrancar

falta el .env o la clave

El cliente no arranca y avisa de MCP_PUBLIC_URL

falta la URL del túnel en el .env

El modelo dice que no puede usar las herramientas

el servidor o el túnel están caídos, o MCP_PUBLIC_URL está obsoleta (cambia en cada devtunnel host)

Error de cuota de OpenAI

saldo agotado; reintentar no lo arregla

Para ver el detalle de cada llamada (argumentos, respuestas, URLs) pon LOG_LEVEL=DEBUG en el .env. Los logs van a stderr, así que python main_client.py > charla.txt guarda solo la conversación.

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

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    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

View all related MCP servers

Related MCP Connectors

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

  • MCP server connecting AI agents to non-custodial staking data across 130+ networks.

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

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/Jotarose/mcp-server-multitask'

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