Skip to main content
Glama

ime-mcp

Read-only MCP server for Iran Mercantile Exchange (ime.co.ir). It exposes official public statistics and live board snapshots from IME endpoints (no third-party API keys).

Requirements

  • Python 3.11+

  • Internet access to www.ime.co.ir and cdn.ime.co.ir

Related MCP server: EODHD MCP Server

Install

cd /home/ali/Workspace/ime-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e ".[test]"

With uv:

uv sync --extra test

Cursor configuration

Add to your MCP settings (.cursor/mcp.json or Cursor MCP UI):

{
  "mcpServers": {
    "ime": {
      "command": "uv",
      "args": ["--directory", "/home/ali/Workspace/ime-mcp", "run", "ime-mcp"]
    }
  }
}

If uv is not installed, use the venv interpreter:

{
  "mcpServers": {
    "ime": {
      "command": "/home/ali/Workspace/ime-mcp/.venv/bin/ime-mcp",
      "args": []
    }
  }
}

Tools

Tool

Description

list_markets

Markets covered and statistics page URLs

search_physical_trades

Physical market trades by date range

get_physical_trade

One physical row by id or symbol

search_offer_notices

Supply rows with no executed volume

get_physical_board

Live CDN board snapshot (TTS may need broker network)

search_futures_trades

Futures statistics

get_futures_contract

One futures contract

search_option_trades

Options statistics

get_option_contract

One option contract

get_derivatives_board

Live derivatives snapshot

search_certificate_trades

Commodity deposit certificates

search_salaf_trades

Standard parallel salaf

search_fund_trades

Commodity funds

get_financial_board

Live financial symbols on CDN board

Dates accept Jalali (1404-07-01) or Gregorian (2025-09-23).

Tests

pytest -m "not live"
pytest -m live

Data sources

License

MIT

Available Tools

14 tools
get_derivatives_boardC

Live snapshot of derivatives contracts from cdn.ime.co.ir marketshub.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Live snapshot' hints that the result is point-in-time and read-only, but nothing is said about permissions, rate limits, pagination behavior, or whether the data is cached, which is a significant gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler, and the core purpose is front-loaded. It is appropriately short but arguably under-specified rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a read tool with no annotations and zero schema coverage on three parameters, the description leaves too much unspecified: no filtering semantics, no pagination behavior, and no differentiation from the other board tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about the three parameters (limit, offset, symbol). It does not explain that symbol filters the board or that limit/offset paginate, leaving the agent to guess from names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (derivatives contracts) and the operation type (live snapshot), and names the data source (cdn.ime.co.ir marketshub). This distinguishes it reasonably well from siblings like get_physical_board and get_financial_board by naming the asset class, though it never explicitly contrasts with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives such as get_financial_board or get_physical_board, and no prerequisites. The agent must infer from the name alone that this is the derivatives-specific board.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_financial_boardC

Live snapshot filtered to financial-market style symbols on the CDN board.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral burden. 'Live snapshot' weakly implies a read-only, fresh-data operation, but there is no mention of pagination behavior, auth requirements, or result size — significant gaps given non-zero limit/offset parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, which is structurally clean. Its brevity, however, stems from under-specification rather than disciplined compression.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Still, with zero annotations and 0% parameter coverage, the description should at minimum clarify the symbol filter and pagination semantics; it does neither, leaving three parameters effectively undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and no parameter is explained in the description. The phrase 'filtered to financial-market style symbols' gestures at the symbol parameter but gives no format, matching rules, or expected values, and limit/offset are entirely ignored.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb-adjacent concept ('Live snapshot') and a resource ('the CDN board') with a filter qualifier, so the general function is discernible. However, 'financial-market style symbols' and 'CDN board' are undefined jargon, and nothing distinguishes it from siblings like get_derivatives_board or get_physical_board.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given. With a cluster of near-identical board tools (physical, derivatives, financial), the description never says which board to pick or under what conditions, leaving the agent to guess from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_futures_contractC

Get futures contract statistics by contract code within a date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
start_dateYes
contract_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it falls short. It implies a read operation but never confirms read-only-ness, does not describe what 'statistics' includes, whether the range is inclusive, or any rate/pagination behavior. 'Statistics' is the only behavioral hint and it is undefined.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence with the resource and scoping constraints front-loaded; nothing is wasted. It is arguably under-specified rather than over-long, but structurally it is clean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, with zero annotation coverage and 0% schema description coverage, the description should carry more behavioral and parameter context than it does for a 3-param tool; it is minimally viable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does map all three parameters to meaning — contract_code, start_date, end_date via 'date range' — but adds no format details (date syntax, contract code format, inclusive/exclusive bounds, end_date defaulting to null behavior). Partial compensation warrants a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: retrieves futures contract statistics scoped by contract code and date range. This distinguishes it from siblings like get_option_contract and search_futures_trades by naming the resource (contract statistics) rather than trades. It does not explicitly differentiate itself from siblings in text, keeping it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or alternatives are provided. The agent gets no signal on when to prefer this over search_futures_trades or get_derivatives_board; usage is only implied by the word 'Get' and the statistics framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_option_contractB

