mcp-server-multitask
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_weatherCó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úblicasEl 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 |
| nombre de ciudad | latitud y longitud |
| coordenadas | temperatura, humedad, estado del cielo |
| coordenadas | pronóstico de 7 días |
| dos códigos ISO | tasa de cambio actual |
| 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ónRelated MCP server: Python Weather MCP Server
Instalación
Requiere Python 3.11+. Con uv (recomendado):
git clone <url-del-repo>
cd mcp_training
uv syncO 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.txtConfiguración
Copia el ejemplo y rellena tus claves:
cp .env.example .envSolo dos variables son obligatorias:
Variable | Para qué |
| tasas de cambio (clave gratuita aquí) |
| 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.pyQueda 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 hostCopia la URL que imprime (https://xxxxxxx-8002.euw.devtunnels.ms) y ponla en
el .env:
MCP_PUBLIC_URL=https://xxxxxxx-8002.euw.devtunnels.msVale 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.pyEscribe 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 YorkComandos de la CLI:
Comando | Qué hace |
| herramientas, ejemplos y comandos |
| códigos de moneda soportados |
| 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 |
| falta el |
El cliente no arranca y avisa de | falta la URL del túnel en el |
El modelo dice que no puede usar las herramientas | el servidor o el túnel están caídos, o |
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.
This server cannot be installed
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
- Alicense-qualityDmaintenanceA 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
- AlicenseBqualityDmaintenanceEnables 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.1GPL 3.0
- Alicense-qualityDmaintenanceAn MCP server that enables AI assistants to call weather tools, read resources, and use prompt templates for live weather data integration.1,299MIT
- Flicense-qualityCmaintenanceAn MCP server that integrates ExchangeRate-API and Open-Meteo to provide currency conversion and weather tools, enabling natural language queries for exchange rates, weather, and geocoding.
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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