TokenBel Financial Data
Server Details
Read-only MCP server for Belarusian securities: tokens, shares, bonds, companies.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 19 of 19 tools scored. Lowest: 3.8/5.
Each tool targets a distinct entity or operation: bonds, shares, tokens, companies, issuers, currency rates, news, and searches. No two tools have overlapping purposes; even similar tools like bond_list and company_bonds_list are clearly differentiated by scope (global vs per-company).
Tools mostly follow a pattern of entity_noun + verb (e.g., bond_list, share_get_by_uuid, company_bonds_list). Some exceptions like currency_rate_get and entity_news_list place the verb at the end, but the pattern is predictable and readable.
With 19 tools covering bonds, shares, tokens, companies, issuers, currency rates, news, and trading statistics, the number is well-calibrated to the domain. Each tool serves a clear purpose without redundancy.
The tool surface provides comprehensive read access to the financial data domain: search, retrieval, listing with filters, trading statistics, and news. All expected query operations are present, and no obvious gaps are apparent for a data provider.
Available Tools
19 toolsbond_get_by_uuidARead-onlyIdempotentInspect
Get a single BCSE exchange-listed bond by its TokenBel internal identifier (field name: uuid). Returns ticker, issuer_uuid/issuer_name, bond_kind, current coupon/annual yield rate, payment type, maturity date, and is_trading (traded today). Use search_by_ticker first when starting from a ticker. Trading history is available via trading_stats_get; no separate bond payout schedule is exposed by this worker.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Bond id, usually discovered via search_by_ticker. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| ticker | Yes | |
| currency | Yes | |
| bond_kind | Yes | |
| is_active | Yes | |
| created_at | Yes | |
| is_trading | Yes | |
| updated_at | Yes | |
| issuer_name | Yes | |
| issuer_uuid | Yes | |
| percent_rate | Yes | |
| maturity_date | Yes | |
| nominal_value | Yes | |
| security_kind | Yes | |
| admission_date | Yes | |
| percent_payment_type | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint and idempotentHint. Description adds context: returns specific fields, and states no separate bond payout schedule is exposed. Does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no redundancy. Front-loaded with core action, then details, then usage guidance. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations, output schema, and sibling tools, the description is complete: explains what the tool does, what it returns, and its limitations (no payout schedule).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description provides additional clarification for the uuid parameter: 'opaque hexadecimal string, usually 8 characters', not an RFC UUID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear description: 'Get a single BCSE exchange-listed bond by its TokenBel internal identifier'. Lists returned fields and distinguishes from sibling tools like trading_stats_get and search_by_ticker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using search_by_ticker first when starting from a ticker, and notes trading history is available via trading_stats_get, guiding appropriate tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bond_listARead-onlyIdempotentInspect
List active BCSE exchange-listed bonds with optional filtering by securities issuer TokenBel internal id (parameter name: issuer_uuid) and today-trading flag. Use issuer_uuid from search_by_name results where entity_type="issuer". Supports cursor-based pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-1000, default 50) | |
| is_trading | No | Filter by is_traded_today flag: true means traded today, not historical liquidity | |
| cursor_uuid | No | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Pagination cursor id from next_cursor before the | delimiter. | |
| issuer_uuid | No | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Filter by security_issuer id from search_by_name result with entity_type="issuer". | |
| cursor_created_at | No | Pagination cursor datetime (ISO 8601) |
Output Schema
| Name | Required | Description |
|---|---|---|
| bonds | Yes | |
| count | Yes | |
| next_cursor | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint as true. The description adds pagination and filtering context, but does not expand significantly beyond the annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core action and efficiently cover all key points without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 5 parameters, no required fields, and presence of output schema, the description covers the essential functionality, pagination, and parameter source. A minor gap is the lack of clarity on what 'active' means, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage, so baseline is 3. The description adds value by explaining how to use issuer_uuid with search_by_name and clarifying filtering options, exceeding the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: listing active BCSE exchange-listed bonds with optional filters. It specifies the verb 'list', the resource 'bonds', and the scope, distinguishing it from sibling tools like company_bonds_list or share_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on obtaining issuer_uuid from search_by_name results and mentions cursor-based pagination, but does not explicitly state when to use this tool over alternatives or exclude cases where other tools are more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_bonds_listARead-onlyIdempotentInspect
List summary cards of a company's active bonds. Accepts a company OR issuer TokenBel id; resolves the company and returns its bonds.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Company or issuer id, usually discovered via search_by_name. | |
| limit | No | Max results per page (default 50). | |
| cursor_uuid | No | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Opaque cursor id part from the next_cursor returned by a prior call; pass both cursor parts together. | |
| cursor_created_at | No | Opaque cursor datetime part (ISO 8601) from the next_cursor returned by a prior call; pass both cursor parts together. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bonds | Yes | |
| count | Yes | |
| limit | Yes | |
| issuer_name | Yes | |
| issuer_uuid | Yes | |
| next_cursor | Yes | |
| company_name | Yes | |
| company_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_entity_type | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint, which the description does not contradict. The description adds 'resolves the company' but provides no additional behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words, front-loading the core purpose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and the description covers input requirements, it is sufficiently complete. The mention of 'summary cards' gives a hint of output, but no major gaps exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with detailed parameter descriptions in the schema. The description adds no extra meaning beyond 'accepts a company OR issuer id', so it meets the baseline without improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists summary cards of a company's active bonds and accepts a company or issuer ID. It distinctly differentiates from sibling tools like bond_list (which lists all bonds) and bond_get_by_uuid (single bond).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a company or issuer ID but does not explicitly state when to avoid this tool or provide alternatives. No exclusion criteria are given, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_financial_params_getARead-onlyIdempotentInspect
Get financial parameters for a company or securities issuer by TokenBel internal identifier (field name: uuid). Returns periodic financial statement metrics (balance, equity, long/short-term assets and liabilities) and calculated financial ratios (liquidity, leverage, independence, stability, capitalization). Accepts a company id or an issuer id — issuer ids are resolved to their linked company. Find the id via search_by_name first.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Company or issuer id, usually discovered via search_by_name. | |
| limit_periods | No | Max number of periods to return (newest first). Default 8. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| periods | Yes | |
| issuer_name | Yes | |
| issuer_uuid | Yes | |
| company_name | Yes | |
| company_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_entity_type | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint as true. The description reinforces this by describing a read operation ('Get') with no side effects. It adds behavioral context: issuer ids are resolved to linked companies, and the output includes both statement metrics and ratios. However, it does not explain what a 'period' is (e.g., quarterly, annual), which could be useful. Overall, the description adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first defines purpose and outputs, the second adds usage guidance. Every sentence is essential and informative. There is no redundancy or fluff. It is efficiently front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (context signal: true), the description does not need to detail return values. It covers the parameter usage (including issuer resolution) and prerequisite step. The only minor gap is the lack of definition for 'period' (e.g., quarterly, annual), but this is likely covered by the output schema. Overall, the description is comprehensive for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions (e.g., uuid as opaque hex, limit_periods with default). The tool description adds extra context for uuid, explaining it can be a company or issuer id and that issuer ids are resolved. This goes beyond the schema. For limit_periods, the description adds nothing new, but the baseline of 3 is elevated due to the additional clarity for uuid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get'), the resource ('financial parameters for a company or securities issuer'), and the identifier method (TokenBel internal uuid). It explicitly lists what is returned (periodic financial statement metrics and calculated ratios). The tool distinguishes from siblings by emphasizing the uuid-based lookup and resolution of issuer ids to linked companies, setting it apart from company_get_by_uuid and search_by_name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Accepts a company id or an issuer id — issuer ids are resolved to their linked company. Find the id via search_by_name first.' This tells the agent to use search_by_name as a prerequisite. It implies the tool is for financial parameters, not general company info, but does not explicitly list exclusions (e.g., 'do not use if you need company details'). The context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_get_by_uuidARead-onlyIdempotentInspect
Get a single company catalogue row by its TokenBel internal identifier (field name: uuid). Returns name, full_name, UNP (Belarusian tax ID), industry, logo, and activity flag. Companies are not always the same row as securities issuers; use search_by_name to discover both companies and issuers.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Company id, usually from search_by_name entity_type="company". |
Output Schema
| Name | Required | Description |
|---|---|---|
| unp | Yes | |
| name | Yes | |
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| address | Yes | |
| industry | Yes | |
| full_name | Yes | |
| is_active | Yes | |
| logo_path | Yes | |
| created_at | Yes | |
| updated_at | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description does not need to add safety warnings. It adds minor context about the data being a catalogue row and the uuid nuance, but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core action and returned fields, the second adds critical context (companies vs. issuers) and an alternative tool. It is front-loaded, concise, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no nested objects, output schema exists), the description adequately covers purpose, parameter usage, and differentiation from siblings. It lists return fields and clarifies identifier semantics. The only minor gap is lack of mention about authentication or rate limits, but these are common and not required for completeness here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the parameter is fully documented in the schema. The tool-level description adds some redundancy (e.g., 'by its TokenBel internal identifier (field name: uuid)') but does not provide substantial new meaning beyond the schema's detailed explanation of the uuid format and origin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a single company catalogue row by its TokenBel internal identifier (uuid). It lists the returned fields and explicitly distinguishes this tool from search_by_name for discovering both companies and issuers, thereby differentiating it from a relevant sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: use this tool when you have a uuid, and use search_by_name to find companies and issuers. It also clarifies that companies are not always the same as issuers, helping agents avoid misapplication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_listARead-onlyIdempotentInspect
List active company catalogue rows with optional filtering by industry. This does not list security_issuer rows directly; use search_by_name to find issuers and then share_list/bond_list with issuer_uuid. Supports cursor-based pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-1000, default 50) | |
| industry | No | Filter by company_industry.name exact value | |
| cursor_uuid | No | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Pagination cursor id from next_cursor before the | delimiter. | |
| cursor_created_at | No | Pagination cursor datetime (ISO 8601) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| companies | Yes | |
| next_cursor | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that the tool supports cursor-based pagination, which is a behavioral trait. No contradictions or missing critical behavioral info like auth or rate limits; for a read-only tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence gives purpose and filtering capability. Second sentence clarifies scope and directs to alternatives. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, 100% schema coverage, existence of output schema, and annotations covering safety, the description is complete. It explains pagination and filtering sufficiently. Leaves no ambiguity about the tool's behavior or when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. The description reiterates 'optional filtering by industry' and 'cursor-based pagination', adding minimal new semantic value beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active company catalogue rows with optional filtering by industry. It distinguishes itself from listing security_issuer rows directly, referencing sibling tools like search_by_name, share_list, and bond_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when not to use this tool (to list security_issuer rows) and directs to alternatives: search_by_name for issuers, then share_list/bond_list with issuer_uuid. Also mentions supported features like cursor-based pagination.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_tokens_listARead-onlyIdempotentInspect
List summary cards of a company's active tokens (emissions). Accepts a company OR issuer TokenBel id; resolves the company and returns its tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Company or issuer id, usually discovered via search_by_name. | |
| limit | No | Max results per page (default 50). | |
| cursor_uuid | No | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Opaque cursor id part from the next_cursor returned by a prior call; pass both cursor parts together. | |
| cursor_created_at | No | Opaque cursor datetime part (ISO 8601) from the next_cursor returned by a prior call; pass both cursor parts together. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| limit | Yes | |
| tokens | Yes | |
| issuer_name | Yes | |
| issuer_uuid | Yes | |
| next_cursor | Yes | |
| company_name | Yes | |
| company_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_entity_type | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and idempotency. Description adds no additional behavioral traits beyond 'list summary cards', which is consistent but doesn't enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states purpose, second clarifies input flexibility. No wasted words; front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Coverage is good given that an output schema exists (not shown) and parameters are fully documented. The description covers the unique company/issuer resolution. However, it could briefly mention pagination or what 'active tokens' means, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds value by clarifying that the uuid parameter can be either a company or issuer id and that the tool resolves it, which is not in the schema. For other parameters, no additional meaning is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action (list), resource (summary cards of active tokens), and the unique behavior of accepting company or issuer id and resolving to company. It distinguishes from sibling tools like token_list by specifying company-specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use when needing tokens for a specific company, but lacks explicit when-not-to-use or alternative tool guidance. Mentions resolution of company/issuer id, which provides some context but not full usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
currency_rate_getARead-onlyIdempotentInspect
Get NBRB (National Bank of Belarus) official FX rates against BYN (Belarusian ruble) for USD, EUR, and/or RUB. Rates are BYN per 1 unit of foreign currency. Modes: latest (no dates), single_date (date), range (date_from/date_to, either bound optional), or grouped weekly/monthly aggregates (group_by + range). Only usd/eur/rub are supported; BYN is the implicit base currency.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Single date in YYYY-MM-DD format. Mutually exclusive with date_from/date_to. | |
| date_to | No | Range end date in YYYY-MM-DD format (inclusive, >= date_from). Open-ended or today-bounded ranges bypass cache. | |
| currency | No | Filter to one supported foreign currency: usd, eur, or rub. Omit to return all three. BYN is the base currency, not a target. | |
| group_by | No | Aggregate by week or month. Requires a date range (date_from/date_to), not a single date. | |
| date_from | No | Range start date in YYYY-MM-DD format (inclusive). Can be omitted for open-start range. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| count | Yes | |
| date_to | Yes | |
| results | Yes | |
| currency | Yes | |
| group_by | No | |
| date_from | Yes | |
| base_currency | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent. The description adds behavioral details: rates are BYN per 1 unit, only usd/eur/rub supported, and open-ended ranges bypass cache. This adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, using short sentences and clear separation of modes. It front-loads the main purpose and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description does not need to detail return values. It covers all modes, parameter constraints, and special behaviors, leaving no gaps for an agent to misuse the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning: date formats, mutual exclusivity, currency enum explanation, group_by requires range, and caching behavior for date_to open-ended ranges. These enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets NBRB official FX rates against BYN for USD, EUR, and RUB, specifying the source, base currency, and supported currencies. It is distinct from sibling tools which focus on bonds, companies, shares, tokens, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the different modes (latest, single date, range, grouped aggregates) and when to use which parameters. It does not explicitly state when NOT to use this tool, but the sibling tools are clearly different, so the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_news_listARead-onlyIdempotentInspect
List full published news events across a company's or issuer's full entity graph (the company, its security_issuers, their bonds/shares, and emissions under the company). Accepts a company OR issuer TokenBel id; resolves the entity and returns enriched news events with aggregated links and tags. Supports filtering by event_types, impact_types, and a date_from/date_to range, plus cursor-based pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Company or issuer id, usually discovered via search_by_name. | |
| limit | No | Max results per page (default 20, max 50). | |
| date_to | No | Optional inclusive upper bound on the event date (ISO YYYY-MM-DD). | |
| date_from | No | Optional inclusive lower bound on the event date (ISO YYYY-MM-DD). | |
| event_types | No | Optional filter on news_event.event_type. Valid values: 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. Case-insensitive. | |
| impact_types | No | Optional filter on news_event.impact_type. Valid values: positive, neutral, negative, mixed. Case-insensitive. | |
| cursor_event_id | No | Opaque pagination cursor part 1 (the last event id) from the next_cursor returned by a prior call; pass both cursor parts together. | |
| cursor_published_at | No | Opaque pagination cursor part 2 (the last event sort-key timestamp) from the next_cursor returned by a prior call; pass both cursor parts together. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| limit | Yes | |
| events | Yes | |
| filters | Yes | |
| issuer_name | Yes | |
| issuer_uuid | Yes | |
| next_cursor | Yes | |
| company_name | Yes | |
| company_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| requested_entity_type | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral context such as entity graph resolution, enriched news with aggregated links and tags, and filtering/pagination support, which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, well-structured: main function, input, output features, filtering/pagination. Every sentence adds value, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity, the presence of an output schema, and annotations, the description covers purpose, scope, input, filtering, and pagination. It is complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not provide additional parameter meaning beyond what the schema already specifies, such as the uuid being an internal identifier or the filter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists full published news events across an entity graph, specifies the scope (company, issuers, bonds/shares, emissions), and indicates it accepts a company or issuer TokenBel id. This provides a specific verb and resource, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (for news events) and mentions the input type. It does not explicitly state when not to use or suggest alternatives, but the purpose is clear enough to differentiate from siblings like company_bonds_list or share_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_nameARead-onlyIdempotentInspect
Search companies AND securities issuers by name, full name, or UNP (Belarusian tax ID). Results are tagged with entity_type: "company" (use company_get_by_uuid) or "issuer" (use uuid as issuer_uuid in share_list/bond_list). The returned uuid/issuer_uuid values are opaque TokenBel internal ids (usually 8 hex chars, not RFC UUIDs). Companies and issuers are different tables and may overlap; linked_company_uuid connects an issuer to a company when known.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100, default 20) | |
| query | Yes | Company/issuer name or UNP (Belarusian tax ID) search query; case-insensitive, e.g. 'bank' matches 'MTBank', 'Priorbank' |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| query | Yes | |
| results | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. Description adds value: ID format (8 hex chars, not RFC UUIDs), linked_company_uuid, and that companies/issuers are separate tables. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise paragraph, front-loaded with core purpose, no wasted words. All information is relevant and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers search scope, result handling, ID nature, entity relationships, and linking. Given complexity and presence of output schema, description is fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description enriches query parameter with case-insensitivity and example, and explains UNP usage. Adds practical context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches companies and issuers by name/UNP, distinguishes between entity types, and specifies how to use results with other tools. It differentiates from sibling tools like search_by_ticker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on using results: for companies use company_get_by_uuid, for issuers use uuid in share_list/bond_list. Explains overlap and linking. Lacks explicit when-not-to-use but sufficient for distinguishing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_tickerARead-onlyIdempotentInspect
Search BCSE exchange-listed shares and bonds by ticker (case-insensitive substring match). Tokens are excluded because they do not have ticker symbols. Use the returned uuid value as an opaque TokenBel internal id (usually 8 hex chars, not an RFC UUID) with share_get_by_uuid/bond_get_by_uuid, share_payouts_get for share rows, or trading_stats_get for either share/bond row. Returns entity_type, ticker, issuer_uuid, issuer_name, and is_trading (traded today).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-100, default 20) | |
| query | Yes | Ticker search query for listed shares/bonds only (case-insensitive substring, e.g. 'MTB' matches 'MTBank') |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| query | Yes | |
| results | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, and the description adds valuable context: uuid format (opaque TokenBel internal id, 8 hex chars, not RFC UUID), returned fields (entity_type, ticker, etc.), and no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a concise list of returned fields; every sentence adds value, no fluff, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, clear annotations, and presence of output schema in description, the description fully covers purpose, exclusions, usage of results, and sibling differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds context about uuid meaning and downstream tool usage, which indirectly enriches understanding of the query parameter's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches BCSE exchange-listed shares and bonds by ticker (case-insensitive substring match) and explicitly excludes tokens, making its purpose highly specific and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use (search by ticker for shares/bonds), when not to use (tokens excluded), and what to do with the returned uuid (use with other tools like share_get_by_uuid, etc.), providing clear guidance and differentiation from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_get_by_uuidARead-onlyIdempotentInspect
Get a single token by its TokenBel internal identifier (field name: uuid). Tokens are TokenBel-native tokenized corporate securities on fintech platforms (fainex/finstore/bynex/whitebird), not BCSE-listed tickers. Returns platform, lifecycle status, pricing, coupon rate, and company info.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Token id, usually discovered via token_list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| sold | Yes | |
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| status | Yes | |
| currency | Yes | |
| platform | Yes | |
| is_active | Yes | |
| created_at | Yes | |
| updated_at | Yes | |
| token_price | Yes | |
| company_name | Yes | |
| company_uuid | Yes | |
| percent_rate | Yes | |
| total_tokens | Yes | |
| emission_stop | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent behavior. The description adds value by specifying the return content (platform, lifecycle status, pricing, coupon rate, company info), which is not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key information, no redundant text. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the domain, identifier, and return fields. With an output schema available (context signal), it sufficiently covers the tool's behavior without being overly verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add much. It reiterates that uuid is the identifier but provides minimal additional insight beyond the schema's detailed description of the uuid format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get), the resource (single token), and the identifier (TokenBel internal uuid). It distinguishes from sibling tools like token_list and bond_get_by_uuid by specifying TokenBel-native tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that tokens are TokenBel-native and not BCSE-listed, providing context for when to use. However, it does not explicitly contrast with sibling retrieval tools like bond_get_by_uuid or share_get_by_uuid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_listARead-onlyIdempotentInspect
List active tokens with optional filtering by fintech platform and token lifecycle status. Tokens do not have tickers; use this list tool to browse tokenized securities by platform/status. Supports cursor-based pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-1000, default 50) | |
| status | No | Filter by token lifecycle status: SELL_NOT_STARTED (sale not open yet), SELL_IN_PROGRESS (currently selling), SELL_SUSPENDED (sale paused), SOLD_OUT (fully sold), SELL_ENDED (sale ended), CIRCULATION_ENDED (matured/circulation ended), OBLIGATIONS_COMPLETED (issuer obligations completed). | |
| platform | No | Filter by tokenization platform: fainex, finstore, bynex, or whitebird. | |
| cursor_uuid | No | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Pagination cursor id from next_cursor before the | delimiter. | |
| cursor_created_at | No | Pagination cursor datetime (ISO 8601) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| tokens | Yes | |
| next_cursor | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent hints. The description adds pagination behavior and cursor usage, complementing the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load purpose and filters, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With complete schema descriptions, read-only annotations, and an output schema, the description covers all needed context: purpose, filtering, pagination, and usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description provides a high-level summary but adds limited new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active tokens with filtering by platform and status, distinguishes from ticker-based tools like search_by_ticker, and provides specific verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use this tool (browsing tokens without tickers) and implies alternatives like search_by_ticker, but does not explicitly list when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_trading_stats_getARead-onlyIdempotentInspect
Get primary-market sales statistics for a token by its TokenBel internal identifier (field name: uuid). Returns a per-day series of tokens sold (derived from the cumulative instrument_log.sold counter), range totals, and a token snapshot (status, token_price, percent_rate, sold_total, total_tokens, sold_pct). Find the id via token_list first. Always a date range: omit both dates for the last 30 days, or provide date_from and/or date_to. Secondary-market data is not included.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Token id, usually discovered via token_list. | |
| date_to | No | Range end date YYYY-MM-DD (inclusive, >= date_from). Defaults to today when omitted. | |
| date_from | No | Range start date YYYY-MM-DD (inclusive). Defaults to date_to minus 30 days when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| daily | Yes | |
| period | Yes | |
| totals | Yes | |
| currency | Yes | |
| platform | Yes | |
| snapshot | Yes | |
| security_kind | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and idempotentHint true, which the description supports by describing a read-only operation. The description adds behavioral context beyond annotations: primary-market scope, date range defaults, and the fact that the UUID is not an RFC UUID. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a single clarifying note about secondary-market. It is front-loaded with the core purpose, efficiently covers usage, parameters, and limitations without redundancy. Every sentence adds essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description summarizes return values sufficiently (per-day series, range totals, token snapshot). It covers prerequisites, date range behavior, and data scope. Could optionally include error handling, but is complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds value by clarifying the UUID's nature (opaque hex, not RFC UUID) and date behavior (defaults, inclusive). This goes beyond the schema, warranting a 4 (baseline 3 for complete schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and description clearly state it retrieves primary-market sales statistics for a token using its internal UUID. It specifies the verb 'Get', the resource type, and distinguishes from sibling tools by explicitly stating 'Secondary-market data is not included' and referencing token_list for discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit instructions on date range usage: omit both for last 30 days or provide date_from/date_to. It also directs users to find the UUID via token_list first. While it doesn't explicitly list when not to use, the exclusion of secondary-market data implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trading_stats_getARead-onlyIdempotentInspect
Get trading statistics for a BCSE exchange-listed share or bond by TokenBel internal identifier (field name: uuid). Use search_by_ticker first. Modes: latest_30d (default, no dates) reads the refreshed 30-day materialized view and includes latest price/yield plus yield_wavg; range (both date_from and date_to, YYYY-MM-DD, inclusive) aggregates raw trade history live and returns yield_min/yield_max only — yield_wavg and all *_latest fields are null in range mode. Omit both dates or provide both; one bound is rejected. Both modes also return daily_series: one point per trade_date (same-day buckets collapsed across market_type/trade_mode/payment_code) with per-day turnover, transactions, price_wavg/min/max, and yield_min/max — no range-level rollup.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field/tool names, it is not an RFC UUID and normally has no hyphens. Listed share or bond id, usually discovered via search_by_ticker. | |
| date_to | No | Range end date YYYY-MM-DD (inclusive, >= date_from). Provide both date_from and date_to for range mode; ranges ending today bypass cache. | |
| date_from | No | Range start date YYYY-MM-DD (inclusive). Provide both date_from and date_to for range mode; omit both for latest_30d mode. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| uuid | Yes | TokenBel internal identifier: opaque hexadecimal string, usually 8 characters such as "78c7e502"; despite uuid field names, it is not an RFC UUID and normally has no hyphens. |
| period | Yes | |
| ticker | Yes | |
| price_max | Yes | |
| price_min | Yes | |
| yield_max | Yes | |
| yield_min | Yes | |
| price_wavg | Yes | |
| yield_wavg | Yes | |
| daily_series | Yes | |
| trading_days | Yes | |
| security_kind | Yes | |
| last_trade_date | Yes | |
| turnover_amount | Yes | |
| price_latest_date | Yes | |
| price_wavg_latest | Yes | |
| yield_latest_date | Yes | |
| yield_wavg_latest | Yes | |
| transactions_count | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent and read-only. Description adds valuable behavior: cache bypass for ranges ending today, null fields in range mode, daily_series structure. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph front-loads purpose and then details modes. Efficient but could be broken into clearer subsections. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description covers input behavior, modes, return fields, and caching. Agent has sufficient information to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds context: uuid is not RFC UUID, 8-character hex, discovered via search_by_ticker; date parameters mode rules. Enhances understanding beyond schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets trading statistics for a BCSE exchange-listed share or bond by uuid, distinct from sibling tools that get entity details. Specific verb 'Get' and resource 'trading statistics' with required prerequisite step (use search_by_ticker).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use search_by_ticker first. Describes two modes (latest_30d vs range) with conditions on date parameters, including that one bound is rejected. Does not explicitly state when not to use, but context from siblings implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!