Skip to main content
Glama

price_fra

Price a forward rate agreement from user-supplied market data, notional, strike, and side. Returns NPV, forward rate, and settlement date.

Instructions

Price a forward rate agreement (POST /price-fra).

Args: market_data_source: where the market numbers in this call come from. user_pasted (the user pasted or typed the numbers in this conversation), user_file (the user attached a file/screenshot the numbers were read from), engine_example (an engine example's pricing block, only when the user explicitly asked to run an example), session (a market previously stored in this session, which itself came from one of the above). There is no value for estimated, recalled or placeholder data. If you would have to invent numbers, do not call this tool: ask the user for the data. preset: a preset with a fra block (EUR_EURIBOR_3M, EUR_EURIBOR_6M). notional: > 0. strike: agreed forward rate (decimal). side: Long (pay fixed) or Short. months_to_start, months_to_end: e.g. 3, 6 for a 3x6; the engine resolves spot = as_of + settlement days, then spot + 3M / 6M with the preset's calendar and convention (three /calendar-advance calls, all echoed). start_date, maturity_date: explicit alternative to the months. index_id, day_counter, business_day_convention: default from the preset.

summary.fras: npv, forward_rate, spot_value, settlement_date.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideYes
as_ofNo
marketYes
presetYes
strikeYes
index_idNo
notionalYes
request_idNo
start_dateNo
day_counterNo
maturity_dateNo
months_to_endNo
months_to_startNo
forwarding_curveYes
additional_tradesNo
discounting_curveYes
calendar_overridesNo
market_data_sourceYes
business_day_conventionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.4

TDQS

A4.7/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden, and it delivers real behavioral context: market_data_source provenance rules, the engine's three calendar-advance resolution of spot and 3M/6M, and the note that those advances are echoed. It does not discuss error conditions or the assumption behind curve inputs, so not quite 5.

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?

Front-loaded with purpose and then structured as an Args block, with a compact return-value note at the end. The market_data_source definition is verbose, and enumerating redundant sub-cases costs some density, but nearly every line earns its place.

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 19-parameter pricing tool with no annotations but with an output schema, the description covers provenance, date resolution, curve expectations and returns (summary.fras fields). An agent has enough to invoke correctly without external documentation.

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

Parameters5/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 does: it defines market_data_source's four values, preset requirements (fra block, named presets), the sign of notional, strike as a decimal forward rate, side semantics matching the enum, and the months/dates duality including the 3x6 example. This is far beyond the bare schema titles.

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 ('Price a forward rate agreement') and anchors it to the endpoint POST /price-fra. Among many 'price_*' siblings, it is immediately distinguishable as the FRA pricer.

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 when-to-use/why-not through the market_data_source enumeration, and critically tells the agent not to call the tool when it would have to invent numbers, routing it to ask the user instead. This is unusually strong routing guidance.

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