Skip to main content
Glama
Jotarose

mcp-server-multitask

by Jotarose

mcp_training

Сервер MCP с инструментами для погоды, геокодирования и валют, а также консольный клиент, который общается с моделью OpenAI, способной их использовать.

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

Как это работает

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

Клиент не выполняет инструменты: он передаёт OpenAI публичный URL сервера MCP, и именно OpenAI перечисляет их, вызывает и связывает (город → координаты → погода). Поэтому сервер должен быть доступен из интернета: OpenAI подключается со своих серверов, а не с вашей машины.

Инструменты

Инструмент

Входные данные

Выходные данные

get_lat_lon_from_city

название города

широта и долгота

get_current_weather

координаты

температура, влажность, состояние неба

weather_forecast

координаты

прогноз на 7 дней

get_exchange_rate

два кода ISO

текущий обменный курс

convert_currency

сумма + курс

конвертированная сумма

Погода и геокодирование используют Open-Meteo (бесплатно, без ключа). Валюты используют ExchangeRate-API, который требует ключ, и поддерживают 20 валют (/monedas в CLI).

Структура

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

Установка

Требуется Python 3.11+. С uv (рекомендуется):

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

Или с pip и виртуальным окружением:

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

Конфигурация

Скопируйте пример и заполните свои ключи:

cp .env.example .env

Только две переменные обязательны:

Переменная

Для чего

API_KEY_EXCHANGE

обменные курсы (бесплатный ключ здесь)

OPENAI_API_KEY

модель клиента

И третья, MCP_PUBLIC_URL, которая заполняется на следующем шаге. Всё остальное (модель, порт, транспорт, таймауты, уровень логирования) имеет разумные значения по умолчанию и описано в .env.example.

Использование

Потребуются три терминала: сервер, туннель и клиент.

1. Запустите сервер MCP

uv run python main_server.py

Он слушает на http://127.0.0.1:8002/mcp.

2. Опубликуйте сервер через туннель

OpenAI нужен публичный URL для доступа к серверу. С devtunnel:

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

Скопируйте выведенный URL (https://xxxxxxx-8002.euw.devtunnels.ms) и поместите его в .env:

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

Подойдёт любой туннель (ngrok, Cloudflare Tunnel…); важно только, чтобы URL был доступен извне. Клиент сам добавляет /mcp, если его нет.

3. Запустите клиент

uv run python main_client.py

Введите свой запрос и нажмите Enter. Разговор сохраняет контекст: после вопроса о Мадриде можно просто сказать «а завтра?».

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

Команды CLI:

Команда

Что делает

/ayuda

инструменты, примеры и команды

/monedas

коды поддерживаемых валют

/salir

завершить (также Ctrl+C и Ctrl+D)

Использование сервера без клиента

Сервер — это стандартный MCP: он подходит для любого совместимого клиента. Чтобы подключить его как подпроцесс (Claude Desktop, Claude Code…), установите MCP_TRANSPORT=stdio в .env; тогда ни туннель, ни порт не понадобятся.

Частые проблемы

Симптом

Причина

API_KEY_EXCHANGE Field required при запуске

отсутствует .env или ключ

Клиент не запускается и сообщает о MCP_PUBLIC_URL

отсутствует URL туннеля в .env

Модель говорит, что не может использовать инструменты

сервер или туннель не работают, или MCP_PUBLIC_URL устарел (меняется при каждом devtunnel host)

Ошибка квоты OpenAI

закончились средства; повторная попытка не поможет

Чтобы увидеть детали каждого вызова (аргументы, ответы, URL), установите LOG_LEVEL=DEBUG в .env. Логи идут в stderr, так что python main_client.py > charla.txt сохранит только разговор.

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