MOEX quotes MCP and a Telegram bot
MOEX1-mcp
An MCP server for MOEX quotes and order books via ISS+ and ISS REST, plus a Telegram bot that picks the right tool itself via OpenAI tool calling
- 0 ★ on the repository
- Last commit
Extended access
Why this level
- Uses a paid ALGOPACK subscription and OpenAI and Telegram keys, which are redacted in logs but stored in .env
- Reads only public market data; it does not touch a brokerage account or trades
Install
- Works in
- Services
Manual install
python -m venv .venv && pip install -r requirements.txt && cp .env.example .envInstalls dependencies before filling in the MOEX, Telegram and OpenAI keys.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Uses a paid ALGOPACK subscription and OpenAI and Telegram keys, which are redacted in logs but stored in .env
- Reads only public market data; it does not touch a brokerage account or trades
This is third-party code. Review the repository files before installing.
What it does
A monorepo of two services. A Python MCP server provides 11 market-data tools for MOEX: a security snapshot and order book over the ISS+ WebSocket (STOMP protocol), instrument search, a diagnostic subscription to an arbitrary channel, candles and trade tapes for TQBR shares and RFUD futures, a contract list, and a trading-suspension archive via ISS REST. A Telegram bot on aiogram 3 reads the user's message, picks the right MCP tool via OpenAI tool calling, and calls the server over HTTP with a key in the X-API-Key header; if no tool fits, the bot honestly replies that the request cannot be handled automatically. The ticker is validated to letters and digits before building the STOMP frame, as protection against selector injection. The bot explicitly does not trade or show a broker balance.
Who it is for. For people who want real-time public MOEX market data from Telegram or via MCP, with no brokerage account access.
Good fit when
- You need real-time MOEX quotes, order book or candles for shares and futures
- You want a Telegram bot that figures out what market query the user meant
- You have an ALGOPACK subscription and want MCP access to the ISS+ WebSocket, not just public REST
Not a fit when
- You need brokerage account or trade access: the bot explicitly does not trade or show a balance
- You have no ALGOPACK subscription: the snapshot and order-book WebSocket tools need an ALGOPACK login and password, not just a REST token
- You need the paid Super Candles, FUTOI, HI2 or Mega Alerts sections: in this environment they return HTML instead of JSON and are not implemented in the MCP
Example request
What is Sberbank's current share price, and show me the order book for GAZPMCP
- Transport
- http
- Authentication
- API key
Environment variables
MOEX_LOGINsecret- ALGOPACK subscription login for the ISS+ WebSocket
MOEX_PASSCODEsecret- ALGOPACK subscription password for the ISS+ WebSocket
MOEX_ALGOPACK_TOKENsecret- REST APIKEY for ISS REST; a short login:passcode also works
TELEGRAM_BOT_TOKENrequired, secret- Telegram bot token from BotFather
OPENAI_API_KEYrequired, secret- OpenAI API key for tool calling in the bot
MCP_API_KEYrequired, secret- Shared secret between the bot and the MCP server in the X-API-Key header
Limitations
The repository has no license. The snapshot and order-book tools over the ISS+ WebSocket need an ALGOPACK subscription login and password, not just a REST key. The OpenAI model is set via OPENAI_MODEL with a default value the README explicitly says not to change without the client's request, and there is no automatic fallback to another model on API errors. The paid ALGOPACK REST sections return HTML instead of JSON in the described environment and do not work in the MCP.
How to disable. Run docker compose down or stop the mcp_server and telegram_bot processes, and revoke TELEGRAM_BOT_TOKEN and MCP_API_KEY.
FAQ
Can the bot show my broker balance?
No, the README states explicitly that the bot does not trade and does not show a broker balance, only MOEX market data.
Is an ALGOPACK REST token enough for all tools?
No, the snapshot and order-book tools go through the ISS+ WebSocket and need MOEX_LOGIN and MOEX_PASSCODE for the ALGOPACK subscription, not just a REST token.
How is the MCP for Moscow Exchange quotes with a Telegram bot different from other Moscow Exchange services?
A monorepo of two services: a Python MCP server with 11 market data tools (security snapshot, an order book over ISS+ WebSocket with STOMP, instrument search) and a Telegram bot that picks the right tool through OpenAI tool calling.
Can the bot show my brokerage balance and is the ALGOPACK REST token enough?
No, the server gives market data, not access to your brokerage account. Which tools work with your ALGOPACK token depends on the subscription, see the README. Install with a venv, pip install -r requirements.txt and copying .env.example.
Discussion
No questions or reviews yet.
Related
All Moscow Exchange toolsmcp-moex (AlekseyOsikov)
mcp-moex
MCP server over the Moscow Exchange API: security search, prices, history, metrics, comparison with an index and a schedule mode, no keys needed
Moscow Exchange data MCP server
moex-mcp
An MCP server built on the official moexalgo library: 24 tools for candles, order book, trades and stats from MOEX ISS and ALGOPACK
MOEX and T-Bank Invest market data MCP
market-mcp
A read-only MOEX ISS and T-Bank Invest market data MCP server: quotes, candles, a screener, and optional portfolio access
MOEX MCP Server 2026
moex_mcp_server_2026
Python MCP server for Moscow Exchange quotes: share price, history, security info, top gainers and losers, dividends and portfolio value
MOEX AlgoPack MCP: market microstructure
moex-algopack-mcp
An MCP server for MOEX AlgoPack: trade flow, order book, futures open interest and ready derived metrics in plain language
A read-only Python MCP server for the official Moscow Exchange ISS API: stocks, bonds, FORTS futures and dividends
README in short
The Russian README gives an architecture diagram from Telegram through OpenAI tool calling to the MCP server and MOEX ISS+, a table of 11 tools with parameters and purpose, an environment-variable table with the source for each, local and Docker run instructions, example user messages with expected behavior, a logging section with secret redaction, and a security section covering ticker validation, a rate limit, and passing tool results to the model as untrusted data.