mcp-server-multitask

mcp-server-multitask

MCP server that provides weather, geocoding, and currency conversion tools, enabling AI models like OpenAI to access real-time data through function calling.

Category
访问服务器

README

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.

  · geocode_city → get_current_weather

Cómo funciona

Por defecto (MCP_MODE=local) todo ocurre en tu máquina: el cliente se conecta al servidor MCP en 127.0.0.1, descubre sus herramientas, se las declara al modelo y las ejecuta él cuando el modelo las pide.

main_server.py (MCP) <── 127.0.0.1:8002 ── main_client.py ──> OpenAI
5 herramientas                              tu terminal        el modelo decide
sobre APIs públicas                                            qué usar

La alternativa (MCP_MODE=connector) usa el conector MCP nativo de la Responses API: se le pasa a OpenAI la URL del servidor y es OpenAI quien lista, llama y encadena las herramientas. Como la conexión la abre OpenAI desde sus servidores, 127.0.0.1 no le vale y hay que publicar el servidor con un túnel.

main_client.py ──> OpenAI (Responses API) ──> [túnel] ──> main_server.py (MCP)

En los dos modos el modelo encadena las llamadas por su cuenta (ciudad → coordenadas → clima) y la CLI muestra la misma traza.

Herramientas

Herramienta Entrada Salida
geocode_city nombre de ciudad latitud, longitud, país y zona horaria
get_current_weather coordenadas temperatura, humedad, estado del cielo
get_weather_forecast coordenadas pronóstico de 7 días
convert_currency importe + dos códigos ISO importe convertido y tasa aplicada
get_exchange_rates código ISO de la moneda base sus tasas frente al resto de monedas

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

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

Todo lo demás (modo, modelo, puerto, transporte, timeouts, nivel de log) tiene valores por defecto sensatos y está documentado en .env.example.

Uso

Hacen falta dos terminales: servidor y cliente.

1. Arranca el servidor MCP

uv run python main_server.py

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

2. 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
¿Qué coordenadas tiene Tokio?

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)

Modo connector: dejar que OpenAI llame a las herramientas

Con MCP_MODE=connector es OpenAI quien lista y ejecuta las herramientas, así que el servidor tiene que ser accesible desde internet. Hace falta una tercera terminal con un túnel; con devtunnel:

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

Copia la URL que imprime y ponla en el .env:

MCP_MODE=connector
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.

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 hace falta ni el puerto.

Problemas frecuentes

Síntoma Causa
API_KEY_EXCHANGE Field required al arrancar falta el .env o la clave
No se pudo conectar con el servidor MCP en http://127.0.0.1:8002/mcp falta arrancar main_server.py en otra terminal
El cliente no arranca y avisa de MCP_PUBLIC_URL con MCP_MODE=connector, falta la URL del túnel en el .env
El modelo dice que no puede usar las herramientas en modo connector, el túnel está caído 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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选