Get one option contract row by code within a date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
start_dateYes
contract_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It hints at single-row semantics but says nothing about read-only nature, missing-contract behavior, whether the row is a snapshot or aggregated, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; every clause carries information about what is returned and how it is constrained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be explained. However, with zero annotation and zero schema-description coverage, the description is minimal for a tool whose parameter semantics and failure modes go unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. 'By code' maps to contract_code and 'within a date range' maps to start_date/end_date, but the optional end_date and what an open-ended range means are undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (one option contract row) plus the scoping keys (code, date range). 'Option' implicitly distinguishes it from get_futures_contract among siblings, but it never names a sibling explicitly, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this versus search_option_trades or get_derivatives_board. Usage is only inferable from the name and 'one row' phrasing; no prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_physical_boardC

Snapshot of live contracts from IME CDN board (physical hall uses tts.ime.co.ir when accessible).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the data source (IME CDN board) and a mirror endpoint, but says nothing about pagination behavior implied by limit/offset, freshness/latency of the snapshot, or failure modes when the source is unreachable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single compact sentence, which is good, but the parenthetical about tts.ime.co.ir is tangential infrastructure detail rather than the information an agent needs (what it returns, how to page or filter).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be spelled out, but for a tool with zero schema descriptions and no annotations, the description leaves the filtering semantics, paging, and relationship to sibling board tools completely unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for limit, offset, and symbol, and it does not. Only the generic param names carry meaning; the description never explains that symbol filters the board or how limit/offset page through the snapshot.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('live contracts from IME CDN board') but uses a noun phrase rather than a clear verb, and its only differentiator from siblings like get_derivatives_board and get_financial_board is the indirect hint 'physical hall'. An agent can guess it is the physical-market counterpart, but the description never says so outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus get_derivatives_board, get_financial_board, or search_physical_trades. The only conditional language ('when accessible') describes source availability, not the agent's decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_physical_tradeB

Get one physical trade row by arzehPk id or symbol within a date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNo
trade_idYes
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it only restates the purpose. It does not disclose that this is a read-only operation, permission/auth requirements, error behavior for missing trades, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, covering the key identification and filtering behavior. It is efficient, though slightly terse given the missing behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be documented, but the lack of annotations plus 0% parameter description coverage leaves auth, error, and end_date semantics unaddressed for a 3-parameter tool. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and it partially does: it explains trade_id accepts an "arzehPk id or symbol" and that a date range filters results. However end_date semantics and its null default remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Get") and resource ("one physical trade row") and clarifies it returns a single row identified by id or symbol within a date range. This implicitly contrasts with the plural search_physical_trades sibling, though it never names it explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The singular "one ... row" and required id/date-range framing imply this is a point-lookup rather than a bulk search, but the description never states when to prefer it over search_physical_trades or any other sibling. Usage is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_marketsB

List IME markets covered by this server and their statistics pages.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden, but as a zero-parameter listing operation its behavioral surface is small. It implies a safe read and mentions that markets map to 'statistics pages', yet says nothing about pagination, coverage limits, or whether results are static. Adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It could be marginally tighter, but every clause contributes scope information about what is returned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-argument discovery tool with an output schema that documents the return shape, the description supplies enough to call it correctly. The only gap is the absence of context on how the listed markets connect to the sibling trade tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies; no parameter meaning is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('IME markets covered by this server'), which is clearly distinct from the trade-oriented siblings. The trailing clause about 'statistics pages' is slightly ambiguous but adds scope information. No explicit sibling differentiation, but the resource itself separates it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool versus the sibling search/get tools, nor any stated prerequisites or follow-ups after discovering a market. The agent must infer that this is a discovery entry point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_certificate_tradesC

