VPf08-MCP-Forex
Uses Ollama language models to process natural language user requests and determine which MCP tools to invoke for currency pair operations.
Provides a Telegram bot interface for users to query and manage Forex currency pairs, with tools for listing, searching, adding pairs, and performing calculations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@VPf08-MCP-ForexShow me the exchange rate for EUR/USD"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Forex Pairs MCP + Telegram Bot + Ollama
Локальный справочный проект по валютным парам Forex:
MCP сервер (
forex-pairs-mcp) — SQLite + HTTP API с MCP JSON SchemaTelegram бот — aiogram + Ollama
qwen3:14b+ вызов MCP tools по HTTP
⚠️ Учебный справочник. Не подключается к брокерам и не даёт инвестиционных рекомендаций.
Структура проекта
.
├── mcp_server/
│ ├── server.py # FastAPI HTTP сервер
│ ├── db.py # SQLite + 100 тестовых пар
│ ├── tools.py # MCP инструменты + безопасный калькулятор
│ ├── requirements.txt
│ └── currency_pairs.db # создаётся автоматически
├── telegram_bot/
│ ├── bot.py # Telegram бот (aiogram 3)
│ ├── config.py # Настройки из .env
│ ├── llm_client.py # Ollama /api/chat + JSON parsing
│ ├── mcp_client.py # HTTP клиент MCP сервера
│ └── requirements.txt
├── .env.example
├── README.md
└── scripts/
└── verify.py # Локальная самопроверкаRelated MCP server: Frankfurter Forex MCP
Требования
Python 3.12+
Ollama с моделью
qwen3:14bTelegram Bot Token (@BotFather)
Установка
1. Виртуальное окружение (рекомендуется)
# Скопировать переменные окружения
copy .env.example .env
# Заполнить TELEGRAM_API_TOKEN в .env
# Создать .venv, установить зависимости и активировать
powershell -ExecutionPolicy Bypass -File setup.ps1В Cursor / VS Code окружение активируется автоматически в новых терминалах
(настроено в .vscode/settings.json → python.terminal.activateEnvironment).
Ручная активация в PowerShell:
.\.venv\Scripts\Activate.ps12. Установка без скрипта (альтернатива)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
$env:PIP_NO_PROXY="*"
pip install -r requirements.txtWindows / SOCKS proxy: если
pipвыдаётMissing dependencies for SOCKS support, используйте$env:PIP_NO_PROXY="*"перед установкой.
4. Установить и запустить Ollama
# Установить Ollama: https://ollama.com/download
ollama pull qwen3:14b
ollama serve # если не запущен автоматическиЗапуск
Откройте два терминала:
Терминал 1 — MCP сервер
cd mcp_server
python server.pyСервер будет доступен на http://localhost:8000
GET /health— проверка здоровьяGET /tools— список MCP инструментов (JSON Schema)POST /tools/list_currency_pairsPOST /tools/find_currency_pairPOST /tools/add_currency_pairPOST /tools/calculatePOST /call/{tool_name}— универсальный вызов
Терминал 2 — Telegram бот
cd telegram_bot
python bot.pyMCP инструменты
Инструмент | Описание |
| Список пар, опционально |
| Поиск по категории (мажорные / minor / exotic) — из |
| Поиск по symbol, base или quote (EUR/USD, EURUSD, JPY) |
| Поиск одной пары по числовому |
| Добавить новую пару |
| Безопасный калькулятор (AST, без |
| Топ-N / фильтр по уровню востребованности (very_high → low) |
| Справочный курс пары (open.er-api.com, без API-ключа) |
Промпт бота загружается из F_prompt.md в корне проекта.
Логирование
Логи пишутся в консоль и в файлы logs/forex-pairs-mcp.log, logs/forex-bot.log.
Переменная | Описание | По умолчанию |
| DEBUG, INFO, WARNING, ERROR |
|
| Каталог логов |
|
| Писать в файл (true/false) |
|
Для подробной отладки в .env:
LOG_LEVEL=DEBUGПримеры запросов боту
«покажи все валютные пары»
«покажи только major пары»
«найди EUR/USD»
«найди пары с JPY»
«добавь валютную пару USD/TRY exotic доллар к турецкой лире»
«посчитай 25 * (7 + 3)»
«покажи top 10 валютных пар по востребованности»
«курс EUR/USD»
Архитектура
sequenceDiagram
participant User as Telegram User
participant Bot as Telegram Bot
participant Ollama as Ollama qwen3:14b
participant MCP as forex-pairs-mcp
User->>Bot: Сообщение
Bot->>Ollama: /api/chat (JSON decision)
Ollama-->>Bot: need_tool + tool_name + arguments
alt need_tool=true
Bot->>MCP: POST /call/{tool}
MCP-->>Bot: tool result
Bot->>Ollama: format final answer
Ollama-->>Bot: текст ответа
end
Bot-->>User: Финальный ответЛокальная проверка
python scripts/verify.pyПеременные окружения
Переменная | Описание | По умолчанию |
| Токен Telegram бота | — (обязательно) |
| Прокси для Telegram API | — (опционально) |
| URL Ollama API |
|
| Модель Ollama |
|
| URL MCP сервера |
|
| Таймаут HTTP (сек) |
|
| Таймаут Ollama (сек) |
|
| API справочных курсов (MCP) |
|
Публикация на GitHub
# Из корня проекта (после git init и первого коммита)
git branch -M main
gh repo create VPf08-MCP-Forex --public --source=. --remote=origin --pushНе коммитится (см. .gitignore): .env, .venv/, logs/, *.db.
После клонирования на другом ПК:
copy .env.example .env
powershell -ExecutionPolicy Bypass -File setup.ps1Бот не отвечает — что проверить
Бот запущен? Нужны два терминала: MCP сервер +
python bot.pyДоступ к Telegram API? Бот должен подключаться к
api.telegram.org:443curl https://api.telegram.org/Если таймаут — включите VPN или укажите прокси в
.env:TELEGRAM_PROXY=socks5://127.0.0.1:1080Первый ответ долгий? Модель
qwen3:14bдумает 30–120 сек — подождите.Команда
/healthв боте — проверит MCP сервер.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for live currency exchange rates and conversion, ISO codes and Chinese currency names.
A MCP server for the Frankfurter API for currency exchange rates.
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP (Multi-Agent Conversation Protocol) Server that provides an interface to the 1Forge financial APIs, allowing access to forex data and currency conversion services through natural language interactions.-
- FlicenseBqualityDmaintenanceAn MCP server that provides currency rates, conversions, and historical exchange-rate data using the Frankfurter API. It enables users to retrieve latest rates, convert amounts between currencies, and access time-series data for currency pairs.3-
- -licenseNot gradedqualityNot gradedmaintenanceMCP server that provides real exchange-rate data from the European Central Bank, including latest rates, currency conversion, historical rates, and time series.-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides currency exchange rate conversion tools.6 npm1MIT