AIsa Equities
Server Details
Your agent needs company financials it can compute on — statements, ratios, earnings, estimates, filings and insider activity as structured data, not a PDF.
What you can ask for • "Give me 8 quarters of income statement, balance sheet and cash flow for this ticker." • "What do analysts estimate for next quarter, and how did the last four surprise?" • "Find this exact line item across every filing." • "Who bought or sold as an insider in the last 90 days?" • "Screen for profitable companies under this valuation with growing revenue."
How to use it Point any MCP client at https://mcp.aisa.one/marketpulse/mcp and sign in with OAuth — there is no key to create or paste. 21 tools: prices and snapshots, income statements, balance sheets, cash-flow statements, financial metrics and snapshots, earnings, analyst estimates, company facts, filings and filing items, line-item search, a screener, insider trades, macro interest rates, news, plus EDINET documents and filing digests for Japanese issuers.
Why this rather than the source Statements as fields you can compute on, and a screener in the same place.
It is also a door to the rest The same login reaches 26 sources and 580+ operations. Read the fundamentals here, then ask the same agent what social is saying about the ticker — without adding a second server.
What it costs Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident.
Where else it reaches https://mcp.aisa.one/finance/mcp for equities, crypto and prediction markets in one place.
- Status
- Healthy
- Uptime
- 94.2% over 42 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 28 tools
Most tools target a distinct dataset, and the paired tools (financial_metrics vs financial_metrics_snapshot, prices vs prices_snapshot, edinet_filings_digest vs get_edinet_documents) are explicitly differentiated by 'real-time'/'snapshot' wording or by the digest's filtering role. The weak spots are the router meta-layer (search → batch_get_schema → batch_quote → batch_use) where a misstep is possible, and the retained deprecated `use` tool that overlaps directly with batch_use.
Roughly two thirds of the tools follow a get_financial_* verb-noun pattern, giving a readable core. But the set breaks it in several ways: HTTP-method prefixes (post_financial_financials_search_line_items), redundant doubling (get_financial_financials), unprefixed EDINET tools (edinet_filings_digest, get_edinet_documents), and bare one-word meta tools (search, account, use, batch_*).
28 tools is heavy for an equities data server, and some count is avoidable redundancy: get_financial_financials duplicates the three individual statement endpoints, and each metric/price family carries both a historical and a snapshot variant. The seven router/meta tools (including a deprecated one) add more surface than the data domain itself.
Core equity research coverage is solid: EOD and real-time prices, company facts, all statements plus line-item search and a screener, earnings, analyst estimates, SEC filings and filings items, insider trades, news, and macro policy rates. Gaps are secondary — no dividends/splits, institutional ownership, intraday bars, or index/ETF-level data.
Available Tools
28 toolsaccountShow account and usageARead-onlyInspect
Who am I, what can I use, how much can I spend: the key, the account balance, the Go-to-Market wallet when one is active, and usage for today, 7 days and 30 days. Free; needs the Authorization header. Call it to verify a new connection or to explain a 402. ok is true only when the balance was read; otherwise each entry of errors says what to do in next_step.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the readOnlyHint/openWorldHint/destructiveHint annotations: the call is free, it requires the Authorization header, and it discloses result semantics ('ok is true only when the balance was read; otherwise each entry of errors says what to do in next_step'). That tells an agent how to interpret partial failure, which annotations cannot convey.
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, front-loaded with what the agent gets, followed by cost/auth, then call triggers, then result interpretation. No sentence is redundant and none could be dropped without losing 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?
For a zero-parameter read tool with an output schema already present, the description covers the remaining gaps: cost, auth requirement, invocation triggers, and the ok/errors/next_step contract. Nothing an agent needs to call or interpret it correctly is missing.
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?
The tool takes zero parameters, so the description has nothing parameter-level to compensate for, and the schema is fully covered. A 4 rather than 5 reflects that it adds no input-syntax detail, though none is possible here.
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 states a concrete resource set (identity/key, account balance, Go-to-Market wallet, usage over 1/7/30 days) rather than restating the name. It is clearly distinguishable from every sibling, which are all Reddit, batch, or search tools. An agent knows exactly what it will learn by calling it.
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?
Explicit triggering conditions are given: 'Call it to verify a new connection or to explain a 402.' That is a strong when-to-use statement. It stops short of 5 because it names no alternative tool or a when-not condition, though the sibling list offers no obvious competing diagnostic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_get_schemaGet AIsa tool schemas in one batchARead-onlyIdempotentInspect
Retrieve schemas for 1 to 20 exact tool names from search. Build arguments from successful schemas, then call batch_quote. Do not call batch_use yet. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
| Name | Required | Description | Default |
|---|---|---|---|
| tools | Yes | Exact tool names returned by search whose complete contracts are needed. Never invent tool names. | |
| session_id | No | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. | |
| include_documentation | No | Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support. | |
| include_response_schema | No | Return the complete response_schema. Defaults to false. | |
| include_arguments_schema | No | Return the complete arguments_schema. Defaults to true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tools | Yes | |
| session_id | Yes | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. |
| error_count | Yes | |
| total_count | Yes | |
| success_count | Yes | |
| next_steps_guidance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description is not required to restate it. It adds genuine operational context: the batch_use prohibition, exact-name/prefix requirements, and session reuse semantics. It does not cover failure handling when names are invalid, keeping it below a 5.
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?
Front-loaded with the core action and size limit, and every sentence carries workflow value. The session_id sentence duplicates the schema's own parameter description, which is minor redundancy rather than bloat.
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?
For a read-only batch retrieval tool with an output schema, the description supplies the orchestration context an agent needs (source of names, next steps, session handling) without needing to explain return values. Nothing essential to correct invocation is missing.
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 the baseline is 3. The description adds real meaning beyond the schema by constraining names to those returned by search and warning against a client prefix such as mcp__aisa__, which is not encoded in 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?
States a specific verb and resource ('Retrieve schemas for 1 to 20 exact tool names') and pins the source of those names to search. This clearly separates it from siblings like search (finds tools), batch_quote, and batch_use.
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 sequences the workflow: build arguments from successful schemas, then call batch_quote, and 'Do not call batch_use yet.' This is an explicit when-to-use and when-not-to-use instruction naming the alternative siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_quoteQuote published AIsa tools without executing themARead-onlyIdempotentInspect
Obtain AIsaServices cost quotes for 1 to 20 published tools without executing them. Same input as batch_use: exact tool names and schema-valid arguments. Never falls back to execution. The response reports auto_execute_eligible and auto_execute_threshold_micros_usd. auto_execute_eligible waives only the extra cost-confirmation step and does not override a user prohibition on execution, a narrower scope, or a tighter budget limit. Quotes are price observations, not authorization grants. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
| Name | Required | Description | Default |
|---|---|---|---|
| calls | Yes | ||
| search_id | No | Optional search correlation identifier returned by search. | |
| session_id | No | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| batch_id | Yes | |
| session_id | Yes | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. |
| error_count | Yes | |
| total_count | Yes | |
| success_count | Yes | |
| next_steps_guidance | Yes | Deterministic next-step instructions derived from this result. Not an authorization grant. |
| auto_execute_eligible | No | True when the worst-known total of successful USD quotes is at or below auto_execute_threshold_micros_usd. A non-USD successful quote makes the batch ineligible. Present on quote responses. |
| auto_execute_threshold_micros_usd | No | Configured auto-execute threshold in micro-USD. 0 disables automatic execution. Present on quote responses. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the readOnly/idempotent annotations by explaining that quotes are price observations rather than authorization grants, and precisely delimiting what auto_execute_eligible does and does not waive (user prohibition, narrower scope, tighter budget). It also guarantees no execution fallback, which is the key behavioral risk for this tool.
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?
Purpose is front-loaded and most sentences carry distinct rules (no fallback, eligibility limits, naming, session reuse). It is on the long side and the argument-shape constraint is stated twice in spirit, but little is truly wasted.
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?
An output schema exists, so return-value documentation isn't required, yet the description still flags the two response fields that matter for a downstream decision. Combined with session and naming guidance, an agent has everything needed to call it 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?
At 67% schema coverage the schema already documents each parameter, so the description earns credit only for added meaning: exact-name rules for 'tool', session_id reuse semantics, and the 1-to-20 argument-shape parallel with batch_use. It doesn't clarify search_id beyond what the schema states.
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?
States a specific verb and resource ('Obtain AIsaServices cost quotes for 1 to 20 published tools') plus the crucial scope qualifier 'without executing them.' It is immediately distinguishable from the sibling batch_use, which executes rather than quotes.
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 names the parallel sibling ('Same input as batch_use') and draws the boundary ('Never falls back to execution'). It also gives operational conditions: use names exactly as search returns them, strip any mcp__aisa__ prefix, and reuse session_id from Search for the task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_useExecute published AIsa toolsADestructiveInspect
Billable API calls can incur substantial charges. Never call before a successful batch_quote for the same tools and arguments. Execute only when that quote response reports auto_execute_eligible=true for these calls, or when explicit user authorization covers that cost and risk. auto_execute_eligible waives only the extra cost-confirmation step; it does not override a user prohibition on execution, a narrower scope, or a tighter budget limit. Re-quote if tools, arguments, or scope change. Execute 1 to 20 independent published-tool calls; never silently retry. A missing or failed quote is not free. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
| Name | Required | Description | Default |
|---|---|---|---|
| calls | Yes | ||
| search_id | No | Optional search correlation identifier returned by search. | |
| session_id | No | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| batch_id | Yes | |
| session_id | Yes | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. |
| error_count | Yes | |
| total_count | Yes | |
| success_count | Yes | |
| next_steps_guidance | Yes | Deterministic next-step instructions derived from this result. Not an authorization grant. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover mutability, destructiveness, and open-world behavior. The description adds critical business logic: billable calls, quote dependency, the meaning of auto_execute_eligible (waives only cost confirmation, not user prohibitions), and no silent retry. It doesn't detail rate limits or return format, but with an output schema present, that's acceptable.
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 dense and front-loads the cost warning, but it packs many separate instructions into one block, making it less scannable. Some sentences like 'A missing or failed quote is not free' add value, but the overall flow could be better 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?
Given the destructive, open-world annotations and the presence of an output schema, the description covers the essential preconditions and behavioral constraints. It could mention error handling or partial failure behavior, but the core guidance is sufficient for correct invocation.
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 67%, and the description adds important semantics: tool names must be exact without client prefix, session_id reuse guidance, and 1-20 call limit. It doesn't explain search_id, but the schema description for search_id is already clear enough.
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 verb and resource: 'Execute 1 to 20 independent published-tool calls', and the title matches. It distinguishes itself from batch_quote by requiring a quote first, but doesn't explicitly contrast with the singular 'use' sibling, though that's implied by 'batch'.
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 gives explicit when-to-use and when-not-to-use conditions: only after a successful batch_quote with auto_execute_eligible=true or explicit user authorization. It also states re-quote conditions and prohibits silent retries, leaving little ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edinet_filings_digestEDINET filings digest: one day's disclosures, filterableARead-onlyIdempotentInspect
One day of Japanese EDINET filings as a scannable list, with the filtering upstream lacks.
Calls the same upstream as get_edinet_documents (which measured 612 KB for one
business day, with no filter parameters at all) and keeps six fields per filing:
docID, filerName, secCode, docTypeCode, docDescription, submitDateTime. Filters
run only on what you pass: doc_type_code matches exactly (for example 120 for
annual securities reports, 140 for quarterly, 160 for semi-annual, 350 for large
shareholding reports), and listed_only=true keeps filings that carry a secCode
— about two thirds of a typical day. Measured: 112 KB unfiltered, 73 KB with
listed_only, around 10 KB with a doc_type_code.
Returns filings in upstream order plus total_filings (the day's full count)
and returned, so a filtered view can never pass for the whole day. Each docID
feeds the REST download endpoint; the raw fourteen-field records live in
get_edinet_documents.
date is YYYY-MM-DD. It does NOT rank or select beyond your filters.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| listed_only | No | ||
| doc_type_code | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds valuable behavioral context: it returns `total_filings` and `returned` so a filtered view cannot be mistaken for the whole day, it does not rank results, and it provides measured payload sizes (112 KB unfiltered, 73 KB with listed_only, ~10 KB with doc_type_code). These details go beyond generic annotations and inform the agent about response characteristics and data volume.
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 front-loaded with the core purpose and then elaborates with relevant details. It is longer than minimal, but every sentence earns its place: upstream comparison, field list, filtering behavior, size measurements, and return fields. The structure is logical, moving from general purpose to specifics. A slightly tighter wording could improve it, but it remains efficient.
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 is thorough for an agent to invoke correctly. It explains the filtering semantics, the return fields (`filings`, `total_filings`, `returned`), the relationship to the upstream tool, and the date format. Since an output schema exists, it need not detail return structure. Nothing critical is missing; the description covers all necessary operational details.
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 0% (no descriptions in the schema), so the description must fully explain parameters. It does: `date` is YYYY-MM-DD, `listed_only=true` keeps filings with a secCode (~two thirds of a day), and `doc_type_code` matches exactly with concrete examples (120, 140, 160, 350). This gives the agent complete semantic understanding of all three parameters, far exceeding what the schema provides.
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 states a specific verb and resource: 'One day of Japanese EDINET filings as a scannable list, with the filtering upstream lacks.' It clearly identifies the tool's function and differentiates it from the sibling `get_edinet_documents` by highlighting the filtering capability. The mention of six fields and the explicit contrast with the upstream tool leaves no ambiguity about what this tool does.
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 names the sibling `get_edinet_documents` and contrasts it: the upstream has no filter parameters and returns raw fourteen-field records, while this tool provides filtered six-field records. It also states 'It does NOT rank or select beyond your filters,' clarifying scope. However, it does not explicitly say 'use this when you need filtered results, use the upstream when you need full records,' leaving the decision slightly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edinet_documentsDocument List APIBRead-onlyIdempotentInspect
{"methods":[{"methodType":"GET","methodDesc":"Query the EDINET filing list for a given file date. Returns metadata only when type=1, or metadata plus filing results when type=2.","requestParams":[{"paramName":"date","paramType":"query","required":true,"desc":"File date in YYYY-MM-DD format."},{"paramName":"type","paramType":"query","desc":"Response mode: 1 for metadata only, 2 for metadata plus filing list. Defaults to 1 when omitted."},{"paramName":"Subscription-Key","paramType":"query","required":true,"desc":"EDINET API key passed as a query parameter."}],"responseParams":[{"paramName":"metadata","desc":"Metadata object with title, request parameter echo, result count, processDateTime, status, and message."},{"paramName":"results","desc":"Array of filing document objects when type=2, including fields such as seqNumber, docID, filerName, docTypeCode, submitDateTime, and file availability flags."}]}]}
Published reference price: $0.00001 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | File date in YYYY-MM-DD format. | |
| type | No | Response mode: 1 for metadata only, 2 for metadata plus filing list. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the bar is lower. The description still adds real context the annotations do not: the required Subscription-Key authentication parameter, and the exact shape of the two response modes (metadata vs. metadata plus results). It stops short of describing rate limits or pagination for large filing lists.
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 a raw API spec dump wrapped in 'methods'/'requestParams' JSON scaffolding rather than prose, so nothing is front-loaded for an agent. It also carries a pricing comment block that is noise for tool selection, and repeats parameter text already in the schema.
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?
An output schema exists, so return values need not be explained, yet the description spends most of its budget on response fields. With only 2 parameters and full annotation coverage, the remaining gap is the missing sibling differentiation and when-to-use guidance, leaving it minimally viable rather than 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 description coverage is 100%, so the schema already documents both date and type verbatim, including the YYYY-MM-DD format and the 1/2 enum — the description largely restates it. The only genuinely additive item is the Subscription-Key parameter, which is absent from the input schema entirely.
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 embedded methodDesc states a specific verb and resource: 'Query the EDINET filing list for a given file date,' and the name get_edinet_documents matches that scope. It never distinguishes itself from adjacent siblings like edinet_filings_digest, get_financial_filings, or get_details, so an agent cannot route between them from this text alone.
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?
Usage is only implied through the type parameter semantics ('1 for metadata only, 2 for metadata plus filing list'), which tells the agent how to choose a response mode. There is no statement of when this tool should be chosen over the filing-oriented siblings, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_analyst_estimatesGet Analyst EstimatesDRead-onlyIdempotentInspect
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| period | No | ||
| ticker | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered by structured fields. The description's only added behavioral information is a per-request pricing disclosure ($0.02 USD per successful request, with settlement caveats) — genuinely beyond the annotations, but boilerplate that says nothing about return shape, data scope, or latency.
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 text is short but consists of HTML-comment-wrapped pricing boilerplate rather than tool documentation. It is under-specified rather than concise: every sentence is spent on billing metadata and none on the tool's function.
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?
For a data-retrieval tool with three undocumented parameters, no output schema, and a dense field of similar financial siblings, the description supplies nothing an agent needs to invoke it correctly. The pricing banner does not substitute for purpose, parameter, or routing information.
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 0% across three parameters (limit, period, ticker), none typed beyond 'string' and none described anywhere. The description must compensate and instead provides zero parameter meaning — no format for ticker, no accepted values for period, no units or default for limit.
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 never states what the tool does. The only content is an AISA pricing banner, so the agent must infer purpose entirely from the name 'get_financial_analyst_estimates' and the title 'Get Analyst Estimates'. Nothing distinguishes this from siblings like get_financial_earnings or get_financial_financial_metrics.
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?
There is no when-to-use guidance, no prerequisites, and no routing to any of the 27 sibling tools. With many near-synonymous financial siblings, the absence of any selection criteria leaves the agent with no basis for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_company_factsGet Company FactsCRead-onlyIdempotentInspect
Get company facts for a ticker.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The CIK of the company. | |
| ticker | No | The ticker symbol. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds the per-request cost context, which is genuinely useful, but says nothing about return format, caching, or the cik-vs-ticker preference — acceptable given the rich 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 single-sentence description is front-loaded and free of waste, and the pricing note is a clearly delimited injected block. Sizing is appropriate, though the minimal content borders on under-specification rather than tightness.
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?
An output schema exists, so return values need no explanation, and annotations carry the safety profile. However, for a two-optional-parameter lookup tool whose scope ('company facts') is undefined, the description leaves the caller without enough to choose between cik and ticker or to know what will be returned conceptually.
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 both params are already documented; baseline 3 applies. The description's 'for a ticker' hints at ticker usage but does not clarify the more important ambiguity that both cik and ticker are optional (required: []), leaving the agent unsure which identifier to supply.
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?
States a verb and resource ('Get company facts') but 'facts' is generic and undefined, and it makes no attempt to distinguish itself from close siblings like get_financial_financials, get_financial_filings, or get_financial_financial_metrics. An agent cannot tell from the text what data class 'facts' covers versus those 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?
Only 'for a ticker' is offered; there is no when-to-use guidance, no prerequisite, and no mention of alternatives among the many financial siblings. The agent must infer selection criteria entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_earningsGet Earnings DataBRead-onlyIdempotentInspect
Get the most recent earnings snapshot for a ticker. Optional change fields are returned only when available.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of most-recent **report periods** worth of filings to return, sorted by `(report_period DESC, filing_date ASC)`. The number of entries returned may exceed `limit` when a recent period has both an 8-K and a 10-Q / 10-K. Values above 40 are clamped to 40. Non-positive or non-integer values return 400. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| ticker | Yes | The ticker symbol (e.g. `AAPL`). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety and idempotency profile is covered without the description. The one extra bit — 'Optional change fields are returned only when available' — is a useful, non-obvious note about variable response shape, but that is the only behavioral disclosure.
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 authored content is two tight, front-loaded sentences with no padding. The injected pricing block is boilerplate noise that dilutes the definition, but the substantive description itself is efficiently sized.
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 a full output schema and complete annotations, the missing piece is routing guidance among many overlapping financial siblings. Return values need not be explained, so the only real gap is when to pick this over get_financial_financials or get_financial_analyst_estimates.
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 schema already fully documents ticker, limit, and cursor, including pagination and clamping behavior. The description adds nothing about parameters, which is acceptable at baseline when the schema carries the full load.
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?
States a specific verb and resource — 'Get the most recent earnings snapshot for a ticker' — so an agent knows it retrieves current earnings data keyed by ticker. However, it does not define what an 'earnings snapshot' contains or distinguish this tool from closely-named siblings like get_financial_financial_metrics_snapshot, get_financial_analyst_estimates, or get_financial_financials_income_statements.
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?
No when-to-use guidance, no prerequisites, and no alternatives are named despite a crowded sibling set that overlaps heavily on financial fundamentals. The agent must infer selection 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_financial_filingsGet Company SEC FilingsBRead-onlyIdempotentInspect
Get SEC filings for a company.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The Central Index Key (CIK) of the company. | |
| limit | No | The maximum number of filings to return (default: 10). This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. Provider reference (supplier schema): `{"default":10,"minimum":1,"type":"integer"}`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| ticker | No | The ticker symbol. | |
| filing_type | No | Filter by one or more filing types. Repeat the query parameter to pass multiple values (e.g. filing_type=10-Q&filing_type=10-K). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The only added behavioral content is the pricing note ($0.02 per successful request), which is genuinely useful cost context but is boilerplate rather than tool-specific behavior; nothing is said about coverage limits or what happens when all optional filters are omitted.
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?
A single front-loaded sentence with no filler, and the pricing note is confined to a delimited block. It is terse to the point of under-specification, but nothing present is wasted.
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?
An output schema exists and the parameters are fully documented, so the description needn't explain returns. However, with zero required parameters and many overlapping siblings, the description should at least say how to scope a request or when this differs from get_financial_filings_items.
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%, including pagination semantics for limit and the opaque cursor, so the schema does the heavy lifting. The description adds nothing beyond that, which is the baseline expectation.
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?
States a specific verb and resource ('Get SEC filings for a company'), so the agent knows exactly what the tool returns. It does not distinguish itself from close siblings such as get_financial_filings_items or edinet_filings_digest, which is the only gap at this level.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives despite a large sibling set covering overlapping financial data. The agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_filings_itemsGet SEC Filing ItemsBRead-onlyIdempotentInspect
Get the raw text Items from an SEC filing.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | The item to get. | |
| year | Yes | The year of the filing. | |
| ticker | Yes | The ticker symbol. | |
| quarter | No | The quarter of the filing if 10-Q. | |
| filing_type | Yes | The type of filing. | |
| accession_number | No | The accession number of the filing if 8-K. | |
| include_exhibits | No | Whether to include the raw text from linked exhibits. Only applicable for 8-K filings. When true, exhibit objects will include the 'text' field containing the full exhibit content. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds that output is raw, unparsed item text and discloses a per-request price, which is useful context; it says nothing about payload size 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states purpose immediately, followed only by a clearly delimited pricing block. Nothing in the prose is wasted, though the pricing boilerplate occupies more space than the functional description.
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?
An output schema exists, so return values need not be described. However, for a tool whose enum mixes 10-K and 8-K item codes and whose required fields shift by filing_type, the description omits the conditional-argument model entirely, leaving a real gap for an agent assembling a call.
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 the baseline of 3 applies. The description contributes no additional parameter meaning — it does not explain that the enum spans two different item numbering schemes (10-K Items 1–16 vs 8-K Items 1.01+) or which fields are conditionally required.
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?
States a specific verb and resource ('Get the raw text Items from an SEC filing'), and the word 'raw text' signals it returns unparsed content rather than metadata. It does not explicitly contrast itself with the sibling get_financial_filings, leaving the item-level vs filing-level distinction to be inferred.
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?
No guidance on when to use this over get_financial_filings or the other filing-related siblings, and no mention that item/quarter/accession_number must be matched to the filing_type. An agent gets no routing or prerequisite information from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_financial_metricsGet Financial MetricsCRead-onlyIdempotentInspect
Get financial metrics for a ticker, including valuation, profitability, efficiency, liquidity, leverage, growth, and per share metrics.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The Central Index Key (CIK) of the company. Can be used instead of ticker. | |
| isin | No | The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`. | |
| limit | No | The maximum number of results to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| period | Yes | The time period for the financial data. | |
| ticker | No | The ticker symbol of the company. Required if cik is not provided. | |
| exchange | No | The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's metrics. Price-based values (market cap, enterprise value, valuation ratios, dividend yield) are not yet available for UK tickers. | |
| filing_date | No | Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| report_period | No | Filter by exact report period date in YYYY-MM-DD format. | |
| filing_date_gt | No | Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_lt | No | Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_gte | No | Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_lte | No | Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded. | |
| report_period_gt | No | Filter by report period greater than date in YYYY-MM-DD format. | |
| report_period_lt | No | Filter by report period less than date in YYYY-MM-DD format. | |
| report_period_gte | No | Filter by report period greater than or equal to date in YYYY-MM-DD format. | |
| report_period_lte | No | Filter by report period less than or equal to date in YYYY-MM-DD format. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and open-world behavior, so the safety profile is covered externally. The description adds no further behavioral context: nothing about pagination mechanics, the UK-ticker limitation on price-based values, or how many records come back by default (the schema carries pagination, but the description does not reinforce it). The embedded pricing banner is commercial metadata rather than behavioral disclosure.
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 single descriptive sentence is front-loaded and efficient, with the metric families listed in a compact enumeration. The only bloat is the injected pricing comment block, which is boilerplate rather than substance.
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?
An output schema exists, so return structure need not be explained, and annotations cover the safety profile. What is missing is the disambiguation from the snapshot and general financials siblings and any note that periods drive the result shape, which matters for a 17-parameter tool in a dense sibling family.
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 every parameter is already documented in the schema, including the CIK/ISIN/ticker lookup alternatives, pagination, and the LSE limitation. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
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?
Specifies a concrete verb and resource ('Get financial metrics for a ticker') and enumerates the metric families returned (valuation, profitability, efficiency, liquidity, leverage, growth, per share), which tells an agent what data is inside. It does not, however, distinguish this tool from close siblings such as get_financial_financial_metrics_snapshot or get_financial_financials, so an agent cannot route between them from the description alone.
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?
There is no when-to-use guidance, no statement of prerequisites (e.g., that ticker or cik must be supplied), and no mention of the snapshot variant that overlaps in name and purpose. The agent must infer applicability entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_financial_metrics_snapshotGet Financial Metrics SnapshotBRead-onlyIdempotentInspect
Get the real-time financial metrics snapshot for a stock, including valuation ratios, profitability, efficiency, liquidity, leverage, growth, and per share metrics.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The Central Index Key (CIK) of the company. Can be used instead of ticker. | |
| isin | No | The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`. | |
| market | No | ||
| ticker | No | The ticker symbol of the company. | |
| exchange | No | The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's metrics. Price-based values (market cap, enterprise value, valuation ratios, dividend yield) are not yet available for UK tickers. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds 'real-time' and a pricing note, which is modest extra context, but says nothing about freshness guarantees, rate limits, or which identifiers are required (it implies none, matching the empty required list).
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 substantive sentence is front-loaded and dense with the metric categories. The interleaved pricing boilerplate is not the description author's content but does pad the block slightly.
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 an output schema present, return values need not be explained, and annotations cover the safety profile. However, for a tool surrounded by many overlapping financial siblings, the absence of any disambiguation leaves the agent to infer selection from names alone.
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 80%, so the schema already documents cik, isin, ticker, and exchange (including the UK limitation on price-based values). The description adds no parameter meaning beyond that, so the baseline 3 applies.
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 names a specific verb ('Get') and resource ('real-time financial metrics snapshot') and enumerates the metric categories returned (valuation, profitability, efficiency, liquidity, leverage, growth, per-share), so the agent knows exactly what this produces. It does not distinguish itself from the near-identical sibling get_financial_financial_metrics, which is the main gap.
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?
There is no statement of when to use this tool versus the very similar siblings (get_financial_financial_metrics, get_financial_financials, the snapshot variants). No prerequisites, no exclusions, no routing guidance of any kind.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_financialsGet Financial StatementsBRead-onlyIdempotentInspect
Get all financial statements for a ticker.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The Central Index Key (CIK) of the company. | |
| isin | No | The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`. | |
| limit | No | The maximum number of financial statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| period | Yes | The time period of the financial statements. | |
| ticker | No | The ticker symbol. Required if cik or isin is not provided. | |
| exchange | No | The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements. | |
| filing_date | No | Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| report_period | No | Filter by exact report period date in YYYY-MM-DD format. | |
| filing_date_gt | No | Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_lt | No | Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_gte | No | Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_lte | No | Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded. | |
| report_period_gt | No | Filter by report period greater than date in YYYY-MM-DD format. | |
| report_period_lt | No | Filter by report period less than date in YYYY-MM-DD format. | |
| report_period_gte | No | Filter by report period greater than or equal to date in YYYY-MM-DD format. | |
| report_period_lte | No | Filter by report period less than or equal to date in YYYY-MM-DD format. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds only the per-request pricing note, which is genuinely useful cost context, but says nothing about pagination depth or result volume beyond what the schema already documents.
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 core sentence is tight and front-loaded. The pricing block is relevant but wrapped in decorative HTML comment markers that add noise without content.
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 an output schema and fully documented input schema, the return shape is handled elsewhere. What remains missing is the disambiguation that matters most for a 27-sibling toolset: whether this returns all three statement types, and the effect of `period` on that. Adequate but with a clear gap.
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% across all 17 parameters, including enums, identifier alternatives, cursor opacity, and date-filter semantics, so the schema carries the full burden. The description adds no parameter meaning at all, making 3 the correct 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?
States a specific verb and resource ('Get all financial statements for a ticker'), which reads as the aggregate counterpart to the sibling balance-sheet/income-statement/cash-flow tools. However it never explicitly says it returns all statement types combined, so the distinction from get_financial_financials_balance_sheets et al. must be inferred.
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?
No when-to-use, when-not-to-use, or named alternative appears. Nothing tells the agent when to pick this aggregate tool over the three per-statement siblings, which is the key routing decision here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_financials_balance_sheetsGet Balance SheetsCRead-onlyIdempotentInspect
Get balance sheets for a ticker.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The Central Index Key (CIK) of the company. | |
| isin | No | The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`. | |
| limit | No | The maximum number of balance sheets to return This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. Provider reference (supplier schema): `{"format":"int32","type":"integer"}`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| market | No | ||
| period | No | The time period of the balance sheets. Provider reference (supplier schema): `{"enum":["annual","quarterly","ttm"],"type":"string"}`. | |
| ticker | No | The ticker symbol. Required if cik or isin is not provided. | |
| exchange | No | The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements. | |
| filing_date | No | Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period | No | Filter by exact report period date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_gt | No | Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_lt | No | Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_gte | No | Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_lte | No | Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_gt | No | Filter by report period greater than date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_lt | No | Filter by report period less than date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_gte | No | Filter by report period greater than or equal to date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_lte | No | Filter by report period less than or equal to date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered by structured data. The description adds no behavioral context of its own — no mention of pagination (up to 10 records per page, cursor carries original filters), no history depth, only a pricing note that does not help an agent decide or invoke.
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 single substantive sentence is well front-loaded and wastes nothing. But the embedded pricing comment block is boilerplate that adds no selection or invocation value and dilutes an otherwise one-line definition.
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 an output schema present and 94% parameter coverage, the description needn't explain return values or field formats. The remaining shortfall is guidance on identifier selection and pagination, which is partially covered by the schema's own cursor and limit text.
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 94%, so the parameters are already well documented in the schema, and the baseline of 3 applies. The description contributes nothing beyond 'for a ticker', which actually omits the cik/isin/exchange alternatives the schema spells out.
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?
States a specific verb and resource ('Get balance sheets for a ticker'), which distinguishes it from the income-statement and cash-flow siblings by resource name. However, the description narrows the input to a ticker while the schema accepts cik, isin, market and exchange as alternative identifiers, so it under-describes the tool's actual access paths.
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?
No guidance on when to use this versus get_financial_financials, get_financial_financials_income_statements or the search/screener siblings. Nothing explains which identifier to prefer (ticker vs cik vs isin), how to choose period, or when pagination via cursor is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_financials_cash_flow_statementsGet Cash Flow StatementsBRead-onlyIdempotentInspect
Get cash flow statements for a ticker.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The Central Index Key (CIK) of the company. | |
| isin | No | The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`. | |
| limit | No | The maximum number of cash flow statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| period | Yes | The time period of the cash flow statements. | |
| ticker | No | The ticker symbol. Required if cik or isin is not provided. | |
| exchange | No | The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements. | |
| filing_date | No | Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| report_period | No | Filter by exact report period date in YYYY-MM-DD format. | |
| filing_date_gt | No | Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_lt | No | Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_gte | No | Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded. | |
| filing_date_lte | No | Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded. | |
| report_period_gt | No | Filter by report period greater than date in YYYY-MM-DD format. | |
| report_period_lt | No | Filter by report period less than date in YYYY-MM-DD format. | |
| report_period_gte | No | Filter by report period greater than or equal to date in YYYY-MM-DD format. | |
| report_period_lte | No | Filter by report period less than or equal to date in YYYY-MM-DD format. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety and side-effect profile is fully covered. The description adds only a pricing note, which is billing context rather than invocation behavior; it does not describe return shape, pagination quirks, or data-source caveats. Minimum viable given the annotation coverage.
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 functional content is a single front-loaded sentence with zero waste. The injected pricing comment block is template overhead rather than description content, keeping it short of a 5.
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?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. The remaining gap is usage guidance for choosing among the sibling financials tools and identifier/period options, leaving the definition adequate but thin for a 17-parameter endpoint.
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 every one of the 17 parameters is already documented in the schema (including identifier alternatives, cursor opacity, and filing-date semantics). The description adds no parameter meaning beyond that, which is the baseline 3 when the schema does the heavy lifting.
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 uses a specific verb and resource ("Get cash flow statements") and names the input ("for a ticker"), so the agent knows exactly what data is returned. It does not, however, distinguish this tool from close siblings like get_financial_financials_balance_sheets or get_financial_financials_income_statements, relying on the tool name alone for that differentiation.
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?
There is no when-to-use guidance, no mention of when this is preferable to get_financial_financials (the general statements tool) or to the balance-sheet/income-statement variants. Nothing tells the agent which period mode (annual/quarterly/ttm) or identifier scheme to prefer in a given situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_financials_income_statementsGet Income StatementsBRead-onlyIdempotentInspect
Get income statements for a ticker.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | The Central Index Key (CIK) of the company. | |
| isin | No | The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`. | |
| limit | No | The maximum number of income statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. Provider reference (supplier schema): `{"format":"int32","type":"integer"}`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| market | No | ||
| period | No | The time period of the income statements. Provider reference (supplier schema): `{"enum":["annual","quarterly","ttm"],"type":"string"}`. | |
| ticker | No | The ticker symbol. Required if cik or isin is not provided. | |
| exchange | No | The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements. | |
| filing_date | No | Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period | No | Filter by exact report period date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_gt | No | Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_lt | No | Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_gte | No | Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_lte | No | Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_gt | No | Filter by report period greater than date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_lt | No | Filter by report period less than date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_gte | No | Filter by report period greater than or equal to date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| report_period_lte | No | Filter by report period less than or equal to date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorld, so the safety profile is covered. The description's only added behavioral fact is the $0.02 per-request cost, which is genuinely useful for an agent deciding whether to call it, but nothing about pagination limits, auth requirements, or rate behavior is disclosed.
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 functional sentence is front-loaded and wastes no words. The embedded pricing block is boilerplate rather than tool-specific guidance, but it is short and clearly demarcated.
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?
An 18-parameter, zero-required query tool with an output schema needs at least a hint about identifier selection (ticker vs cik vs isin), pagination, and how it differs from the sibling statement endpoints. The description supplies none of that, leaving an agent to reconstruct intent from the schema alone.
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 94%, so the schema already carries the parameter burden (limit/pagination semantics, cursor opacity, date-filter ranges, market/exchange enums). The description adds no syntax or usage detail for any of the 18 parameters and slightly narrows the identifier story to tickers.
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?
States a specific verb and resource: "Get income statements for a ticker." That is enough to separate it from the balance-sheet and cash-flow siblings at the name level. However, the "for a ticker" framing is incomplete, since the schema shows cik and isin are first-class alternatives, and no explicit contrast with get_financial_financials or the other statement tools is offered.
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?
There is no when-to-use guidance, no exclusions, and no mention of alternatives such as get_financial_financials (broad), balance sheets, or cash flow statements. An agent must 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.
get_financial_insider_tradesGet Insider TradesBRead-onlyIdempotentInspect
Get insider trades like buys and sells for a ticker by a company insider.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by insider name (e.g., 'Jen Hsun Huang'). Use the /insider-trades/names endpoint to get available names for a ticker. | |
| limit | No | The maximum number of transactions to return (default: 10). This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. Provider reference (supplier schema): `{"default":10,"type":"integer"}`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| ticker | No | The ticker symbol of the company. | |
| form_type | No | Filter by SEC form type: 4 for trades, 5 for annual statements (or their amendments 4/A, 5/A). | |
| filing_date | No | Filter by exact filing date in YYYY-MM-DD format. Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_gt | No | Filter by filing date greater than this date (YYYY-MM-DD). Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_lt | No | Filter by filing date less than this date (YYYY-MM-DD). Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_gte | No | Filter by filing date greater than or equal to this date (YYYY-MM-DD). Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| filing_date_lte | No | Filter by filing date less than or equal to this date (YYYY-MM-DD). Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| transaction_type | No | Filter by transaction type (e.g., 'Open market sale', 'Gift'). Use the /insider-trades/transaction-types endpoint to get available types. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds useful pricing context ($0.02 per successful request), but does not disclose rate limits, authentication needs, or edge cases like what happens when no ticker is provided.
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 core description is a single efficient sentence, front-loading the purpose. The pricing block is boilerplate but standard, and does not detract significantly from conciseness.
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 a rich output schema and detailed annotations, the description needs only to orient the agent. However, it implies that a ticker is required ('for a ticker') when the schema marks it optional, and it omits any mention of the many available filters (name, form type, dates), which could lead to underutilization or confusion.
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 the schema fully documents all 11 parameters. The description adds no parameter-level meaning beyond what the schema already provides, making the baseline of 3 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 states a specific verb ('Get') and resource ('insider trades') and clarifies the scope ('for a ticker by a company insider'). It distinguishes from most siblings, though it doesn't explicitly differentiate from broader filings tools that might also contain insider information. Overall clear and direct.
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?
No guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It simply states what the tool does, leaving the agent to infer context from the schema and tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_macro_interest_ratesGet Historical Interest RatesBRead-onlyIdempotentInspect
The daily policy rate of one central bank: one row per calendar day, newest first, 10 rows per page. A rate change appears on the first day the new rate is in effect. For the Federal Reserve the rate is the midpoint of the target range.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| bank | Yes | The central bank code, e.g. FED, ECB, BOJ. Use the /macro/interest-rates/banks endpoint to get the list of available banks. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| end_date | No | The last date to return, inclusive, in YYYY-MM-DD format. Defaults to today. | |
| start_date | No | The first date to return, inclusive, in YYYY-MM-DD format. Defaults to five years before end_date when both dates are omitted; omit it with an end_date to get all available history through that date. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, open-world, non-destructive query. The description adds valuable behavioral detail beyond annotations: page size (10 rows), ordering (newest first), rate-change timing, and the Federal Reserve midpoint convention. Pricing is also disclosed.
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 main content is front-loaded and concise: it describes the returned data shape and pagination first. The pricing notice is boilerplate but clearly separated. No sentence is wasted, though the description is not maximally tight.
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?
An output schema exists, so return-value details need not be exhaustive, and the description usefully supplements it with row frequency, ordering, and rate-change semantics. However, it omits guidance on when to prefer this tool over the snapshot sibling, leaving a meaningful usage gap for an agent choosing between the two.
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 the schema already fully documents `bank`, `cursor`, `start_date`, and `end_date`. The description adds only that data is for one central bank, which is implied by the required `bank` parameter, but does not explain any parameter syntax 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 identifies the resource: daily policy rates for one central bank, one row per calendar day, newest first. It does not explicitly name the sibling `get_financial_macro_interest_rates_snapshot` as the alternative for current data, but it is clear enough to distinguish from most other 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?
No explicit when-to-use or when-not-to-use guidance is provided, and the sibling snapshot tool is not mentioned. The description implies a historical daily-rate query but leaves the agent to infer that this tool is for historical rates rather than a current snapshot.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_macro_interest_rates_snapshotGet Latest Interest RatesARead-onlyIdempotentInspect
The newest published policy rate of every central bank we cover, one row per bank with the date it is in effect. Pass bank to get one bank only.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| bank | No | Optional central bank code (e.g., FED, ECB, BOJ) to return one bank only. Use the /macro/interest-rates/banks endpoint to get a list of available banks. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so the safety profile is covered. The description adds the row-level return shape and a pricing disclosure ($0.02 per successful request), but the return shape is largely redundant with the existing output schema, leaving the pricing note as the only substantive addition.
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 tight sentences with the core scope front-loaded ahead of the filter note. The injected pricing blockquote adds boilerplate length, but the substantive prose is efficient.
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 an output schema present, return values need no explanation, and annotations carry the safety profile. The description covers resource, scope, and filter adequately; only the sibling-differentiation against the historical rates tool is left implicit.
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% and the single bank parameter is fully documented in the schema, including example codes and a pointer to the banks endpoint. The description only restates the optional single-bank behavior, adding no syntax or format detail 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 gives a specific resource (central bank policy rates) with an explicit scope qualifier: 'newest published' and 'one row per bank with the date it is in effect.' This implicitly separates it from the time-series sibling get_financial_macro_interest_rates, though it never names that sibling explicitly, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the filter behavior ('Pass bank to get one bank only'), which is clear usage for the optional parameter. However, it never says when to prefer this snapshot over the historical get_financial_macro_interest_rates tool, leaving the key routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_newsGet Company NewsARead-onlyIdempotentInspect
Get recent news articles for a specific company or the broad market. Pass a ticker for company-specific news, or omit the ticker for general market news.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The maximum number of news articles to return (default: 5, max: 10). This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`. Provider reference (supplier schema): `{"default":5,"maximum":10,"type":"integer"}`. | |
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| ticker | No | The ticker symbol of the company. Omit for broad market news. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safe-read profile (readOnly, idempotent, non-destructive, openWorld), so the safety bar is low. The description adds the dual-mode behavior, but says nothing about freshness/coverage window, rate limits, or result ordering; the pricing line is injected boilerplate rather than authored disclosure.
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 short sentences, capability first and operational detail second, with zero filler in the authored text. The second sentence partially restates the dual-mode idea from the first, a minor redundancy; the trailing pricing block is auto-injected and not the author's conciseness burden.
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?
An output schema exists and the input schema fully documents all three parameters including pagination semantics, so the description need not explain returns. It still omits any hint about how far back news goes or how results are ordered, a small gap for a news tool but not one that blocks correct invocation.
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 the schema already carries the meaning of limit, cursor, and ticker (including "Omit for broad market news"), making 3 the correct baseline. The description's ticker guidance duplicates rather than extends the schema, adding no new syntax or constraint detail.
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?
States a specific verb and resource ("Get recent news articles") and immediately clarifies the two operating modes: ticker-specific news vs. broad market news. No sibling among the get_financial_* tools overlaps with news retrieval, so the agent can route to it unambiguously from the name and first sentence.
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 tells the agent how to select between the two modes ("Pass a ticker for company-specific news, or omit the ticker for general market news"), which is the main decision point. It stops short of naming alternatives for adjacent questions (e.g., filings or earnings coverage), so no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_pricesGet Historical Stock PricesBRead-onlyIdempotentInspect
Get end-of-day (EOD) historical price data for stocks.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it. | |
| ticker | No | The stock ticker symbol (e.g. AAPL, MSFT). | |
| end_date | No | The end date for the price data (format: YYYY-MM-DD). Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| interval | No | The time interval for the price data. Provider reference (supplier schema): `{"enum":["day","week","month","year"],"type":"string"}`. | |
| start_date | No | The start date for the price data (format: YYYY-MM-DD). Provider reference (supplier schema): `{"format":"date","type":"string"}`. | |
| interval_multiplier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds the useful EOD/historical granularity but says nothing about pagination via cursor, default interval behavior, or what happens when no ticker is supplied.
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?
One front-loaded sentence stating the core purpose, plus a clearly delimited pricing block. Nothing is wasted, though the pricing boilerplate dominates the visible text relative to the useful content.
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 tool has 6 parameters, zero required, and an output schema, yet the description gives no default semantics (default interval, behavior with no ticker, cursor pagination flow). An agent cannot tell from the description how to invoke it correctly with an empty argument set.
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 83%, so the schema already documents cursor, ticker, dates, and interval, and the description adds nothing param-specific. Baseline 3 applies since the schema carries the load.
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?
States a specific verb and resource ('Get end-of-day (EOD) historical price data for stocks'), which is clear. However, it never names or contrasts with the obvious sibling get_financial_prices_snapshot, leaving the historical-vs-snapshot distinction to inference.
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?
No guidance on when to use this tool versus alternatives such as get_financial_prices_snapshot or batch_quote. The word 'historical' implies usage but no explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_prices_snapshotGet Stock Price SnapshotBRead-onlyIdempotentInspect
Get the real-time price snapshot for a stock, including the current price, day change, and day change percent.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | The stock ticker symbol (e.g. AAPL, MSFT). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the safety profile is covered. The description usefully adds that the data is real-time and lists the returned fields, but says nothing about pricing/auth behavior beyond the injected billing note or about latency/freshness guarantees.
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 core sentence is front-loaded, tight, and waste-free, leading with the operation and then the payload. The appended pricing block is injected boilerplate rather than authored content and mildly dilutes the signal.
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?
An output schema exists, so return values need not be explained, and the description redundantly summarizes them anyway. However, the schema marks 'ticker' as optional (required list is empty) while the description implies a stock must be named, and no guidance resolves that ambiguity.
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 a single well-documented 'ticker' parameter, so the baseline is 3. The description adds no format, exchange-suffix, or casing guidance beyond what the schema already states.
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 gives a specific verb and resource ('Get the real-time price snapshot for a stock') and enumerates the returned fields (current price, day change, day change percent). It implicitly distinguishes itself from the sibling get_financial_prices by emphasizing 'snapshot' and 'real-time', but does not name or contrast that 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus get_financial_prices, get_financial_financial_metrics_snapshot, or the batch_quote/batch_use siblings. The word 'snapshot' hints at a lighter/faster alternative but the agent must infer that 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.
list_categoriesBrowse the AIsa catalogueARead-onlyInspect
The AIsa catalogue at a glance: categories, the servers in each, tool counts, and the dedicated endpoint to connect if you only need one category. Free. (AIsa-only: tool-router has no equivalent.) Use mcp.aisa.one/mcp?modules=<category> (or mcp.aisa.one/<category>/mcp) to have that category's tools listed directly instead of via search.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, closed-world operation. The description adds useful context beyond annotations by saying it returns categories, servers, tool counts, and the dedicated endpoint, and that it is free. It omits auth/rate-limit details, but those are less critical given the read-only 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 front-loaded with what the tool returns and is generally efficient. The parenthetical about tool-router and the endpoint URL add some density, but each part contributes usage or content context.
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 zero parameters, read-only annotations, and an output schema available, the description supplies enough context for correct invocation. It explains the catalogue contents and gives the category-specific endpoint alternative, leaving no critical gap for an agent.
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?
The tool has zero parameters, so parameter semantics are not a meaningful differentiator. The schema has no properties to explain, and the description does not need to document any inputs.
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 that this tool gives a catalogue overview: categories, servers per category, tool counts, and a dedicated endpoint. The resource is specific and recognizable, though sibling differentiation is only partial because it references 'tool-router' rather than the listed siblings like search/use.
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 gives a clear alternative: use the category-specific endpoint if you only need one category, rather than going via search. It also notes the tool is free and AIsa-only, but it does not explicitly state when to call list_categories instead of search or use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_financial_financials_search_line_itemsSearch Financial Line ItemsCDestructiveInspect
Search for specific financial metrics across income statements, balance sheets, and cash flow statements for a list of tickers.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description presents a read-only retrieval operation ('Search for specific financial metrics'), while the annotations declare readOnlyHint=false, destructiveHint=true, and idempotentHint=false. The read verb and the destructive/write annotation are opposite claims about the tool's side effects, and the description adds no context (auth needs, cost beyond the pricing note, side effects) to reconcile 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 substantive sentence is front-loaded and wastes no words. The trailing aisa-pricing block is injected boilerplate that does not help tool selection, but it is clearly delimited and does not obscure the purpose statement.
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?
An output schema exists, so return values need not be explained, and the nested body schema documents the individual fields. What is missing is the behavioral picture: the annotations imply a destructive/non-idempotent operation that the search framing never addresses, and there is no guidance on valid line-item identifiers or result limits for a nested-object search 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?
Top-level schema description coverage is 0% (the single 'body' parameter is undocumented), so the description must carry weight. It partially does: 'list of tickers' maps to tickers and 'specific financial metrics' maps to line_items, and the statement list maps to the domain. It says nothing about period (annual/quarterly/ttm) or limit, and gives no syntax for valid line-item names.
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 gives a specific verb ('Search') plus the resource ('specific financial metrics') and the statement scope (income statements, balance sheets, cash flow statements) and the input axis ('a list of tickers'). This is enough to separate it from the single-statement siblings like get_financial_financials_income_statements. It stops short of naming its closest sibling, post_financial_financials_search_screener, so it is not a 5.
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?
There is no when-to-use or when-not-to-use guidance, no prerequisites, and no alternatives named. The phrase 'for a list of tickers' hints at a multi-ticker use case but does not tell an agent when to pick this over post_financial_financials_search_screener or get_financial_financials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_financial_financials_search_screenerSearch Stock FinancialsCDestructiveInspect
Search for stocks by filtering across financial metrics from income statements, balance sheets, and cash flow statements.
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reads as a non-mutating query ('Search for stocks by filtering'), yet annotations declare readOnlyHint=false and destructiveHint=true. This is a direct conflict between the described behavior and the declared safety profile, matching the contradiction pattern. The description also omits rate/limit behavior and auth/pricing context beyond boilerplate.
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 core sentence is short, front-loaded, and waste-free, with the key scope stated immediately. The appended pricing boilerplate adds noise but is platform-injected rather than authored content.
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?
An output schema exists so return values need not be explained, but for a screener with a nested, filter-driven body the description supplies no usage guidance, no sibling routing, and no clarification of the annotation conflict. An agent cannot confidently select or invoke it from the description alone.
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?
Top-level schema coverage is 0% (the sole 'body' param is undocumented), so the description is expected to compensate but does not. It never explains the filters array, the operator model (gt/lt/gte/lte/eq vs 'in' for ticker/cik), or the limit parameter, adding only the field domain.
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?
States a specific verb ('Search') and resource ('stocks') and scopes the field domain (income statements, balance sheets, cash flow statements). It is clear but does not distinguish itself from the near-identical sibling 'post_financial_financials_search_line_items' or the 'get_financial_financials_*' endpoints.
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?
No when-to-use guidance, no prerequisites, and no named alternatives despite a crowded sibling set (search_line_items, get_financial_financial_metrics, get_financial_financials). The agent must infer routing entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch AIsa tools and agent-ready plansARead-onlyInspect
Discover AIsa tools and Plans for external data or actions. Skip tasks that only need supplied content or general knowledge. For multi-step tasks, search the full goal before decomposing it. Use English; put identifiers in known_fields. If has_full_schema=false, call batch_get_schema. Next call batch_quote, not batch_use. Do not search for standalone rewriting, translation, summarization, formatting, or calculations on supplied content. For one capability, use an atomic query. Select a matching capability, date window, and metric. A Plan may cover only part of the task; assess its purpose and follow next_steps_guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of additional direct tool candidates. | |
| query | Yes | Natural-language capability or task to discover. | |
| category | No | Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.) | |
| session_id | No | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. | |
| known_fields | No | Known values such as ticker, URL, provider, or identifier that improve retrieval. | |
| provider_filters | No | Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown. |
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | No | |
| tools | Yes | |
| search_id | Yes | |
| session_id | Yes | Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created. |
| retrieval_mode | No | |
| next_steps_guidance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds workflow behavior the annotations cannot: the has_full_schema flag gates a required batch_get_schema call, and the next step after search is batch_quote, not batch_use. It stops short of disclosing retrieval limits or catalog breadth that would push it to a 5.
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?
It is a dense run of imperatives rather than flowing prose, but each sentence carries a distinct rule (scope, language, workflow branch, negative cases, result interpretation) and the most important scoping guidance is front-loaded. Slightly more compression would help.
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 an output schema present, the description need not explain return values, and it correctly avoids doing so while still referencing the output fields that drive the workflow (has_full_schema, next_steps_guidance). A mutation-free, well-annotated search tool is adequately covered, though catalog scope ('AIsa-only', no external providers) could be stated more explicitly.
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 structured baseline is 3. The description adds genuine meaning beyond the schema by telling the agent to write the query in English and to place tickers, URLs, providers, or identifiers in known_fields, which is non-obvious routing guidance for a nested free-form object.
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 opens with a specific verb+resource: 'Discover AIsa tools and Plans for external data or actions.' It also separates this discovery step from the sibling execution tools by naming batch_get_schema, batch_quote, and batch_use and stating when each follows, so an agent can place it in the workflow without opening schemas.
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 gives explicit when-to-use ('tasks needing external data or actions'), when-not ('tasks that only need supplied content or general knowledge'; no standalone rewriting, translation, summarization, formatting, or calculations), and named alternatives (batch_get_schema when has_full_schema=false, batch_quote rather than batch_use). It also specifies query language and atomic-query style, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
useRun an AIsa operationCDestructiveInspect
deprecated, use batch_use instead
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | Arguments matching input_schema / arguments_schema | |
| search_id | No | search_id from the search that found this operation | |
| operation_id | Yes | operation_id as returned by search | |
| max_price_usd | No | Refuse the call before any spend if its quoted price is above this many USD |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the agent knows this is a state-changing, open-world operation. The description adds only the deprecation status and says nothing about what gets mutated, spend behavior (despite a max_price_usd param), or authorization needs.
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?
A single clause with zero waste; the deprecation notice and the replacement are front-loaded. It is terse by design for a deprecated endpoint, though it is under-specified rather than optimally efficient.
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?
Has an output schema and annotations, which reduces the burden, but a 4-parameter operation tool with a deprecation notice gives no information about what it executes or whether it remains functional. For an agent deciding between this and batch_use, the description is thin.
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 all four parameters (operation_id, arguments, search_id, max_price_usd) are already documented in the schema. The description adds no parameter meaning on top, so the baseline 3 applies.
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 never states what the tool does — no verb or resource. It only labels the tool as deprecated and points to a replacement, leaving the actual capability ('Run an AIsa operation' from the title) unexplained. An agent must infer the purpose from the title and schema alone.
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 explicitly routes the agent to the alternative ('use batch_use instead'), which is exactly the guidance needed for a deprecated tool. It doesn't explain when, if ever, this tool should still be called (e.g., during a migration window), so it stops short of a 5.
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.
3 tool updates
- Changed
get_financial_financial_metrics_snapshot1 field changed- added
Input schema / properties / marketAdded value: +{ + "enum": [ + "UK", + "US" + ], + "type": "string" +}
- Changed
get_financial_financials_balance_sheets1 field changed- added
Input schema / properties / marketAdded value: +{ + "enum": [ + "UK", + "US" + ], + "type": "string" +}
- Changed
get_financial_financials_income_statements1 field changed- added
Input schema / properties / marketAdded value: +{ + "enum": [ + "UK", + "US" + ], + "type": "string" +}
14 tool updates
- Added
account - Removed
get_details - Changed
get_financial_company_facts2 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The CIK of the company.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol."
- Changed
get_financial_filings5 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company.", + "type": "string" +} - added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / filing_typeAdded value: +{ + "description": "Filter by one or more filing types. Repeat the query parameter to pass multiple values (e.g. filing_type=10-Q&filing_type=10-K).", + "items": { + "enum": [ + "10-K", + "10-Q", + "20-F", + "6-K", + "8-K" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of filings to return (default: 10). This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.\n\nProvider reference (supplier schema): `{\"default\":10,\"minimum\":1,\"type\":\"integer\"}`." - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol."
- Changed
get_financial_financial_metrics2 fields changed- added
Input schema / properties / exchangeAdded value: +{ + "description": "The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's metrics. Price-based values (market cap, enterprise value, valuation ratios, dividend yield) are not yet available for UK tickers.", + "enum": [ + "LSE" + ], + "type": "string" +} - added
Input schema / properties / isinAdded value: +{ + "description": "The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`.", + "type": "string" +}
- Changed
get_financial_financial_metrics_snapshot4 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company. Can be used instead of ticker.", + "type": "string" +} - added
Input schema / properties / exchangeAdded value: +{ + "description": "The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's metrics. Price-based values (market cap, enterprise value, valuation ratios, dividend yield) are not yet available for UK tickers.", + "enum": [ + "LSE" + ], + "type": "string" +} - added
Input schema / properties / isinAdded value: +{ + "description": "The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol of the company."
- Changed
get_financial_financials_balance_sheets17 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company.", + "type": "string" +} - added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / exchangeAdded value: +{ + "description": "The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements.", + "enum": [ + "LSE" + ], + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / isinAdded value: +{ + "description": "The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`.", + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of balance sheets to return This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.\n\nProvider reference (supplier schema): `{\"format\":\"int32\",\"type\":\"integer\"}`." - added
Input schema / properties / period / descriptionAdded value: +"The time period of the balance sheets.\n\nProvider reference (supplier schema): `{\"enum\":[\"annual\",\"quarterly\",\"ttm\"],\"type\":\"string\"}`." - added
Input schema / properties / report_periodAdded value: +{ + "description": "Filter by exact report period date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_gtAdded value: +{ + "description": "Filter by report period greater than date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_gteAdded value: +{ + "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_ltAdded value: +{ + "description": "Filter by report period less than date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_lteAdded value: +{ + "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol. Required if cik or isin is not provided."
- Changed
get_financial_financials_income_statements17 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company.", + "type": "string" +} - added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / exchangeAdded value: +{ + "description": "The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements.", + "enum": [ + "LSE" + ], + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / isinAdded value: +{ + "description": "The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`.", + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of income statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.\n\nProvider reference (supplier schema): `{\"format\":\"int32\",\"type\":\"integer\"}`." - added
Input schema / properties / period / descriptionAdded value: +"The time period of the income statements.\n\nProvider reference (supplier schema): `{\"enum\":[\"annual\",\"quarterly\",\"ttm\"],\"type\":\"string\"}`." - added
Input schema / properties / report_periodAdded value: +{ + "description": "Filter by exact report period date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_gtAdded value: +{ + "description": "Filter by report period greater than date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_gteAdded value: +{ + "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_ltAdded value: +{ + "description": "Filter by report period less than date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / report_period_lteAdded value: +{ + "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol. Required if cik or isin is not provided."
- Changed
get_financial_insider_trades11 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact filing date in YYYY-MM-DD format.\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by filing date greater than this date (YYYY-MM-DD).\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by filing date greater than or equal to this date (YYYY-MM-DD).\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by filing date less than this date (YYYY-MM-DD).\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by filing date less than or equal to this date (YYYY-MM-DD).\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`.", + "type": "string" +} - added
Input schema / properties / form_typeAdded value: +{ + "description": "Filter by SEC form type: 4 for trades, 5 for annual statements (or their amendments 4/A, 5/A).", + "enum": [ + "4", + "4/A", + "5", + "5/A" + ], + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of transactions to return (default: 10). This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.\n\nProvider reference (supplier schema): `{\"default\":10,\"type\":\"integer\"}`." - added
Input schema / properties / nameAdded value: +{ + "description": "Filter by insider name (e.g., 'Jen Hsun Huang'). Use the /insider-trades/names endpoint to get available names for a ticker.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol of the company." - added
Input schema / properties / transaction_typeAdded value: +{ + "description": "Filter by transaction type (e.g., 'Open market sale', 'Gift'). Use the /insider-trades/transaction-types endpoint to get available types.", + "type": "string" +}
- Changed
get_financial_news3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of news articles to return (default: 5, max: 10). This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.\n\nProvider reference (supplier schema): `{\"default\":5,\"maximum\":10,\"type\":\"integer\"}`." - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol of the company. Omit for broad market news."
- Changed
get_financial_prices5 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / end_date / descriptionAdded value: +"The end date for the price data (format: YYYY-MM-DD).\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`." - added
Input schema / properties / interval / descriptionAdded value: +"The time interval for the price data.\n\nProvider reference (supplier schema): `{\"enum\":[\"day\",\"week\",\"month\",\"year\"],\"type\":\"string\"}`." - added
Input schema / properties / start_date / descriptionAdded value: +"The start date for the price data (format: YYYY-MM-DD).\n\nProvider reference (supplier schema): `{\"format\":\"date\",\"type\":\"string\"}`." - added
Input schema / properties / ticker / descriptionAdded value: +"The stock ticker symbol (e.g. AAPL, MSFT)."
- Changed
get_financial_prices_snapshot1 field changed- added
Input schema / properties / ticker / descriptionAdded value: +"The stock ticker symbol (e.g. AAPL, MSFT)."
- Changed
post_financial_financials_search_line_items7 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / bodyAdded value: +{ + "properties": { + "limit": { + "default": 1, + "description": "The maximum number of results to return.", + "minimum": 1, + "type": "integer" + }, + "line_items": { + "description": "An array of line items to apply to the search.", + "items": { + "description": "The financial metric to search for.", + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "period": { + "default": "ttm", + "description": "The time period for the financial data.", + "enum": [ + "annual", + "quarterly", + "ttm" + ], + "type": "string" + }, + "tickers": { + "description": "An array of tickers to apply to the search.", + "items": { + "description": "The tickers to search for.", + "type": "string" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "line_items", + "tickers" + ], + "type": "object" +} - removed
Input schema / properties / limitRemoved value: -{ - "default": 1, - "description": "The maximum number of results to return.", - "minimum": 1, - "type": "integer" -} - removed
Input schema / properties / line_itemsRemoved value: -{ - "description": "An array of line items to apply to the search.", - "items": { - "description": "The financial metric to search for.", - "type": "string" - }, - "minItems": 1, - "type": "array" -} - removed
Input schema / properties / periodRemoved value: -{ - "default": "ttm", - "description": "The time period for the financial data.", - "enum": [ - "annual", - "quarterly", - "ttm" - ], - "type": "string" -} - removed
Input schema / properties / tickersRemoved value: -{ - "description": "An array of tickers to apply to the search.", - "items": { - "description": "The tickers to search for.", - "type": "string" - }, - "minItems": 1, - "type": "array" -} - changed
Input schema / requiredPrevious value: -[ - "line_items", - "tickers" -]New value: +[ + "body" +]
- Changed
post_financial_financials_search_screener5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / bodyAdded value: +{ + "properties": { + "filters": { + "description": "An array of filter objects to apply to the search.", + "items": { + "properties": { + "field": { + "description": "The criteria to filter on. For financial metric fields, use 'gt', 'lt', 'gte', 'lte', 'eq' operators. For 'ticker' and 'cik' fields, use the 'in' operator to filter against multiple values.", + "type": "string" + }, + "operator": { + "description": "The comparison operator. The 'in' operator can only be used with a field value of 'ticker' or 'cik' and lets you filter against multiple values.", + "enum": [ + "gt", + "lt", + "gte", + "lte", + "eq", + "in" + ], + "type": "string" + }, + "value": { + "oneOf": [ + { + "description": "The value to compare against for single-value operators (gt, lt, gte, lte, eq)", + "type": "number" + }, + { + "description": "Array of ticker or cik values to compare against when using the 'in' operator", + "items": { + "type": "string" + }, + "type": "array" + } + ] + } + }, + "required": [ + "field", + "operator", + "value" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" + }, + "limit": { + "default": 10, + "description": "The maximum number of results to return.", + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "filters" + ], + "type": "object" +} - removed
Input schema / properties / filtersRemoved value: -{ - "description": "An array of filter objects to apply to the search.", - "items": { - "properties": { - "field": { - "description": "The criteria to filter on. For financial metric fields, use 'gt', 'lt', 'gte', 'lte', 'eq' operators. For 'ticker' and 'cik' fields, use the 'in' operator to filter against multiple values.", - "type": "string" - }, - "operator": { - "description": "The comparison operator. The 'in' operator can only be used with a field value of 'ticker' or 'cik' and lets you filter against multiple values.", - "enum": [ - "gt", - "lt", - "gte", - "lte", - "eq", - "in" - ], - "type": "string" - }, - "value": { - "oneOf": [ - { - "description": "The value to compare against for single-value operators (gt, lt, gte, lte, eq)", - "type": "number" - }, - { - "description": "Array of ticker or cik values to compare against when using the 'in' operator", - "items": { - "type": "string" - }, - "type": "array" - } - ] - } - }, - "required": [ - "field", - "operator", - "value" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" -} - removed
Input schema / properties / limitRemoved value: -{ - "default": 10, - "description": "The maximum number of results to return.", - "minimum": 1, - "type": "integer" -} - changed
Input schema / requiredPrevious value: -[ - "filters" -]New value: +[ + "body" +]
1 tool update
- Changed
post_financial_financials_search_screener2 fields changed- removed
Input schema / properties / filters / items / properties / value / anyOfRemoved value: -[ - { - "description": "The value to compare against for single-value operators (gt, lt, gte, lte, eq)", - "type": "number" - }, - { - "description": "Array of ticker or cik values to compare against when using the 'in' operator", - "items": { - "type": "string" - }, - "type": "array" - } -] - added
Input schema / properties / filters / items / properties / value / oneOfAdded value: +[ + { + "description": "The value to compare against for single-value operators (gt, lt, gte, lte, eq)", + "type": "number" + }, + { + "description": "Array of ticker or cik values to compare against when using the 'in' operator", + "items": { + "type": "string" + }, + "type": "array" + } +]
24 tool updates
- Added
batch_get_schema - Added
batch_quote - Changed
batch_use18 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / calls / descriptionRemoved value: -"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch" - added
Input schema / properties / calls / items / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - changed
Input schema / properties / calls / items / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / properties / calls / items / propertiesAdded value: +{ + "arguments": { + "additionalProperties": true, + "description": "Strictly schema-compliant arguments using the exact field names and types from this tool's arguments_schema.", + "type": "object" + }, + "call_id": { + "description": "Caller-chosen identifier unique within this batch.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "tool": { + "description": "Exact tool name returned by search or batch_get_schema. Never invent a name.", + "minLength": 1, + "type": "string" + } +} - added
Input schema / properties / calls / items / requiredAdded value: +[ + "call_id", + "tool", + "arguments" +] - added
Input schema / properties / calls / maxItemsAdded value: +20 - added
Input schema / properties / calls / minItemsAdded value: +1 - removed
Input schema / properties / max_price_usdRemoved value: -{ - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Per-call price cap applied to every item" -} - removed
Input schema / properties / search_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / search_id / defaultRemoved value: -null - changed
Input schema / properties / search_id / descriptionPrevious value: -"search_id from the search that found these operations"New value: +"Optional search correlation identifier returned by search." - added
Input schema / properties / search_id / typeAdded value: +"string" - added
Input schema / properties / session_idAdded value: +{ + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" +} - added
Output schema / $defsAdded value: +{ + "jsonValue": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/$defs/jsonValue" + }, + "type": "object" + }, + { + "items": { + "$ref": "#/$defs/jsonValue" + }, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "JSON value returned by the upstream tool." + } +} - added
Output schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / propertiesAdded value: +{ + "batch_id": { + "type": "string" + }, + "error_count": { + "minimum": 0, + "type": "integer" + }, + "next_steps_guidance": { + "description": "Deterministic next-step instructions derived from this result. Not an authorization grant.", + "items": { + "type": "string" + }, + "type": "array" + }, + "results": { + "items": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "call_id": { + "type": "string" + }, + "customer_cost_micros_usd": { + "description": "Actual customer charge settled by AIsaServices, in micro-USD. Omitted when the upstream response does not report it.", + "minimum": 0, + "type": "integer" + }, + "data": { + "$ref": "#/$defs/jsonValue" + }, + "error": { + "anyOf": [ + { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "message": { + "type": "string" + }, + "retryable": { + "type": "boolean" + }, + "status": { + "type": "integer" + }, + "type": { + "enum": [ + "validation", + "authentication", + "payment", + "permission", + "rate_limit", + "upstream", + "timeout", + "internal" + ], + "type": "string" + } + }, + "required": [ + "type", + "status", + "retryable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "request_id": { + "type": "string" + }, + "successful": { + "type": "boolean" + }, + "tool": { + "type": "string" + }, + "upstream_status": { + "description": "HTTP status returned by AIsaServices when a request was dispatched.", + "type": "integer" + } + }, + "required": [ + "call_id", + "tool", + "successful", + "request_id" + ], + "type": "object" + }, + "type": "array" + }, + "session_id": { + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" + }, + "success_count": { + "minimum": 0, + "type": "integer" + }, + "total_count": { + "minimum": 1, + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "session_id", + "batch_id", + "total_count", + "success_count", + "error_count", + "results", + "next_steps_guidance" +]
- Changed
get_details13 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / argumentsRemoved value: -{ - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null, - "description": "The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them." -} - added
Input schema / properties / include_arguments_schemaAdded value: +{ + "default": true, + "description": "Return the complete arguments_schema. Defaults to true.", + "type": "boolean" +} - changed
Input schema / properties / include_documentation / descriptionPrevious value: -"Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged."New value: +"Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support." - added
Input schema / properties / include_response_schemaAdded value: +{ + "default": false, + "description": "Return the complete response_schema. Defaults to false.", + "type": "boolean" +} - removed
Input schema / properties / operation_idRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "One operation_id from search" -} - removed
Input schema / properties / operation_idsRemoved value: -{ - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Up to 20 operation_ids, for a batch" -} - added
Input schema / properties / session_idAdded value: +{ + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" +} - added
Input schema / properties / toolsAdded value: +{ + "description": "Exact tool names returned by search whose complete contracts are needed. Never invent tool names.", + "items": { + "minLength": 1, + "pattern": "^\\S(?:.*\\S)?$", + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array", + "uniqueItems": true +} - removed
Input schema / properties / with_quoteRemoved value: -{ - "default": true, - "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.", - "type": "boolean" -} - added
Input schema / requiredAdded value: +[ + "tools" +] - added
Output schema / propertiesAdded value: +{ + "error_count": { + "type": "integer" + }, + "next_steps_guidance": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "session_id": { + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9_-]{1,128}$", + "type": "string" + }, + "success_count": { + "type": "integer" + }, + "tools": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "arguments_schema": { + "additionalProperties": true, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ] + }, + "canonical_operation_id": { + "type": "string" + }, + "documentation": { + "additionalProperties": true, + "type": "object" + }, + "error": { + "additionalProperties": false, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ], + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ] + }, + "execution_supported": { + "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.", + "type": "boolean" + }, + "execution_unsupported_reason": { + "description": "Why execution and quoting remain unavailable through this router.", + "type": "string" + }, + "idempotent": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "boolean" + } + ] + }, + "known_pitfalls": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "read_only": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "boolean" + } + ] + }, + "response_schema": { + "additionalProperties": true, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ] + }, + "side_effects": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "successful": { + "type": "boolean" + } + }, + "required": [ + "successful" + ], + "type": "object" + }, + "type": "object" + }, + "total_count": { + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "error_count", + "next_steps_guidance", + "session_id", + "success_count", + "tools", + "total_count" +]
- Changed
get_financial_analyst_estimates7 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of estimates to return (max 3 for annual, 12 for quarterly)." - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / period / descriptionRemoved value: -"The period to get analyst estimates for. Use the /analyst-estimates/periods endpoint to get a list of available periods. Defaults to 'annual'." - removed
Input schema / properties / period / enumRemoved value: -[ - "annual", - "quarterly" -] - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker to get analyst estimates for." - changed
Input schema / requiredPrevious value: -[ - "ticker" -]New value: +[] - changed
Output schema / (root)Previous value: -{ - "additionalProperties": true, - "type": "object" -}New value: +null
- Changed
get_financial_company_facts2 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The CIK of the company.", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol."
- Changed
get_financial_earnings3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "default": 1, + "description": "Number of most-recent **report periods** worth of filings to return, sorted by `(report_period DESC, filing_date ASC)`. The number of entries returned may exceed `limit` when a recent period has both an 8-K and a 10-Q / 10-K. Values above 40 are clamped to 40. Non-positive or non-integer values return 400. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.", + "maximum": 40, + "minimum": 1, + "type": "integer" +} - changed
Input schema / properties / ticker / descriptionPrevious value: -"The ticker symbol."New value: +"The ticker symbol (e.g. `AAPL`)."
- Changed
get_financial_filings7 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company.", - "type": "string" -} - removed
Input schema / properties / filing_typeRemoved value: -{ - "description": "Filter by one or more filing types. Repeat the query parameter to pass multiple values (e.g. filing_type=10-Q&filing_type=10-K).", - "items": { - "enum": [ - "10-K", - "10-Q", - "8-K", - "20-F", - "6-K" - ], - "type": "string" - }, - "type": "array" -} - removed
Input schema / properties / limit / defaultRemoved value: -10 - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of filings to return (default: 10)." - removed
Input schema / properties / limit / minimumRemoved value: -1 - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol."
- Changed
get_financial_filings_items1 field changed- changed
Input schema / requiredPrevious value: -[ - "ticker", - "filing_type", - "year" -]New value: +[ + "filing_type", + "ticker", + "year" +]
- Changed
get_financial_financial_metrics7 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of results to return."New value: +"The maximum number of results to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`."
- Changed
get_financial_financial_metrics_snapshot2 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company. Can be used instead of ticker.", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol of the company."
- Changed
get_financial_financials10 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / exchangeAdded value: +{ + "description": "The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements.", + "enum": [ + "LSE" + ], + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / isinAdded value: +{ + "description": "The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`.", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of financial statements to return."New value: +"The maximum number of financial statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`." - changed
Input schema / properties / ticker / descriptionPrevious value: -"The ticker symbol. Required if cik is not provided."New value: +"The ticker symbol. Required if cik or isin is not provided."
- Changed
get_financial_financials_balance_sheets13 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company.", - "type": "string" -} - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of balance sheets to return" - removed
Input schema / properties / limit / formatRemoved value: -"int32" - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / period / descriptionRemoved value: -"The time period of the balance sheets." - removed
Input schema / properties / period / enumRemoved value: -[ - "annual", - "quarterly", - "ttm" -] - removed
Input schema / properties / report_periodRemoved value: -{ - "description": "Filter by exact report period date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gtRemoved value: -{ - "description": "Filter by report period greater than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gteRemoved value: -{ - "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_ltRemoved value: -{ - "description": "Filter by report period less than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_lteRemoved value: -{ - "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol. Required if cik is not provided." - changed
Input schema / requiredPrevious value: -[ - "period" -]New value: +[]
- Changed
get_financial_financials_cash_flow_statements10 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / exchangeAdded value: +{ + "description": "The exchange the ticker is listed on. Omit for US listings. Use `LSE` for the London Stock Exchange; any ticker of the company, including a second share class, returns the company's statements.", + "enum": [ + "LSE" + ], + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / isinAdded value: +{ + "description": "The ISIN (International Securities Identification Number) of a non-US listing. An alternative to `ticker` and `exchange`.", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of cash flow statements to return."New value: +"The maximum number of cash flow statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`." - changed
Input schema / properties / ticker / descriptionPrevious value: -"The ticker symbol. Required if cik is not provided."New value: +"The ticker symbol. Required if cik or isin is not provided."
- Changed
get_financial_financials_income_statements13 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company.", - "type": "string" -} - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of income statements to return." - removed
Input schema / properties / limit / formatRemoved value: -"int32" - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / period / descriptionRemoved value: -"The time period of the income statements." - removed
Input schema / properties / period / enumRemoved value: -[ - "annual", - "quarterly", - "ttm" -] - removed
Input schema / properties / report_periodRemoved value: -{ - "description": "Filter by exact report period date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gtRemoved value: -{ - "description": "Filter by report period greater than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gteRemoved value: -{ - "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_ltRemoved value: -{ - "description": "Filter by report period less than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_lteRemoved value: -{ - "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol. Required if cik is not provided." - changed
Input schema / requiredPrevious value: -[ - "period" -]New value: +[]
- Changed
get_financial_insider_trades12 fields changed- removed
Input schema / properties / filing_dateRemoved value: -{ - "description": "Filter by exact filing date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gtRemoved value: -{ - "description": "Filter by filing date greater than this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gteRemoved value: -{ - "description": "Filter by filing date greater than or equal to this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_ltRemoved value: -{ - "description": "Filter by filing date less than this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_lteRemoved value: -{ - "description": "Filter by filing date less than or equal to this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / limit / defaultRemoved value: -10 - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of transactions to return (default: 10)." - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / nameRemoved value: -{ - "description": "Filter by insider name (e.g., 'Jen Hsun Huang'). Use the /insider-trades/names endpoint to get available names for a ticker.", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol of the company." - removed
Input schema / properties / transaction_typeRemoved value: -{ - "description": "Filter by transaction type (e.g., 'Open market sale', 'Gift'). Use the /insider-trades/transaction-types endpoint to get available types.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "ticker" -]New value: +[]
- Changed
get_financial_macro_interest_rates5 fields changed- changed
Input schema / properties / bank / descriptionPrevious value: -"The bank whose interest rates to return. Use the /macro/interest-rates/banks endpoint to get a list of available banks. Case-sensitive: must be uppercase. A lowercase code returns HTTP 404 \"No data found\", which reads like an empty result rather than a bad argument."New value: +"The central bank code, e.g. FED, ECB, BOJ. Use the /macro/interest-rates/banks endpoint to get the list of available banks." - removed
Input schema / properties / bank / enumRemoved value: -[ - "FED", - "ECB", - "BOJ", - "BOE", - "BOC", - "RBA", - "PBOC", - "SNB", - "RBI", - "BOK" -] - added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - changed
Input schema / properties / end_date / descriptionPrevious value: -"The end date of the interest rates to return in YYYY-MM-DD format."New value: +"The last date to return, inclusive, in YYYY-MM-DD format. Defaults to today." - changed
Input schema / properties / start_date / descriptionPrevious value: -"The start date of the interest rates to return in YYYY-MM-DD format."New value: +"The first date to return, inclusive, in YYYY-MM-DD format. Defaults to five years before end_date when both dates are omitted; omit it with an end_date to get all available history through that date."
- Changed
get_financial_macro_interest_rates_snapshot2 fields changed- changed
Input schema / properties / bank / descriptionPrevious value: -"Optional central bank code (e.g., FED, ECB, BOJ). AIsa also accepts this endpoint without `bank` and returns the latest snapshot for all major central banks. Case-sensitive: must be uppercase. A lowercase code returns HTTP 404 \"No data found\", which reads like an empty result rather than a bad argument."New value: +"Optional central bank code (e.g., FED, ECB, BOJ) to return one bank only. Use the /macro/interest-rates/banks endpoint to get a list of available banks." - removed
Input schema / properties / bank / enumRemoved value: -[ - "FED", - "ECB", - "BOJ", - "BOE", - "BOC", - "RBA", - "PBOC", - "SNB", - "RBI", - "BOK" -]
- Changed
get_financial_news5 fields changed- removed
Input schema / properties / limit / defaultRemoved value: -5 - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of news articles to return (default: 5, max: 10)." - removed
Input schema / properties / limit / maximumRemoved value: -10 - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol of the company. Omit for broad market news."
- Changed
get_financial_prices9 fields changed- removed
Input schema / properties / end_date / descriptionRemoved value: -"The end date for the price data (format: YYYY-MM-DD)." - removed
Input schema / properties / end_date / formatRemoved value: -"date" - removed
Input schema / properties / interval / descriptionRemoved value: -"The time interval for the price data." - removed
Input schema / properties / interval / enumRemoved value: -[ - "day", - "week", - "month", - "year" -] - added
Input schema / properties / interval_multiplierAdded value: +{ + "type": "string" +} - removed
Input schema / properties / start_date / descriptionRemoved value: -"The start date for the price data (format: YYYY-MM-DD)." - removed
Input schema / properties / start_date / formatRemoved value: -"date" - removed
Input schema / properties / ticker / descriptionRemoved value: -"The stock ticker symbol (e.g. AAPL, MSFT)." - changed
Input schema / requiredPrevious value: -[ - "ticker", - "interval", - "start_date", - "end_date" -]New value: +[]
- Changed
get_financial_prices_snapshot2 fields changed- removed
Input schema / properties / ticker / descriptionRemoved value: -"The stock ticker symbol (e.g. AAPL, MSFT)." - changed
Input schema / requiredPrevious value: -[ - "ticker" -]New value: +[]
- Changed
post_financial_financials_search_screener6 fields changed- removed
Input schema / properties / currencyRemoved value: -{ - "description": "The currency of the financial data.", - "enum": [ - "USD", - "EUR", - "GBP", - "JPY", - "CHF", - "AUD", - "CAD", - "SEK" - ], - "type": "string" -} - removed
Input schema / properties / historicalRemoved value: -{ - "default": false, - "description": "Whether to return historical financial data.", - "type": "boolean" -} - changed
Input schema / properties / limit / defaultPrevious value: -100New value: +10 - removed
Input schema / properties / limit / maximumRemoved value: -100 - removed
Input schema / properties / order_byRemoved value: -{ - "default": "ticker", - "description": "The field to order the results by. Use -field to order in descending order.", - "enum": [ - "ticker", - "-ticker", - "report_period", - "-report_period" - ], - "type": "string" -} - removed
Input schema / properties / periodRemoved value: -{ - "default": "ttm", - "description": "The time period for the financial data.", - "enum": [ - "annual", - "quarterly", - "ttm" - ], - "type": "string" -}
- Changed
search17 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / category / anyOfRemoved value: -[ - { - "enum": [ - "seo", - "finance", - "social", - "search", - "sales", - "mail" - ], - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / category / defaultRemoved value: -null - changed
Input schema / properties / category / descriptionPrevious value: -"Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything."New value: +"Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.)" - added
Input schema / properties / category / enumAdded value: +[ + "seo", + "finance", + "social", + "search", + "sales", + "mail" +] - added
Input schema / properties / category / typeAdded value: +"string" - added
Input schema / properties / known_fieldsAdded value: +{ + "additionalProperties": true, + "default": {}, + "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.", + "type": "object" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum candidates, 1-10"New value: +"Maximum number of additional direct tool candidates." - added
Input schema / properties / limit / maximumAdded value: +20 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / provider_filtersAdded value: +{ + "default": [], + "description": "Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown.", + "items": { + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true +} - changed
Input schema / properties / query / descriptionPrevious value: -"What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best."New value: +"Natural-language capability or task to discover." - added
Input schema / properties / query / maxLengthAdded value: +2000 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / session_idAdded value: +{ + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" +} - added
Output schema / propertiesAdded value: +{ + "next_steps_guidance": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "plan": { + "additionalProperties": false, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ], + "properties": { + "canonical_use_case": { + "type": "string" + }, + "description": { + "type": "string" + }, + "known_pitfalls": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "plan_ref": { + "type": "string" + }, + "primary_tools": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "recommended_steps": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "related_tools": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "canonical_use_case", + "description", + "known_pitfalls", + "plan_ref", + "primary_tools", + "recommended_steps", + "related_tools" + ] + }, + "retrieval_mode": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + } + ] + }, + "search_id": { + "type": "string" + }, + "session_id": { + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9_-]{1,128}$", + "type": "string" + }, + "tools": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "additionalProperties": false, + "properties": { + "arguments_schema": { + "additionalProperties": true, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ] + }, + "description": { + "type": "string" + }, + "execution_supported": { + "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.", + "type": "boolean" + }, + "execution_unsupported_reason": { + "description": "Why execution and quoting remain unavailable through this router.", + "type": "string" + }, + "has_full_schema": { + "type": "boolean" + }, + "match_reasons": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "price": { + "additionalProperties": true, + "type": "object" + }, + "retrieval_debug": { + "additionalProperties": false, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ], + "properties": { + "fused_rank": { + "type": "integer" + }, + "fused_score": { + "type": "number" + }, + "lexical_rank": { + "type": "integer" + }, + "lexical_score": { + "type": "number" + }, + "rerank_admission_rank": { + "type": "integer" + }, + "rerank_rank": { + "type": "integer" + }, + "rerank_score": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "number" + } + ] + }, + "runtime_availability": { + "type": "string" + }, + "vector_view_ranks": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "vector_view_scores": { + "additionalProperties": { + "type": "number" + }, + "type": "object" + } + }, + "required": [ + "fused_rank", + "fused_score", + "lexical_rank", + "lexical_score", + "rerank_admission_rank", + "rerank_rank", + "runtime_availability", + "vector_view_ranks", + "vector_view_scores" + ] + }, + "summary": { + "type": "string" + }, + "tool": { + "type": "string" + } + }, + "required": [ + "description", + "has_full_schema", + "price", + "summary", + "tool" + ], + "type": "object" + } + } +} - added
Output schema / requiredAdded value: +[ + "next_steps_guidance", + "search_id", + "session_id", + "tools" +]
- Changed
use1 field changed- changed
Input schema / properties / max_price_usd / descriptionPrevious value: -"Refuse the call before any spend if it would cost more than this many USD"New value: +"Refuse the call before any spend if its quoted price is above this many USD"
24 tool updates
- Removed
batch_get_schema - Removed
batch_quote - Changed
batch_use18 fields changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema" - added
Input schema / properties / calls / descriptionAdded value: +"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch" - removed
Input schema / properties / calls / items / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema" - changed
Input schema / properties / calls / items / additionalPropertiesPrevious value: -falseNew value: +true - removed
Input schema / properties / calls / items / propertiesRemoved value: -{ - "arguments": { - "additionalProperties": true, - "description": "Strictly schema-compliant arguments using the exact field names and types from this tool's arguments_schema.", - "type": "object" - }, - "call_id": { - "description": "Caller-chosen identifier unique within this batch.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "tool": { - "description": "Exact tool name returned by search or batch_get_schema. Never invent a name.", - "minLength": 1, - "type": "string" - } -} - removed
Input schema / properties / calls / items / requiredRemoved value: -[ - "call_id", - "tool", - "arguments" -] - removed
Input schema / properties / calls / maxItemsRemoved value: -20 - removed
Input schema / properties / calls / minItemsRemoved value: -1 - added
Input schema / properties / max_price_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Per-call price cap applied to every item" +} - added
Input schema / properties / search_id / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / search_id / defaultAdded value: +null - changed
Input schema / properties / search_id / descriptionPrevious value: -"Optional search correlation identifier returned by search."New value: +"search_id from the search that found these operations" - removed
Input schema / properties / search_id / typeRemoved value: -"string" - removed
Input schema / properties / session_idRemoved value: -{ - "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", - "maxLength": 128, - "pattern": "^[A-Za-z0-9_-]*$", - "type": "string" -} - removed
Output schema / $defsRemoved value: -{ - "jsonValue": { - "anyOf": [ - { - "additionalProperties": { - "$ref": "#/$defs/jsonValue" - }, - "type": "object" - }, - { - "items": { - "$ref": "#/$defs/jsonValue" - }, - "type": "array" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "JSON value returned by the upstream tool." - } -} - removed
Output schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema" - removed
Output schema / propertiesRemoved value: -{ - "batch_id": { - "type": "string" - }, - "error_count": { - "minimum": 0, - "type": "integer" - }, - "next_steps_guidance": { - "description": "Deterministic next-step instructions derived from this result. Not an authorization grant.", - "items": { - "type": "string" - }, - "type": "array" - }, - "results": { - "items": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "properties": { - "call_id": { - "type": "string" - }, - "customer_cost_micros_usd": { - "description": "Actual customer charge settled by AIsaServices, in micro-USD. Omitted when the upstream response does not report it.", - "minimum": 0, - "type": "integer" - }, - "data": { - "$ref": "#/$defs/jsonValue" - }, - "error": { - "anyOf": [ - { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "retryable": { - "type": "boolean" - }, - "status": { - "type": "integer" - }, - "type": { - "enum": [ - "validation", - "authentication", - "payment", - "permission", - "rate_limit", - "upstream", - "timeout", - "internal" - ], - "type": "string" - } - }, - "required": [ - "type", - "status", - "retryable" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "request_id": { - "type": "string" - }, - "successful": { - "type": "boolean" - }, - "tool": { - "type": "string" - }, - "upstream_status": { - "description": "HTTP status returned by AIsaServices when a request was dispatched.", - "type": "integer" - } - }, - "required": [ - "call_id", - "tool", - "successful", - "request_id" - ], - "type": "object" - }, - "type": "array" - }, - "session_id": { - "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", - "maxLength": 128, - "minLength": 1, - "pattern": "^[A-Za-z0-9_-]*$", - "type": "string" - }, - "success_count": { - "minimum": 0, - "type": "integer" - }, - "total_count": { - "minimum": 1, - "type": "integer" - } -} - removed
Output schema / requiredRemoved value: -[ - "session_id", - "batch_id", - "total_count", - "success_count", - "error_count", - "results", - "next_steps_guidance" -]
- Changed
get_details13 fields changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema" - added
Input schema / properties / argumentsAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them." +} - removed
Input schema / properties / include_arguments_schemaRemoved value: -{ - "default": true, - "description": "Return the complete arguments_schema. Defaults to true.", - "type": "boolean" -} - changed
Input schema / properties / include_documentation / descriptionPrevious value: -"Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support."New value: +"Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged." - removed
Input schema / properties / include_response_schemaRemoved value: -{ - "default": false, - "description": "Return the complete response_schema. Defaults to false.", - "type": "boolean" -} - added
Input schema / properties / operation_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "One operation_id from search" +} - added
Input schema / properties / operation_idsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Up to 20 operation_ids, for a batch" +} - removed
Input schema / properties / session_idRemoved value: -{ - "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", - "maxLength": 128, - "pattern": "^[A-Za-z0-9_-]*$", - "type": "string" -} - removed
Input schema / properties / toolsRemoved value: -{ - "description": "Exact tool names returned by search whose complete contracts are needed. Never invent tool names.", - "items": { - "minLength": 1, - "pattern": "^\\S(?:.*\\S)?$", - "type": "string" - }, - "maxItems": 20, - "minItems": 1, - "type": "array", - "uniqueItems": true -} - added
Input schema / properties / with_quoteAdded value: +{ + "default": true, + "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.", + "type": "boolean" +} - removed
Input schema / requiredRemoved value: -[ - "tools" -] - removed
Output schema / propertiesRemoved value: -{ - "error_count": { - "type": "integer" - }, - "next_steps_guidance": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "session_id": { - "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", - "maxLength": 128, - "minLength": 1, - "pattern": "^[A-Za-z0-9_-]{1,128}$", - "type": "string" - }, - "success_count": { - "type": "integer" - }, - "tools": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "arguments_schema": { - "additionalProperties": true, - "anyOf": [ - { - "type": "null" - }, - { - "type": "object" - } - ] - }, - "canonical_operation_id": { - "type": "string" - }, - "documentation": { - "additionalProperties": true, - "type": "object" - }, - "error": { - "additionalProperties": false, - "anyOf": [ - { - "type": "null" - }, - { - "type": "object" - } - ], - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ] - }, - "execution_supported": { - "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.", - "type": "boolean" - }, - "execution_unsupported_reason": { - "description": "Why execution and quoting remain unavailable through this router.", - "type": "string" - }, - "idempotent": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "boolean" - } - ] - }, - "known_pitfalls": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "read_only": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "boolean" - } - ] - }, - "response_schema": { - "additionalProperties": true, - "anyOf": [ - { - "type": "null" - }, - { - "type": "object" - } - ] - }, - "side_effects": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "successful": { - "type": "boolean" - } - }, - "required": [ - "successful" - ], - "type": "object" - }, - "type": "object" - }, - "total_count": { - "type": "integer" - } -} - removed
Output schema / requiredRemoved value: -[ - "error_count", - "next_steps_guidance", - "session_id", - "success_count", - "tools", - "total_count" -]
- Changed
get_financial_analyst_estimates7 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of estimates to return (max 3 for annual, 12 for quarterly)." - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / period / descriptionAdded value: +"The period to get analyst estimates for. Use the /analyst-estimates/periods endpoint to get a list of available periods. Defaults to 'annual'." - added
Input schema / properties / period / enumAdded value: +[ + "annual", + "quarterly" +] - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker to get analyst estimates for." - changed
Input schema / requiredPrevious value: -[]New value: +[ + "ticker" +] - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
- Changed
get_financial_company_facts2 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The CIK of the company.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol."
- Changed
get_financial_earnings3 fields changed- removed
Input schema / properties / cursorRemoved value: -{ - "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", - "type": "string" -} - removed
Input schema / properties / limitRemoved value: -{ - "default": 1, - "description": "Number of most-recent **report periods** worth of filings to return, sorted by `(report_period DESC, filing_date ASC)`. The number of entries returned may exceed `limit` when a recent period has both an 8-K and a 10-Q / 10-K. Values above 40 are clamped to 40. Non-positive or non-integer values return 400. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.", - "maximum": 40, - "minimum": 1, - "type": "integer" -} - changed
Input schema / properties / ticker / descriptionPrevious value: -"The ticker symbol (e.g. `AAPL`)."New value: +"The ticker symbol."
- Changed
get_financial_filings7 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company.", + "type": "string" +} - added
Input schema / properties / filing_typeAdded value: +{ + "description": "Filter by one or more filing types. Repeat the query parameter to pass multiple values (e.g. filing_type=10-Q&filing_type=10-K).", + "items": { + "enum": [ + "10-K", + "10-Q", + "8-K", + "20-F", + "6-K" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / limit / defaultAdded value: +10 - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of filings to return (default: 10)." - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol."
- Changed
get_financial_filings_items1 field changed- changed
Input schema / requiredPrevious value: -[ - "filing_type", - "ticker", - "year" -]New value: +[ + "ticker", + "filing_type", + "year" +]
- Changed
get_financial_financial_metrics7 fields changed- removed
Input schema / properties / cursorRemoved value: -{ - "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", - "type": "string" -} - removed
Input schema / properties / filing_dateRemoved value: -{ - "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gtRemoved value: -{ - "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gteRemoved value: -{ - "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_ltRemoved value: -{ - "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_lteRemoved value: -{ - "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of results to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`."New value: +"The maximum number of results to return."
- Changed
get_financial_financial_metrics_snapshot2 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company. Can be used instead of ticker.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol of the company."
- Changed
get_financial_financials7 fields changed- removed
Input schema / properties / cursorRemoved value: -{ - "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", - "type": "string" -} - removed
Input schema / properties / filing_dateRemoved value: -{ - "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gtRemoved value: -{ - "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gteRemoved value: -{ - "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_ltRemoved value: -{ - "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_lteRemoved value: -{ - "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of financial statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`."New value: +"The maximum number of financial statements to return."
- Changed
get_financial_financials_balance_sheets13 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company.", + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of balance sheets to return" - added
Input schema / properties / limit / formatAdded value: +"int32" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / period / descriptionAdded value: +"The time period of the balance sheets." - added
Input schema / properties / period / enumAdded value: +[ + "annual", + "quarterly", + "ttm" +] - added
Input schema / properties / report_periodAdded value: +{ + "description": "Filter by exact report period date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_gtAdded value: +{ + "description": "Filter by report period greater than date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_gteAdded value: +{ + "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_ltAdded value: +{ + "description": "Filter by report period less than date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_lteAdded value: +{ + "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol. Required if cik is not provided." - changed
Input schema / requiredPrevious value: -[]New value: +[ + "period" +]
- Changed
get_financial_financials_cash_flow_statements7 fields changed- removed
Input schema / properties / cursorRemoved value: -{ - "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", - "type": "string" -} - removed
Input schema / properties / filing_dateRemoved value: -{ - "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gtRemoved value: -{ - "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gteRemoved value: -{ - "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_ltRemoved value: -{ - "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_lteRemoved value: -{ - "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", - "format": "date", - "type": "string" -} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of cash flow statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`."New value: +"The maximum number of cash flow statements to return."
- Changed
get_financial_financials_income_statements13 fields changed- added
Input schema / properties / cikAdded value: +{ + "description": "The Central Index Key (CIK) of the company.", + "type": "string" +} - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of income statements to return." - added
Input schema / properties / limit / formatAdded value: +"int32" - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / period / descriptionAdded value: +"The time period of the income statements." - added
Input schema / properties / period / enumAdded value: +[ + "annual", + "quarterly", + "ttm" +] - added
Input schema / properties / report_periodAdded value: +{ + "description": "Filter by exact report period date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_gtAdded value: +{ + "description": "Filter by report period greater than date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_gteAdded value: +{ + "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_ltAdded value: +{ + "description": "Filter by report period less than date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / report_period_lteAdded value: +{ + "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol. Required if cik is not provided." - changed
Input schema / requiredPrevious value: -[]New value: +[ + "period" +]
- Changed
get_financial_insider_trades12 fields changed- added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact filing date in YYYY-MM-DD format.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by filing date greater than this date (YYYY-MM-DD).", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by filing date greater than or equal to this date (YYYY-MM-DD).", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by filing date less than this date (YYYY-MM-DD).", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by filing date less than or equal to this date (YYYY-MM-DD).", + "format": "date", + "type": "string" +} - added
Input schema / properties / limit / defaultAdded value: +10 - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of transactions to return (default: 10)." - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / nameAdded value: +{ + "description": "Filter by insider name (e.g., 'Jen Hsun Huang'). Use the /insider-trades/names endpoint to get available names for a ticker.", + "type": "string" +} - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol of the company." - added
Input schema / properties / transaction_typeAdded value: +{ + "description": "Filter by transaction type (e.g., 'Open market sale', 'Gift'). Use the /insider-trades/transaction-types endpoint to get available types.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[]New value: +[ + "ticker" +]
- Changed
get_financial_macro_interest_rates5 fields changed- changed
Input schema / properties / bank / descriptionPrevious value: -"The central bank code, e.g. FED, ECB, BOJ. Use the /macro/interest-rates/banks endpoint to get the list of available banks."New value: +"The bank whose interest rates to return. Use the /macro/interest-rates/banks endpoint to get a list of available banks. Case-sensitive: must be uppercase. A lowercase code returns HTTP 404 \"No data found\", which reads like an empty result rather than a bad argument." - added
Input schema / properties / bank / enumAdded value: +[ + "FED", + "ECB", + "BOJ", + "BOE", + "BOC", + "RBA", + "PBOC", + "SNB", + "RBI", + "BOK" +] - removed
Input schema / properties / cursorRemoved value: -{ - "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", - "type": "string" -} - changed
Input schema / properties / end_date / descriptionPrevious value: -"The last date to return, inclusive, in YYYY-MM-DD format. Defaults to today."New value: +"The end date of the interest rates to return in YYYY-MM-DD format." - changed
Input schema / properties / start_date / descriptionPrevious value: -"The first date to return, inclusive, in YYYY-MM-DD format. Defaults to five years before end_date when both dates are omitted; omit it with an end_date to get all available history through that date."New value: +"The start date of the interest rates to return in YYYY-MM-DD format."
- Changed
get_financial_macro_interest_rates_snapshot2 fields changed- changed
Input schema / properties / bank / descriptionPrevious value: -"Optional central bank code (e.g., FED, ECB, BOJ) to return one bank only. Use the /macro/interest-rates/banks endpoint to get a list of available banks."New value: +"Optional central bank code (e.g., FED, ECB, BOJ). AIsa also accepts this endpoint without `bank` and returns the latest snapshot for all major central banks. Case-sensitive: must be uppercase. A lowercase code returns HTTP 404 \"No data found\", which reads like an empty result rather than a bad argument." - added
Input schema / properties / bank / enumAdded value: +[ + "FED", + "ECB", + "BOJ", + "BOE", + "BOC", + "RBA", + "PBOC", + "SNB", + "RBI", + "BOK" +]
- Changed
get_financial_news5 fields changed- added
Input schema / properties / limit / defaultAdded value: +5 - added
Input schema / properties / limit / descriptionAdded value: +"The maximum number of news articles to return (default: 5, max: 10)." - added
Input schema / properties / limit / maximumAdded value: +10 - changed
Input schema / properties / limit / typePrevious value: -"string"New value: +"integer" - added
Input schema / properties / ticker / descriptionAdded value: +"The ticker symbol of the company. Omit for broad market news."
- Changed
get_financial_prices9 fields changed- added
Input schema / properties / end_date / descriptionAdded value: +"The end date for the price data (format: YYYY-MM-DD)." - added
Input schema / properties / end_date / formatAdded value: +"date" - added
Input schema / properties / interval / descriptionAdded value: +"The time interval for the price data." - added
Input schema / properties / interval / enumAdded value: +[ + "day", + "week", + "month", + "year" +] - removed
Input schema / properties / interval_multiplierRemoved value: -{ - "type": "string" -} - added
Input schema / properties / start_date / descriptionAdded value: +"The start date for the price data (format: YYYY-MM-DD)." - added
Input schema / properties / start_date / formatAdded value: +"date" - added
Input schema / properties / ticker / descriptionAdded value: +"The stock ticker symbol (e.g. AAPL, MSFT)." - changed
Input schema / requiredPrevious value: -[]New value: +[ + "ticker", + "interval", + "start_date", + "end_date" +]
- Changed
get_financial_prices_snapshot2 fields changed- added
Input schema / properties / ticker / descriptionAdded value: +"The stock ticker symbol (e.g. AAPL, MSFT)." - changed
Input schema / requiredPrevious value: -[]New value: +[ + "ticker" +]
- Changed
post_financial_financials_search_screener6 fields changed- added
Input schema / properties / currencyAdded value: +{ + "description": "The currency of the financial data.", + "enum": [ + "USD", + "EUR", + "GBP", + "JPY", + "CHF", + "AUD", + "CAD", + "SEK" + ], + "type": "string" +} - added
Input schema / properties / historicalAdded value: +{ + "default": false, + "description": "Whether to return historical financial data.", + "type": "boolean" +} - changed
Input schema / properties / limit / defaultPrevious value: -10New value: +100 - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / order_byAdded value: +{ + "default": "ticker", + "description": "The field to order the results by. Use -field to order in descending order.", + "enum": [ + "ticker", + "-ticker", + "report_period", + "-report_period" + ], + "type": "string" +} - added
Input schema / properties / periodAdded value: +{ + "default": "ttm", + "description": "The time period for the financial data.", + "enum": [ + "annual", + "quarterly", + "ttm" + ], + "type": "string" +}
- Changed
search17 fields changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema" - added
Input schema / properties / category / anyOfAdded value: +[ + { + "enum": [ + "seo", + "finance", + "social", + "search", + "sales", + "mail" + ], + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / category / defaultAdded value: +null - changed
Input schema / properties / category / descriptionPrevious value: -"Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.)"New value: +"Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything." - removed
Input schema / properties / category / enumRemoved value: -[ - "seo", - "finance", - "social", - "search", - "sales", - "mail" -] - removed
Input schema / properties / category / typeRemoved value: -"string" - removed
Input schema / properties / known_fieldsRemoved value: -{ - "additionalProperties": true, - "default": {}, - "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.", - "type": "object" -} - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of additional direct tool candidates."New value: +"Maximum candidates, 1-10" - removed
Input schema / properties / limit / maximumRemoved value: -20 - removed
Input schema / properties / limit / minimumRemoved value: -1 - removed
Input schema / properties / provider_filtersRemoved value: -{ - "default": [], - "description": "Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown.", - "items": { - "type": "string" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true -} - changed
Input schema / properties / query / descriptionPrevious value: -"Natural-language capability or task to discover."New value: +"What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best." - removed
Input schema / properties / query / maxLengthRemoved value: -2000 - removed
Input schema / properties / query / minLengthRemoved value: -1 - removed
Input schema / properties / session_idRemoved value: -{ - "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", - "maxLength": 128, - "pattern": "^[A-Za-z0-9_-]*$", - "type": "string" -} - removed
Output schema / propertiesRemoved value: -{ - "next_steps_guidance": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "plan": { - "additionalProperties": false, - "anyOf": [ - { - "type": "null" - }, - { - "type": "object" - } - ], - "properties": { - "canonical_use_case": { - "type": "string" - }, - "description": { - "type": "string" - }, - "known_pitfalls": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "plan_ref": { - "type": "string" - }, - "primary_tools": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "recommended_steps": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "related_tools": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - } - }, - "required": [ - "canonical_use_case", - "description", - "known_pitfalls", - "plan_ref", - "primary_tools", - "recommended_steps", - "related_tools" - ] - }, - "retrieval_mode": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "string" - } - ] - }, - "search_id": { - "type": "string" - }, - "session_id": { - "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", - "maxLength": 128, - "minLength": 1, - "pattern": "^[A-Za-z0-9_-]{1,128}$", - "type": "string" - }, - "tools": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "additionalProperties": false, - "properties": { - "arguments_schema": { - "additionalProperties": true, - "anyOf": [ - { - "type": "null" - }, - { - "type": "object" - } - ] - }, - "description": { - "type": "string" - }, - "execution_supported": { - "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.", - "type": "boolean" - }, - "execution_unsupported_reason": { - "description": "Why execution and quoting remain unavailable through this router.", - "type": "string" - }, - "has_full_schema": { - "type": "boolean" - }, - "match_reasons": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "array" - } - ], - "items": { - "type": "string" - } - }, - "price": { - "additionalProperties": true, - "type": "object" - }, - "retrieval_debug": { - "additionalProperties": false, - "anyOf": [ - { - "type": "null" - }, - { - "type": "object" - } - ], - "properties": { - "fused_rank": { - "type": "integer" - }, - "fused_score": { - "type": "number" - }, - "lexical_rank": { - "type": "integer" - }, - "lexical_score": { - "type": "number" - }, - "rerank_admission_rank": { - "type": "integer" - }, - "rerank_rank": { - "type": "integer" - }, - "rerank_score": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "number" - } - ] - }, - "runtime_availability": { - "type": "string" - }, - "vector_view_ranks": { - "additionalProperties": { - "type": "integer" - }, - "type": "object" - }, - "vector_view_scores": { - "additionalProperties": { - "type": "number" - }, - "type": "object" - } - }, - "required": [ - "fused_rank", - "fused_score", - "lexical_rank", - "lexical_score", - "rerank_admission_rank", - "rerank_rank", - "runtime_availability", - "vector_view_ranks", - "vector_view_scores" - ] - }, - "summary": { - "type": "string" - }, - "tool": { - "type": "string" - } - }, - "required": [ - "description", - "has_full_schema", - "price", - "summary", - "tool" - ], - "type": "object" - } - } -} - removed
Output schema / requiredRemoved value: -[ - "next_steps_guidance", - "search_id", - "session_id", - "tools" -]
- Changed
use1 field changed- changed
Input schema / properties / max_price_usd / descriptionPrevious value: -"Refuse the call before any spend if its quoted price is above this many USD"New value: +"Refuse the call before any spend if it would cost more than this many USD"
24 tool updates
- Added
batch_get_schema - Added
batch_quote - Changed
batch_use18 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / calls / descriptionRemoved value: -"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch" - added
Input schema / properties / calls / items / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - changed
Input schema / properties / calls / items / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / properties / calls / items / propertiesAdded value: +{ + "arguments": { + "additionalProperties": true, + "description": "Strictly schema-compliant arguments using the exact field names and types from this tool's arguments_schema.", + "type": "object" + }, + "call_id": { + "description": "Caller-chosen identifier unique within this batch.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "tool": { + "description": "Exact tool name returned by search or batch_get_schema. Never invent a name.", + "minLength": 1, + "type": "string" + } +} - added
Input schema / properties / calls / items / requiredAdded value: +[ + "call_id", + "tool", + "arguments" +] - added
Input schema / properties / calls / maxItemsAdded value: +20 - added
Input schema / properties / calls / minItemsAdded value: +1 - removed
Input schema / properties / max_price_usdRemoved value: -{ - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Per-call price cap applied to every item" -} - removed
Input schema / properties / search_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / search_id / defaultRemoved value: -null - changed
Input schema / properties / search_id / descriptionPrevious value: -"search_id from the search that found these operations"New value: +"Optional search correlation identifier returned by search." - added
Input schema / properties / search_id / typeAdded value: +"string" - added
Input schema / properties / session_idAdded value: +{ + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" +} - added
Output schema / $defsAdded value: +{ + "jsonValue": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/$defs/jsonValue" + }, + "type": "object" + }, + { + "items": { + "$ref": "#/$defs/jsonValue" + }, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "JSON value returned by the upstream tool." + } +} - added
Output schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / propertiesAdded value: +{ + "batch_id": { + "type": "string" + }, + "error_count": { + "minimum": 0, + "type": "integer" + }, + "next_steps_guidance": { + "description": "Deterministic next-step instructions derived from this result. Not an authorization grant.", + "items": { + "type": "string" + }, + "type": "array" + }, + "results": { + "items": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "call_id": { + "type": "string" + }, + "customer_cost_micros_usd": { + "description": "Actual customer charge settled by AIsaServices, in micro-USD. Omitted when the upstream response does not report it.", + "minimum": 0, + "type": "integer" + }, + "data": { + "$ref": "#/$defs/jsonValue" + }, + "error": { + "anyOf": [ + { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "message": { + "type": "string" + }, + "retryable": { + "type": "boolean" + }, + "status": { + "type": "integer" + }, + "type": { + "enum": [ + "validation", + "authentication", + "payment", + "permission", + "rate_limit", + "upstream", + "timeout", + "internal" + ], + "type": "string" + } + }, + "required": [ + "type", + "status", + "retryable" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "request_id": { + "type": "string" + }, + "successful": { + "type": "boolean" + }, + "tool": { + "type": "string" + }, + "upstream_status": { + "description": "HTTP status returned by AIsaServices when a request was dispatched.", + "type": "integer" + } + }, + "required": [ + "call_id", + "tool", + "successful", + "request_id" + ], + "type": "object" + }, + "type": "array" + }, + "session_id": { + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" + }, + "success_count": { + "minimum": 0, + "type": "integer" + }, + "total_count": { + "minimum": 1, + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "session_id", + "batch_id", + "total_count", + "success_count", + "error_count", + "results", + "next_steps_guidance" +]
- Changed
get_details13 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / argumentsRemoved value: -{ - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null, - "description": "The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them." -} - added
Input schema / properties / include_arguments_schemaAdded value: +{ + "default": true, + "description": "Return the complete arguments_schema. Defaults to true.", + "type": "boolean" +} - changed
Input schema / properties / include_documentation / descriptionPrevious value: -"Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged."New value: +"Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support." - added
Input schema / properties / include_response_schemaAdded value: +{ + "default": false, + "description": "Return the complete response_schema. Defaults to false.", + "type": "boolean" +} - removed
Input schema / properties / operation_idRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "One operation_id from search" -} - removed
Input schema / properties / operation_idsRemoved value: -{ - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Up to 20 operation_ids, for a batch" -} - added
Input schema / properties / session_idAdded value: +{ + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" +} - added
Input schema / properties / toolsAdded value: +{ + "description": "Exact tool names returned by search whose complete contracts are needed. Never invent tool names.", + "items": { + "minLength": 1, + "pattern": "^\\S(?:.*\\S)?$", + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array", + "uniqueItems": true +} - removed
Input schema / properties / with_quoteRemoved value: -{ - "default": true, - "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.", - "type": "boolean" -} - added
Input schema / requiredAdded value: +[ + "tools" +] - added
Output schema / propertiesAdded value: +{ + "error_count": { + "type": "integer" + }, + "next_steps_guidance": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "session_id": { + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9_-]{1,128}$", + "type": "string" + }, + "success_count": { + "type": "integer" + }, + "tools": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "arguments_schema": { + "additionalProperties": true, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ] + }, + "canonical_operation_id": { + "type": "string" + }, + "documentation": { + "additionalProperties": true, + "type": "object" + }, + "error": { + "additionalProperties": false, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ], + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "code", + "message" + ] + }, + "execution_supported": { + "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.", + "type": "boolean" + }, + "execution_unsupported_reason": { + "description": "Why execution and quoting remain unavailable through this router.", + "type": "string" + }, + "idempotent": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "boolean" + } + ] + }, + "known_pitfalls": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "read_only": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "boolean" + } + ] + }, + "response_schema": { + "additionalProperties": true, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ] + }, + "side_effects": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "successful": { + "type": "boolean" + } + }, + "required": [ + "successful" + ], + "type": "object" + }, + "type": "object" + }, + "total_count": { + "type": "integer" + } +} - added
Output schema / requiredAdded value: +[ + "error_count", + "next_steps_guidance", + "session_id", + "success_count", + "tools", + "total_count" +]
- Changed
get_financial_analyst_estimates7 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of estimates to return (max 3 for annual, 12 for quarterly)." - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / period / descriptionRemoved value: -"The period to get analyst estimates for. Use the /analyst-estimates/periods endpoint to get a list of available periods. Defaults to 'annual'." - removed
Input schema / properties / period / enumRemoved value: -[ - "annual", - "quarterly" -] - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker to get analyst estimates for." - changed
Input schema / requiredPrevious value: -[ - "ticker" -]New value: +[] - changed
Output schema / (root)Previous value: -{ - "additionalProperties": true, - "type": "object" -}New value: +null
- Changed
get_financial_company_facts2 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The CIK of the company.", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol."
- Changed
get_financial_earnings3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "default": 1, + "description": "Number of most-recent **report periods** worth of filings to return, sorted by `(report_period DESC, filing_date ASC)`. The number of entries returned may exceed `limit` when a recent period has both an 8-K and a 10-Q / 10-K. Values above 40 are clamped to 40. Non-positive or non-integer values return 400. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`.", + "maximum": 40, + "minimum": 1, + "type": "integer" +} - changed
Input schema / properties / ticker / descriptionPrevious value: -"The ticker symbol."New value: +"The ticker symbol (e.g. `AAPL`)."
- Changed
get_financial_filings7 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company.", - "type": "string" -} - removed
Input schema / properties / filing_typeRemoved value: -{ - "description": "Filter by one or more filing types. Repeat the query parameter to pass multiple values (e.g. filing_type=10-Q&filing_type=10-K).", - "items": { - "enum": [ - "10-K", - "10-Q", - "8-K", - "20-F", - "6-K" - ], - "type": "string" - }, - "type": "array" -} - removed
Input schema / properties / limit / defaultRemoved value: -10 - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of filings to return (default: 10)." - removed
Input schema / properties / limit / minimumRemoved value: -1 - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol."
- Changed
get_financial_filings_items1 field changed- changed
Input schema / requiredPrevious value: -[ - "ticker", - "filing_type", - "year" -]New value: +[ + "filing_type", + "ticker", + "year" +]
- Changed
get_financial_financial_metrics7 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of results to return."New value: +"The maximum number of results to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`."
- Changed
get_financial_financial_metrics_snapshot2 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company. Can be used instead of ticker.", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol of the company."
- Changed
get_financial_financials7 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of financial statements to return."New value: +"The maximum number of financial statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`."
- Changed
get_financial_financials_balance_sheets13 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company.", - "type": "string" -} - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of balance sheets to return" - removed
Input schema / properties / limit / formatRemoved value: -"int32" - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / period / descriptionRemoved value: -"The time period of the balance sheets." - removed
Input schema / properties / period / enumRemoved value: -[ - "annual", - "quarterly", - "ttm" -] - removed
Input schema / properties / report_periodRemoved value: -{ - "description": "Filter by exact report period date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gtRemoved value: -{ - "description": "Filter by report period greater than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gteRemoved value: -{ - "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_ltRemoved value: -{ - "description": "Filter by report period less than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_lteRemoved value: -{ - "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol. Required if cik is not provided." - changed
Input schema / requiredPrevious value: -[ - "period" -]New value: +[]
- Changed
get_financial_financials_cash_flow_statements7 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - added
Input schema / properties / filing_dateAdded value: +{ + "description": "Filter by exact SEC filing date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gtAdded value: +{ + "description": "Filter by SEC filing date greater than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_gteAdded value: +{ + "description": "Filter by SEC filing date greater than or equal to date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_ltAdded value: +{ + "description": "Filter by SEC filing date less than date in YYYY-MM-DD format. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - added
Input schema / properties / filing_date_lteAdded value: +{ + "description": "Filter by SEC filing date less than or equal to date in YYYY-MM-DD format. Useful for point-in-time queries: returns only data that was publicly filed by the given date. Rows without a known filing date are excluded.", + "format": "date", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"The maximum number of cash flow statements to return."New value: +"The maximum number of cash flow statements to return. This is the total across all pages, not a page size: each page holds up to 10 records, linked by `next_page_url`."
- Changed
get_financial_financials_income_statements13 fields changed- removed
Input schema / properties / cikRemoved value: -{ - "description": "The Central Index Key (CIK) of the company.", - "type": "string" -} - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of income statements to return." - removed
Input schema / properties / limit / formatRemoved value: -"int32" - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / period / descriptionRemoved value: -"The time period of the income statements." - removed
Input schema / properties / period / enumRemoved value: -[ - "annual", - "quarterly", - "ttm" -] - removed
Input schema / properties / report_periodRemoved value: -{ - "description": "Filter by exact report period date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gtRemoved value: -{ - "description": "Filter by report period greater than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_gteRemoved value: -{ - "description": "Filter by report period greater than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_ltRemoved value: -{ - "description": "Filter by report period less than date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / report_period_lteRemoved value: -{ - "description": "Filter by report period less than or equal to date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol. Required if cik is not provided." - changed
Input schema / requiredPrevious value: -[ - "period" -]New value: +[]
- Changed
get_financial_insider_trades12 fields changed- removed
Input schema / properties / filing_dateRemoved value: -{ - "description": "Filter by exact filing date in YYYY-MM-DD format.", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gtRemoved value: -{ - "description": "Filter by filing date greater than this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_gteRemoved value: -{ - "description": "Filter by filing date greater than or equal to this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_ltRemoved value: -{ - "description": "Filter by filing date less than this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / filing_date_lteRemoved value: -{ - "description": "Filter by filing date less than or equal to this date (YYYY-MM-DD).", - "format": "date", - "type": "string" -} - removed
Input schema / properties / limit / defaultRemoved value: -10 - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of transactions to return (default: 10)." - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / nameRemoved value: -{ - "description": "Filter by insider name (e.g., 'Jen Hsun Huang'). Use the /insider-trades/names endpoint to get available names for a ticker.", - "type": "string" -} - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol of the company." - removed
Input schema / properties / transaction_typeRemoved value: -{ - "description": "Filter by transaction type (e.g., 'Open market sale', 'Gift'). Use the /insider-trades/transaction-types endpoint to get available types.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "ticker" -]New value: +[]
- Changed
get_financial_macro_interest_rates5 fields changed- changed
Input schema / properties / bank / descriptionPrevious value: -"The bank whose interest rates to return. Use the /macro/interest-rates/banks endpoint to get a list of available banks. Case-sensitive: must be uppercase. A lowercase code returns HTTP 404 \"No data found\", which reads like an empty result rather than a bad argument."New value: +"The central bank code, e.g. FED, ECB, BOJ. Use the /macro/interest-rates/banks endpoint to get the list of available banks." - removed
Input schema / properties / bank / enumRemoved value: -[ - "FED", - "ECB", - "BOJ", - "BOE", - "BOC", - "RBA", - "PBOC", - "SNB", - "RBI", - "BOK" -] - added
Input schema / properties / cursorAdded value: +{ + "description": "Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.", + "type": "string" +} - changed
Input schema / properties / end_date / descriptionPrevious value: -"The end date of the interest rates to return in YYYY-MM-DD format."New value: +"The last date to return, inclusive, in YYYY-MM-DD format. Defaults to today." - changed
Input schema / properties / start_date / descriptionPrevious value: -"The start date of the interest rates to return in YYYY-MM-DD format."New value: +"The first date to return, inclusive, in YYYY-MM-DD format. Defaults to five years before end_date when both dates are omitted; omit it with an end_date to get all available history through that date."
- Changed
get_financial_macro_interest_rates_snapshot2 fields changed- changed
Input schema / properties / bank / descriptionPrevious value: -"Optional central bank code (e.g., FED, ECB, BOJ). AIsa also accepts this endpoint without `bank` and returns the latest snapshot for all major central banks. Case-sensitive: must be uppercase. A lowercase code returns HTTP 404 \"No data found\", which reads like an empty result rather than a bad argument."New value: +"Optional central bank code (e.g., FED, ECB, BOJ) to return one bank only. Use the /macro/interest-rates/banks endpoint to get a list of available banks." - removed
Input schema / properties / bank / enumRemoved value: -[ - "FED", - "ECB", - "BOJ", - "BOE", - "BOC", - "RBA", - "PBOC", - "SNB", - "RBI", - "BOK" -]
- Changed
get_financial_news5 fields changed- removed
Input schema / properties / limit / defaultRemoved value: -5 - removed
Input schema / properties / limit / descriptionRemoved value: -"The maximum number of news articles to return (default: 5, max: 10)." - removed
Input schema / properties / limit / maximumRemoved value: -10 - changed
Input schema / properties / limit / typePrevious value: -"integer"New value: +"string" - removed
Input schema / properties / ticker / descriptionRemoved value: -"The ticker symbol of the company. Omit for broad market news."
- Changed
get_financial_prices9 fields changed- removed
Input schema / properties / end_date / descriptionRemoved value: -"The end date for the price data (format: YYYY-MM-DD)." - removed
Input schema / properties / end_date / formatRemoved value: -"date" - removed
Input schema / properties / interval / descriptionRemoved value: -"The time interval for the price data." - removed
Input schema / properties / interval / enumRemoved value: -[ - "day", - "week", - "month", - "year" -] - added
Input schema / properties / interval_multiplierAdded value: +{ + "type": "string" +} - removed
Input schema / properties / start_date / descriptionRemoved value: -"The start date for the price data (format: YYYY-MM-DD)." - removed
Input schema / properties / start_date / formatRemoved value: -"date" - removed
Input schema / properties / ticker / descriptionRemoved value: -"The stock ticker symbol (e.g. AAPL, MSFT)." - changed
Input schema / requiredPrevious value: -[ - "ticker", - "interval", - "start_date", - "end_date" -]New value: +[]
- Changed
get_financial_prices_snapshot2 fields changed- removed
Input schema / properties / ticker / descriptionRemoved value: -"The stock ticker symbol (e.g. AAPL, MSFT)." - changed
Input schema / requiredPrevious value: -[ - "ticker" -]New value: +[]
- Changed
post_financial_financials_search_screener6 fields changed- removed
Input schema / properties / currencyRemoved value: -{ - "description": "The currency of the financial data.", - "enum": [ - "USD", - "EUR", - "GBP", - "JPY", - "CHF", - "AUD", - "CAD", - "SEK" - ], - "type": "string" -} - removed
Input schema / properties / historicalRemoved value: -{ - "default": false, - "description": "Whether to return historical financial data.", - "type": "boolean" -} - changed
Input schema / properties / limit / defaultPrevious value: -100New value: +10 - removed
Input schema / properties / limit / maximumRemoved value: -100 - removed
Input schema / properties / order_byRemoved value: -{ - "default": "ticker", - "description": "The field to order the results by. Use -field to order in descending order.", - "enum": [ - "ticker", - "-ticker", - "report_period", - "-report_period" - ], - "type": "string" -} - removed
Input schema / properties / periodRemoved value: -{ - "default": "ttm", - "description": "The time period for the financial data.", - "enum": [ - "annual", - "quarterly", - "ttm" - ], - "type": "string" -}
- Changed
search17 fields changed- added
Input schema / $schemaAdded value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / category / anyOfRemoved value: -[ - { - "enum": [ - "seo", - "finance", - "social", - "search", - "sales", - "mail" - ], - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / category / defaultRemoved value: -null - changed
Input schema / properties / category / descriptionPrevious value: -"Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything."New value: +"Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.)" - added
Input schema / properties / category / enumAdded value: +[ + "seo", + "finance", + "social", + "search", + "sales", + "mail" +] - added
Input schema / properties / category / typeAdded value: +"string" - added
Input schema / properties / known_fieldsAdded value: +{ + "additionalProperties": true, + "default": {}, + "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.", + "type": "object" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum candidates, 1-10"New value: +"Maximum number of additional direct tool candidates." - added
Input schema / properties / limit / maximumAdded value: +20 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / provider_filtersAdded value: +{ + "default": [], + "description": "Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown.", + "items": { + "type": "string" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true +} - changed
Input schema / properties / query / descriptionPrevious value: -"What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best."New value: +"Natural-language capability or task to discover." - added
Input schema / properties / query / maxLengthAdded value: +2000 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / session_idAdded value: +{ + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "pattern": "^[A-Za-z0-9_-]*$", + "type": "string" +} - added
Output schema / propertiesAdded value: +{ + "next_steps_guidance": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "plan": { + "additionalProperties": false, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ], + "properties": { + "canonical_use_case": { + "type": "string" + }, + "description": { + "type": "string" + }, + "known_pitfalls": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "plan_ref": { + "type": "string" + }, + "primary_tools": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "recommended_steps": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "related_tools": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "canonical_use_case", + "description", + "known_pitfalls", + "plan_ref", + "primary_tools", + "recommended_steps", + "related_tools" + ] + }, + "retrieval_mode": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + } + ] + }, + "search_id": { + "type": "string" + }, + "session_id": { + "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9_-]{1,128}$", + "type": "string" + }, + "tools": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "additionalProperties": false, + "properties": { + "arguments_schema": { + "additionalProperties": true, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ] + }, + "description": { + "type": "string" + }, + "execution_supported": { + "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.", + "type": "boolean" + }, + "execution_unsupported_reason": { + "description": "Why execution and quoting remain unavailable through this router.", + "type": "string" + }, + "has_full_schema": { + "type": "boolean" + }, + "match_reasons": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "array" + } + ], + "items": { + "type": "string" + } + }, + "price": { + "additionalProperties": true, + "type": "object" + }, + "retrieval_debug": { + "additionalProperties": false, + "anyOf": [ + { + "type": "null" + }, + { + "type": "object" + } + ], + "properties": { + "fused_rank": { + "type": "integer" + }, + "fused_score": { + "type": "number" + }, + "lexical_rank": { + "type": "integer" + }, + "lexical_score": { + "type": "number" + }, + "rerank_admission_rank": { + "type": "integer" + }, + "rerank_rank": { + "type": "integer" + }, + "rerank_score": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "number" + } + ] + }, + "runtime_availability": { + "type": "string" + }, + "vector_view_ranks": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "vector_view_scores": { + "additionalProperties": { + "type": "number" + }, + "type": "object" + } + }, + "required": [ + "fused_rank", + "fused_score", + "lexical_rank", + "lexical_score", + "rerank_admission_rank", + "rerank_rank", + "runtime_availability", + "vector_view_ranks", + "vector_view_scores" + ] + }, + "summary": { + "type": "string" + }, + "tool": { + "type": "string" + } + }, + "required": [ + "description", + "has_full_schema", + "price", + "summary", + "tool" + ], + "type": "object" + } + } +} - added
Output schema / requiredAdded value: +[ + "next_steps_guidance", + "search_id", + "session_id", + "tools" +]
- Changed
use1 field changed- changed
Input schema / properties / max_price_usd / descriptionPrevious value: -"Refuse the call before any spend if it would cost more than this many USD"New value: +"Refuse the call before any spend if its quoted price is above this many USD"
1 tool update
- Changed
get_details1 field changed- added
Input schema / properties / include_documentationAdded value: +{ + "default": false, + "description": "Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged.", + "type": "boolean" +}
26 tool updates
- First observed
batch_use - First observed
edinet_filings_digest - First observed
get_details - First observed
get_edinet_documents - First observed
get_financial_analyst_estimates - First observed
get_financial_company_facts - First observed
get_financial_earnings - First observed
get_financial_filings - First observed
get_financial_filings_items - First observed
get_financial_financial_metrics - First observed
get_financial_financial_metrics_snapshot - First observed
get_financial_financials - First observed
get_financial_financials_balance_sheets - First observed
get_financial_financials_cash_flow_statements - First observed
get_financial_financials_income_statements - First observed
get_financial_insider_trades - First observed
get_financial_macro_interest_rates - First observed
get_financial_macro_interest_rates_snapshot - First observed
get_financial_news - First observed
get_financial_prices - First observed
get_financial_prices_snapshot - First observed
list_categories - First observed
post_financial_financials_search_line_items - First observed
post_financial_financials_search_screener - First observed
search - First observed
use
Publisher details
- Operator
- AIsa · Publisher source
- Operator website
- https://aisa.one
- Vendor relationship
- Independent
- Documentation
- https://mcp.aisa.one/servers
- Trust center
- Not available
- Restrictions
- No paid plan, admin approval, regional limit or custom OAuth app is needed to connect. Sign-in is OAuth against auth.aisa.one with dynamic client registration (RFC 7591), or an Authorization: Bearer AIsa API key. search, get_details and list_categories are free. use and batch_use are billed per call to the caller's own AIsa key, and max_price_usd refuses anything above a cap before any spend. Some operations are subscription-only on the gateway and answer 402 without the Hive GTM Growth plan.
Related MCP Connectors
Your agent needs markets — prices and fundamentals for listed companies, the filings behind them, crypto, and what the prediction markets put the odds at. **What you can ask for** • "Pull this company's income statement, cash flow and balance sheet for the last 8 quarters." • "What did insiders buy or sell, and when?" • "Snapshot prices for these 50 tickers, then the OHLC history for the three that moved." • "What are the current odds on this event across Kalshi and Polymarket?" • "Screen for companies matching these financial criteria." **How to use it** Point any MCP client at https://mcp.aisa.one/finance/mcp and sign in with OAuth — there is no key to create or paste. 49 tools: prices and snapshots, income statements, balance sheets and cash flows, metrics and ratios, earnings and analyst estimates, filings and line-item search, insider trades, macro interest rates, news, a screener; CoinGecko spot prices, market tables, OHLC, per-venue tickers and trending; Kalshi and Polymarket markets and trades; plus EDINET filings for Japan. **Why this rather than the source** Equities, crypto and event markets behind one account, so a cross-asset question is one conversation. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the number here, then ask the same agent what X is saying about the ticker today — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/marketpulse/mcp · /crypto-market-data/mcp · /prediction-market-data/mcp · /stock-pulse/mcp for one slice each.
Your agent needs the two halves of a move at once — what people are posting about a ticker right now, and what the price and the news actually did. **What you can ask for** • "What is X saying about $NVDA today, and what did the stock do?" • "Show the chatter and the price move for these five tickers side by side." • "Which tickers are being talked about most right now?" • "Pull the news and the snapshot behind this spike." **How to use it** Point any MCP client at https://mcp.aisa.one/stock-pulse/mcp and sign in with OAuth — there is no key to create or paste. 4 tools: a combined stock-pulse call that joins X/Twitter chatter to the tickers mentioned, plus advanced tweet search, price snapshots and financial news. **Why this rather than the source** One call instead of four, with the join already done. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Spot the move here, then ask the same agent for the filings or the fundamentals behind it — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/finance/mcp for equities, crypto and prediction markets in one place.
Your agent needs crypto prices it can rely on — spot, ranked market tables, history, OHLC, per-venue tickers, and what is trending right now. **What you can ask for** • "What is the price of these 20 tokens in USD and EUR right now?" • "Give me the top 100 by market cap with 24h and 7d change." • "Chart this coin's price over the last year, hourly." • "Where does this token trade, and at what spread per venue?" • "What is trending on CoinGecko today?" **How to use it** Point any MCP client at https://mcp.aisa.one/crypto-market-data/mcp and sign in with OAuth — there is no key to create or paste. 21 CoinGecko tools: simple price and token price by contract, supported currencies, coin list and detail, ranked markets, history, market charts and ranges, OHLC, per-coin tickers, categories, exchanges and their tickers, token data and charts, and trending. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Price the token here, then ask the same agent what X is posting about it — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/finance/mcp for equities, crypto and prediction markets in one place.
Your agent needs live data — a competitor's traffic, who to contact there, what people are saying, what Google and ChatGPT answer about you, a company's filings. Normally that is six vendor accounts, six sets of keys and six SDKs. This is one URL. **What you can ask for** • "How much traffic does stripe.com get, where does it come from, and who competes for the same keywords?" • "Find 20 Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Does ChatGPT mention our brand when someone asks for the best CRM — and what does it cite?" • "What is X saying about $NVDA today, and what did the stock actually do?" • "Search the web for this, then scrape the three best pages into markdown." **How to use it** Point any MCP client at https://mcp.aisa.one/mcp and sign in with OAuth — there is no key to create or paste. Then just ask: the agent calls search to find the right operation and use to run it. **Why this rather than the source** 26 sources behind one account and one bill — DataForSEO, Semrush, Ahrefs, Similarweb, Apollo, X/Twitter, Instagram, Reddit, Pinterest, YouTube, Tavily, Exa, Perplexity, Firecrawl, CoinGecko, Kalshi, Polymarket, AgentMail and more, 580+ operations. tools/list returns five tools, not 580, so the introduction does not eat your context window. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** One slice at a time: https://mcp.aisa.one/seo/mcp · /finance/mcp · /social/mcp · /search/mcp · /sales/mcp · /mail/mcp · /gtm/mcp, or a single provider like /twitter-api/mcp. Same account, fewer tools listed, and search still reaches everything. Full list at https://mcp.aisa.one/servers
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceFinancial intelligence for AI agents. Give Claude access to insider trading data, SEC filings, economic indicators, and multi-signal analysis — all through a single MCP server.MIT
- AlicenseNot gradedqualityBmaintenanceServes official, source-attributed financial statements, filings, insider trades, daily prices, screeners, macro series and portfolio backtests for Korean, US, Japanese, Taiwanese and European listed companies, so an AI client can compare peers, run trend and CAN SLIM screens, and trace every figure to its filing. Accessible over MCP from Claude, ChatGPT, Cursor or any client, plus a REST API with the same key and quota.MIT
- AlicenseNot gradedqualityDmaintenanceHosted MCP server that gives AI agents real-time access to SEC EDGAR filings search, 10-K/8-K reading, XBRL financial facts, and insider-trade (Form 4) alerts.6 npm1MIT
- FlicenseNot gradedqualityBmaintenanceFinancial intelligence MCP server exposing real market data, SEC filings, FinBERT sentiment, technical analysis, and macro/global market data as MCP tools — free tier issued instantly, no card required.-
Glama MCP Gateway
Add one secure layer between your agents and this server.