Skip to main content
Glama
sepehr071

ifb-mcp

by sepehr071

Price and yield history

ifb_history
Read-onlyIdempotent

Retrieve daily open, high, low, close, volume and bond yield-to-maturity data for one instrument to analyze price trends over up to 250 trading days.

Instructions

Get daily price history of one instrument: first, high, low and closing price and volume per trading day, newest first.

Bonds and treasury bills also get ytm_pct, the yield to maturity on that day. Use it for trends ("how has اخزا301 moved this month"). Days with no trade are absent. For today's price use ifb_quote.

Input Schema

NameRequiredDescriptionDefault
daysNoHow many of the latest trading days to return (1-250).
instrumentYesInstrument id from ifb_search or ifb_yields (digits, e.g. 33314) or an exact trading symbol (e.g. فرابورس1).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds real behavioral detail: results are newest-first, no-trade days are omitted rather than forward-filled, and ytm_pct appears only for bonds and treasury bills. It stops short of describing pagination or a hard cap beyond what the schema's 1-250 bound implies.

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?

Three short sentences, front-loaded with the return shape, then the bond/yield exception, then the routing hint. No sentence is redundant with another or with the schema.

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

Completeness5/5

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

With no output schema, the description carries the burden of describing return values and it does: named fields, ordering, conditional ytm_pct, and the gap-handling rule. An agent can call this correctly and interpret the response without further information.

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?

Schema coverage is 100%, so the baseline is 3; the description earns a bump by clarifying that history is per trading day with no-trade days dropped, which disambiguates what the 'days' count actually enumerates. The single-instrument scope is also made explicit, beyond the schema's own wording.

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

Purpose5/5

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

States a specific verb and resource ('Get daily price history of one instrument') and enumerates exactly what is returned (first, high, low, close, volume per trading day). The mention of 'one instrument' and the yield caveat for bonds/T-bills separates it cleanly from siblings like ifb_index_history and ifb_yields.

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

Usage Guidelines5/5

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

Gives an explicit use case with a concrete example ('how has اخزا301 moved this month') and redirects the adjacent need to the right sibling: 'For today's price use ifb_quote.' It also states the exclusion that no-trade days are absent, so the agent knows not to expect a gap-filled series.

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