Search commodity deposit certificate trades (گواهی سپرده) from bazaremali statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo
end_dateNo
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, yet it says nothing about authentication, rate limits, pagination behavior, or what a search returns. An output schema exists, which offsets some of this, but the mutation-free read profile is only assumed, not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, which is structurally clean. However, the brevity comes at the cost of substance rather than being an instance of efficient density, so it reads as under-specified rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema means return values need not be described, but for a 5-parameter date-filtered search with a required start_date, an agent still lacks the date format, pagination defaults, and any usage context. What is present is a bare minimum for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters, and the description adds no parameter meaning at all — not the date format for start_date/end_date, nor the filtering semantics of symbol, nor how limit/offset interact. Parameter names are largely self-explanatory, which keeps this above the floor, but the description does no compensating work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (commodity deposit certificate trades), and names the data source (bazaremali statistics). It is distinguishable from siblings like search_physical_trades and search_futures_trades by the certificate asset class. It stops just short of 5 because it never clarifies what a 'certificate trade' record contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no criteria separating it from the other search_* siblings, and no mention of prerequisites for reaching the bazaremali statistics source. The agent is left to infer scope from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_fund_tradesC

Search commodity fund trades from bazaremali statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo
end_dateNo
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It implies a read operation via 'Search' but says nothing about pagination behavior, date-range constraints, result volume, or authentication, all of which matter for a 5-parameter query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the action front-loaded, so it is efficient. The trailing 'from bazaremali statistics' adds little value and is the one weak element.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. But for a 5-parameter search tool with zero annotation coverage and zero schema descriptions, the definition omits date-filter semantics, pagination, and any tie-breaker against the many sibling search tools, leaving it materially incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters, so the description must compensate and it does not. It never mentions start_date, end_date, symbol, limit or offset; only the self-evident parameter names carry any meaning, which is insufficient at this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb (Search) and a resource (commodity fund trades), which distinguishes it at a high level from sibling search tools for physical, futures, option, certificate and salaf trades. However, 'from bazaremali statistics' is opaque and the description never clarifies what a 'fund trade' is versus the other trade types, so the differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives despite 13 sibling tools covering adjacent trade categories. The agent is left to infer selection purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_futures_tradesC

Search futures market statistics for a date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo
end_dateNo
start_dateYes
only_activeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses almost nothing: no read-only confirmation, no pagination behavior despite limit/offset parameters, and no auth or scope constraints. The output schema covers return shape, but the agent still cannot infer result-size or ordering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no padding, which is structurally fine. Its brevity is under-specification rather than economy, so it cannot earn more than a middling score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter filtered search with no annotations, one required parameter, and no schema descriptions, the description is too thin. The presence of an output schema excuses it from explaining return values, but it still omits filtering and pagination semantics the agent needs to call it well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 6 parameters, so the description must compensate — and it only gestures at 'a date range', loosely covering start_date and end_date. The symbol filter, only_active flag, and the limit/offset pagination controls are entirely unexplained anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a clear verb ('Search') with a resource ('futures market statistics'), which is enough to distinguish it from the physical/option/salaf trade siblings by asset class. However, it never names those alternatives, and the noun 'statistics' sits awkwardly against the tool name's 'trades', leaving ambiguity about what is actually returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the twelve sibling search_* tools, nor any prerequisite or exclusion stated. The only implied usage is the existence of a date range.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_offer_noticesC

Search offering notices derived from physical statistics rows with supply and no executed volume.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
end_dateNo
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does disclose meaningful semantics about what the results represent (records derived from physical statistics rows with supply and no executed volume), and 'Search' implies a read-only operation, but it says nothing about pagination behavior, result limits, or authorization.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the core action leads. The qualifier is cryptic but not redundant, so it is appropriately sized if slightly opaque.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but with four undocumented parameters, no usage context, and no annotations, an agent lacks what it needs to call this correctly. The description is thin for a filtered search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and does not: start_date, end_date, limit, and offset are never mentioned. The field names are largely self-explanatory (dates and standard pagination), which earns slight credit, but nothing adds meaning beyond the bare titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search') and resource ('offering notices'), and the qualifier about being derived from physical statistics rows with supply and no executed volume gives it a domain-specific scope that separates it from siblings like search_physical_trades. The purpose is legible, though the derivation phrase is jargon-heavy and does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no named alternatives among the many sibling search tools. Usage is only implied by the verb 'Search'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_option_tradesC

