Skip to main content
Glama
myfinancialria

MyFinancial Market Data MCP

Identifiers Held By a Stock As-Of a Date

get_identifiers_asof
Read-onlyIdempotent

Retrieve the symbol and ISIN a company used on a specific date for accurate historical labeling and rename explanations.

Instructions

The REVERSE of resolve_identifier_asof: given a stock_id and a date, return which symbol and ISIN that company held at that time. USE THIS to label historical output correctly — e.g. reporting a 2019 backtest position under the ticker it actually traded as then, rather than its current name. Also useful for explaining a rename to a user who is confused why a symbol they remember no longer resolves. stock_id comes from other tools' meta.stock_id; this tool does not accept a symbol. Coverage bounds are stated in the response — outside them the answer is out_of_coverage, not 'no identifiers'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoAs-of date, YYYY-MM-DD. Defaults to today (IST) when omitted.
stock_idNoREQUIRED. The internal stock id, as returned in other tools' meta.stock_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the tool is the reverse of resolve_identifier_asof, it returns coverage bounds in the response, and it returns 'out_of_coverage' rather than 'no identifiers' outside those bounds. It does not describe the exact response shape, but with no output schema and annotations covering safety, the added context is strong.

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?

The description is dense but every sentence earns its place: it defines the reverse relationship, gives a concrete use case, clarifies the input source, and preempts a common misinterpretation. It is front-loaded with the most important fact (reverse of resolve_identifier_asof) and uses clear formatting with backticks for identifiers.

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?

For a read-only, idempotent lookup tool with two well-documented parameters, the description covers the essential context: what it returns, how to get the input, when to use it, and how to interpret edge cases. The lack of an output schema is mitigated by the description's explanation of the response's coverage bounds. Nothing critical is missing for an agent to call it correctly.

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 description coverage is 100%, so the schema already documents both parameters. The description adds meaning by explaining that stock_id comes from other tools' meta.stock_id and that the tool does not accept a symbol, which is critical disambiguation. It also notes the date defaults to today (IST), which is in the schema but reinforced. This goes beyond the baseline 3.

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?

The description states a specific verb ('return'), a resource ('symbol and ISIN'), and a clear scope ('given a stock_id and a date'). It explicitly names the sibling it is the reverse of (resolve_identifier_asof), which distinguishes it from the many other get_* tools. The example use case (labeling a 2019 backtest position) makes the purpose concrete.

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?

The description explicitly says when to use this tool ('to label historical output correctly', 'explaining a rename') and what it does not accept ('does not accept a symbol'). It also clarifies the coverage-bound behavior ('outside them the answer is out_of_coverage, not no identifiers'), which prevents a common misinterpretation. This is strong guidance beyond the schema.

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