TokenBel Financial Data
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Read-only MCP server for Belarusian securities: tokens, shares, bonds, companies.
| Author | io.github.AndreiDrang |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 613 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"TokenBel Financial Data": {
"url": "https://mcp.tokenbel.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (19)
token_get_by_uuidread-onlyGet a token's platform, sale status, price, rate and issuer. Tokens have no tickers; find the id with token_list. Example: {"uuid":"78c7e502"}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Token id from token_list.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
token_listread-onlyBrowse active tokenized securities by platform or sale status; returns tokens and next_cursor. Tokens have no tickers. Example: {"platform":"finstore","limit":20}.
Parameters:
limit— integer — Page size; default 50 (max 1000).status— string — Sale/circulation state; SELL_IN_PROGRESS is on sale, SOLD_OUT is fully sold, OBLIGATIONS_COMPLETED is repaid.platform— string — Tokenization platform.cursor_uuid— string — ID before | in next_cursor; pass with cursor_created_at.cursor_created_at— string — Timestamp after | in next_cursor; pass with cursor_uuid.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
share_get_by_uuidread-onlyGet a BCSE share's ticker, issuer, nominal value and trading-today flag. Resolve tickers with search_by_ticker first. Example: {"uuid":"a97f1fed"}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Share id from search_by_ticker.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
share_listread-onlyList active BCSE shares by issuer and trading-today status; returns shares and next_cursor. Use an issuer row from search_by_name. Example: {"issuer_uuid":"0d3bf3be","limit":20}.
Parameters:
limit— integer — Page size; default 50 (max 1000).is_trading— boolean — Traded today on BCSE, not historical liquidity.cursor_uuid— string — ID before | in next_cursor; pass with cursor_created_at.issuer_uuid— string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). From search_by_name entity_type='issuer'.cursor_created_at— string — Timestamp after | in next_cursor; pass with cursor_uuid.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
share_payouts_getread-onlyGet a share's dividend events and declared-payout summary. dividend_yield_pct uses nominal value, not market price; no_dividend/cancelled events are excluded from money totals. Example: {"uuid":"a97f1fed"}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Share id from search_by_ticker.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
bond_get_by_uuidread-onlyGet a BCSE bond's ticker, issuer, coupon, maturity and trading-today flag. Resolve tickers with search_by_ticker first. Example: {"uuid":"76f01f65"}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Bond id from search_by_ticker.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
bond_listread-onlyList active BCSE bonds by issuer and trading-today status; returns bonds and next_cursor. Use an issuer row from search_by_name. Example: {"issuer_uuid":"45aca6f7","limit":20}.
Parameters:
limit— integer — Page size; default 50 (max 1000).is_trading— boolean — Traded today on BCSE, not historical liquidity.cursor_uuid— string — ID before | in next_cursor; pass with cursor_created_at.issuer_uuid— string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). From search_by_name entity_type='issuer'.cursor_created_at— string — Timestamp after | in next_cursor; pass with cursor_uuid.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
company_get_by_uuidread-onlyGet a company catalogue row, including name, UNP, industry and activity flag; includes inactive companies. Find company IDs with search_by_name. Example: {"uuid":"730f9a9e"}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). From search_by_name entity_type='company'.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
company_listread-onlyBrowse active companies by industry; returns companies and next_cursor, not issuer rows. For issuers use search_by_name. Example: {"limit":20}.
Parameters:
limit— integer — Page size; default 50 (max 1000).industry— string — Exact company industry name.cursor_uuid— string — ID before | in next_cursor; pass with cursor_created_at.cursor_created_at— string — Timestamp after | in next_cursor; pass with cursor_uuid.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
search_by_tickerread-onlyFind BCSE shares/bonds by ticker substring; returns entity_type and TokenBel uuid for detail or trading tools. Tokens have no tickers. Example: {"query":"ASB"}.
Parameters:
query(required) — string — Case-insensitive share/bond ticker substring.limit— integer — Result cap; default 20 (max 100).
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
search_by_nameread-onlyFind companies and securities issuers by name or UNP; results tag entity_type. Use company uuid for company_get_by_uuid, issuer uuid for share_list/bond_list; linked_company_uuid joins them when known. Example: {"query":"Агрофинанс"}.
Parameters:
query(required) — string — Case-insensitive company/issuer name or Belarusian UNP.limit— integer — Result cap; default 20 (max 100).
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
currency_rate_getread-onlyGet NBRB FX rates in BYN per 1 USD/EUR/RUB. No dates = latest; date = one day; date_from/date_to = range; group_by + both bounds = weekly/monthly averages. Example: {"currency":"usd","date":"2026-06-18"}.
Parameters:
date— string — YYYY-MM-DD; cannot combine with range dates or group_by.date_to— string — Inclusive range end (YYYY-MM-DD); must be >= date_from.currency— string — Foreign currency; omit for all three. BYN is the base.group_by— string — Week/month average; requires both range dates.date_from— string — Inclusive range start (YYYY-MM-DD); optional for open start.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
trading_stats_getread-onlyGet share/bond trading totals and daily_series. No dates = latest 30 days; both dates = range (yield_wavg and *_latest are null). Find the id with search_by_ticker. Example: {"uuid":"a97f1fed","date_from":"2026-06-01","date_to":"2026-06-30"}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Share/bond id from search_by_ticker.date_to— string — Inclusive YYYY-MM-DD end (>= start); supply both dates or neither.date_from— string — Inclusive YYYY-MM-DD start; supply both dates or neither.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
token_trading_stats_getread-onlyGet a token's primary-market tokens-sold daily series, totals and snapshot; not secondary trading. No dates = last 30 days; either date bound is allowed. Find the id with token_list. Example: {"uuid":"78c7e502"}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Token id from token_list.date_to— string — Inclusive YYYY-MM-DD end (>= start); defaults to today.date_from— string — Inclusive YYYY-MM-DD start; defaults to 30 days before end.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
company_financial_params_getread-onlyGet a company's financial statement metrics and ratios, newest periods first. Accepts a company or linked issuer id from search_by_name. Example: {"uuid":"311ff09f","limit_periods":4}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Company or linked issuer id from search_by_name.limit_periods— integer — Newest periods to return; default 8 (max 100).
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
company_tokens_listread-onlyList a company's active token summary cards and next_cursor. Accepts a company or linked issuer id. Example: {"uuid":"7b860c81","limit":20}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Company or linked issuer id from search_by_name.limit— integer — Page size; default 50.cursor_uuid— string — ID before | in next_cursor; pass with cursor_created_at.cursor_created_at— string — Timestamp after | in next_cursor; pass with cursor_uuid.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
company_shares_listread-onlyList a company's active share summary cards and next_cursor. Accepts a company or linked issuer id. Example: {"uuid":"0d3bf3be","limit":20}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Company or linked issuer id from search_by_name.limit— integer — Page size; default 50.cursor_uuid— string — ID before | in next_cursor; pass with cursor_created_at.cursor_created_at— string — Timestamp after | in next_cursor; pass with cursor_uuid.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
company_bonds_listread-onlyList a company's active bond summary cards and next_cursor. Accepts a company or linked issuer id. Example: {"uuid":"0d3bf3be","limit":20}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Company or linked issuer id from search_by_name.limit— integer — Page size; default 50.cursor_uuid— string — ID before | in next_cursor; pass with cursor_created_at.cursor_created_at— string — Timestamp after | in next_cursor; pass with cursor_uuid.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
entity_news_listread-onlyList published news across a company/issuer and linked securities; returns events with links, tags and next_cursor. Filter by event/impact type or date. Example: {"uuid":"f2c03989","impact_types":["negative"]}.
Parameters:
uuid(required) — string — TokenBel id (usually 8 hex chars, no hyphens; not an RFC UUID). Company or issuer id from search_by_name.limit— integer — Page size; default 20 (max 50).date_to— string — Inclusive event date end (YYYY-MM-DD).date_from— string — Inclusive event date start (YYYY-MM-DD).event_types— array — Types (case-insensitive): company_news, share_event, bond_event, token_event, emission_event, corporate_action, payment_event, default_risk, financial_report, regulatory_update, tax_update, market_infrastructure, deposit_event, precious_metal_event, currency_market_event, market_data, other.impact_types— array — Impact types: positive, neutral, negative, mixed; case-insensitive.cursor_event_id— string — Numeric event ID before | in next_cursor; pass with cursor_published_at.cursor_published_at— string — Sort timestamp after | in next_cursor; pass with cursor_event_id.
Hints: read-only yes · destructive not declared · idempotent yes · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.