Search option market statistics (call, put, or all).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo
end_dateNo
start_dateYes
only_activeNo
option_typeNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about pagination, rate limits, ordering, or permissions for what is clearly a query tool with limit/offset semantics. The presence of an output schema covers return values, but the operational behavior is undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler, and the resource is front-loaded. It is perhaps overly terse for a 7-parameter tool, but nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, 0% schema coverage, no annotations, and multiple look-alike sibling search tools, the description omits far too much to let an agent invoke this correctly. The output schema handles return values, but parameter usage and safe operation remain undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 7 parameters, so the description must compensate and does not. It only gestures at option_type (call/put/all) while leaving start_date, end_date, symbol, limit, offset, and only_active completely unexplained in both schema and text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource: search option market statistics. The word "option" implicitly separates it from siblings like search_futures_trades and search_physical_trades, though it never names an alternative directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no mention of alternatives among the many sibling search_* tools, and no prerequisites such as required date ranges. The agent is left to infer that this is the option-specific counterpart of the other search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_physical_tradesC

Search physical market trade statistics (بازار فیزیکی) for a Jalali or Gregorian date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo
end_dateNo
producerNo
commodityNo
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It usefully notes that dates may be Jalali or Gregorian, but says nothing about pagination behavior, default result size, rate limits, or what a search returns at a behavioral level.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no waste; the core scope is communicated immediately. It is efficient, though arguably too terse for a 7-parameter search tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but with zero annotations and 0% parameter coverage the description omits the filtering and pagination semantics an agent needs to invoke this correctly. It is inadequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 7 parameters, so the description must compensate, yet it only gestures at the date range. It never explains symbol, producer, commodity filters or how limit/offset pagination works, leaving most parameters semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (Search) and resource (physical market trade statistics) plus scope (a Jalali or Gregorian date range). This separates it from the singular get_physical_trade and get_physical_board siblings, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no reference to alternatives such as get_physical_trade for single-record lookups. The agent must infer from the name alone that this is the bulk/filtered retrieval variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_salaf_tradesC

Search standard parallel salaf trades (سلف استاندارد).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
symbolNo
end_dateNo
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not state that this is a read-only operation, does not mention pagination behavior despite limit/offset params, and gives no information on date-range semantics or result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, but it is under-specified rather than concise: the brevity leaves essential calling information absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a 5-parameter tool with 0% schema coverage and no annotations, the description is far too thin — no parameter guidance, no behavioral traits, no usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters, and the description mentions none of them. Nothing explains the date format for start_date/end_date, what symbol accepts, or how limit/offset paginate — the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('search') and resource ('salaf trades'), and the resource name itself distinguishes it from siblings like search_physical_trades and search_futures_trades. However, it offers no characterization of what a 'salaf' trade is beyond the Persian gloss, so an agent unfamiliar with the domain gets no further differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use context, no prerequisites, and never mentions any of the 12 sibling search/get tools. An agent must infer eligibility purely from the resource name with no exclusions or routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.0
    • First observedget_derivatives_board
    • First observedget_financial_board
    • First observedget_futures_contract
    • First observedget_option_contract
    • First observedget_physical_board
    • First observedget_physical_trade
    • First observedlist_markets
    • First observedsearch_certificate_trades
    • First observedsearch_fund_trades
    • First observedsearch_futures_trades
    • First observedsearch_offer_notices
    • First observedsearch_option_trades
    • First observedsearch_physical_trades
    • First observedsearch_salaf_trades

TDQS

B3.2/5.0

Scored across 14 tools

Disambiguation4/5

The search_*_trades / get_*_contract pairing per market (physical, futures, options) is clearly differentiated by instrument, and offer notices stand apart. However, the three board tools (physical, derivatives, financial) plus the CDN-based snapshots overlap somewhat, and the several bazaremali-derived search tools (certificate, salaf, fund) could be confused at a glance.

Naming Consistency5/5

All names follow a clean snake_case verb_noun pattern (list_markets, search_physical_trades, get_futures_contract, get_financial_board). The search_/get_ prefix distinction is applied consistently and predictably across instrument types.

Tool Count5/5

14 tools is well within the ideal 3-15 range and each maps to a distinct market segment or board. No obvious padding, and the search/get/board trichotomy is proportionate to the exchange's breadth.

Completeness4/5

Coverage spans physical, futures, options, certificates, salaf, funds, offer notices, and live boards, which is broad for the domain. Minor gaps: single-row getters exist only for physical/futures/option, so fetching an individual certificate or salaf row requires search, but agents can work around this.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Enables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.
    71
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables access to financial market data including EOD, intraday, fundamentals, news, and more via 75 read-only MCP tools.
    5
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides Korean Exchange (KRX) Open API data as MCP tools, supporting 31 APIs for indices, stocks, ETP, bonds, derivatives, commodities, and ESG.
    31
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides remote access to Pakistan Stock Exchange data through MCP tools for quotes, market snapshots, symbols, historical and intraday data, announcements, and payouts.
    -