Skip to main content
Glama

AIsa Prediction Markets

Server Details

Your agent needs the crowd's number — live odds on elections, policy, macro prints and sport, from the venues where people put money behind the opinion.

What you can ask for • "What are the current odds on this event?" • "List the open markets on this topic across both venues." • "Show recent trades and how the price moved." • "What is the implied probability now versus a week ago?"

How to use it Point any MCP client at https://mcp.aisa.one/prediction-market-data/mcp and sign in with OAuth — there is no key to create or paste. 5 tools: Kalshi markets and trades, Polymarket markets, events and activity.

Why this rather than the source Both venues in one shape, so the same question can be priced twice.

It is also a door to the rest The same login reaches 26 sources and 580+ operations. Read the odds here, then ask the same agent for the market data or the news behind them — 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.

Ownership verified
Status
Healthy
Uptime
93.7% over 43 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.2/5.0

Scored across 12 tools

Disambiguation5/5

The tools are extremely well-defined, clearly separating billing/administration (`account`), discovery (`search`, `list_categories`), cost management (`batch_quote`, `batch_use`), and specific market data retrieval (Kalshi/Polymarket).

Naming Consistency5/5

The tool set maintains high consistency, adhering to clear patterns like `get_vendor_resource`, `batch_verb_noun`, and standard snake_case across all names.

Tool Count5/5

With 12 tools, the count is appropriate for the complex scope, including detailed billing mechanisms and specific endpoints for multiple prediction market providers.

Completeness3/5

The set is highly complete for discovery, billing, and data reading. However, there is a notable absence of transactional tools necessary for core prediction market functionality, such as placing a bet or executing a trade.

Available Tools

12 tools
accountShow account and usageA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 batchA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
toolsYesExact tool names returned by search whose complete contracts are needed. Never invent tool names.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
include_documentationNoReturn the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support.
include_response_schemaNoReturn the complete response_schema. Defaults to false.
include_arguments_schemaNoReturn the complete arguments_schema. Defaults to true.

Output Schema

NameRequiredDescription
toolsYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, 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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 themA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
callsYes
search_idNoOptional search correlation identifier returned by search.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

Output Schema

NameRequiredDescription
resultsYes
batch_idYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYesDeterministic next-step instructions derived from this result. Not an authorization grant.
auto_execute_eligibleNoTrue 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_usdNoConfigured auto-execute threshold in micro-USD. 0 disables automatic execution. Present on quote responses.

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

An output schema exists, so return-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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 toolsA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
callsYes
search_idNoOptional search correlation identifier returned by search.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

Output Schema

NameRequiredDescription
resultsYes
batch_idYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYesDeterministic next-step instructions derived from this result. Not an authorization grant.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines5/5

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.

get_kalshi_marketsGet Kalshi MarketsD
Read-onlyIdempotent
Inspect

默认价格配置

Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitNoNumber of results per page. Defaults to 100. Maximum value is 1000.
cursorNoPagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.
statusNoFilter by market status. Leave empty to return markets with any status.
tickersNoFilter by specific market tickers. Comma-separated list of market tickers to retrieve.
mve_filterNoFilter by multivariate events (combos). 'only' returns only multivariate events, 'exclude' excludes multivariate events.
event_tickerNoEvent ticker to filter by. Only a single event ticker is supported.
max_close_tsNoFilter items that close before this Unix timestamp
min_close_tsNoFilter items that close after this Unix timestamp
series_tickerNoFilter by series ticker
max_created_tsNoFilter items that created before this Unix timestamp
max_settled_tsNoFilter items that settled before this Unix timestamp
max_updated_tsNoReturn markets with metadata updated at or before this Unix timestamp (in seconds). Tracks non-trading changes only. May be combined with min_updated_ts and mve_filter=exclude. May also be combined with series_ticker, which requires mve_filter=exclude. Incompatible with other filters.
min_created_tsNoFilter items that created after this Unix timestamp
min_settled_tsNoFilter items that settled after this Unix timestamp
min_updated_tsNoReturn markets with metadata updated later than this Unix timestamp (in seconds). Tracks non-trading changes only. May be combined with max_updated_ts and mve_filter=exclude. May also be combined with series_ticker, which requires mve_filter=exclude. Incompatible with other filters.

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.4/5.0
Behavior1/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior. The description adds nothing about pagination limits, result ordering, or rate/price behavior beyond a static price snippet – the one relevant line (per-request cost) is vague and unrelated to tool mechanics.

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

Conciseness2/5

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

It is short, but it is also front-loaded with irrelevant pricing markup rather than purpose. Conciseness without substance is under-specification, not quality.

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

Completeness1/5

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

For a 15-parameter read tool with siblings like get_polymarket_markets, an output schema present, and rich filtering semantics, the description supplies zero functional context. An agent has nothing to decide selection or interpretation beyond the schema.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter (limit, cursor, status, tickers, timestamps) is well-documented in the schema. The description adds no parameter meaning, so baseline 3 applies.

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

Purpose1/5

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

The description contains only pricing boilerplate ('默认价格配置' / published reference price) and says nothing about what the tool does. An agent cannot tell from this text that it retrieves Kalshi markets or how it differs from get_polymarket_markets or get_kalshi_trades.

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

Usage Guidelines1/5

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

No when-to-use guidance, no exclusions, and no reference to sibling tools. The pricing note provides no invocation guidance whatsoever.

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

get_kalshi_tradesGet Kalshi TradesD
Read-onlyIdempotent
Inspect

默认价格配置

Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
limitNoNumber of results per page. Defaults to 100. Maximum value is 1000.
cursorNoPagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.
max_tsNoFilter items before this Unix timestamp
min_tsNoFilter items after this Unix timestamp
tickerNoFilter by market ticker
is_block_tradeNoFilter trades by whether they are block trades. Omit to return all trades. Set to `true` to return only block trades. Set to `false` to return only non-block trades.

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.6/5.0
Behavior2/5

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 covered. The description's only real behavioral content is a per-request price ($0.02 USD), which is marginally useful cost information, but it says nothing about pagination limits, result ordering, or data freshness beyond what the schema states.

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

Conciseness2/5

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

It is short, but every sentence is injected boilerplate rather than tool documentation, and it is front-loaded with an unrelated '默认价格配置' heading. Nothing in the text earns its place for the purpose of invoking this tool.

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

Completeness1/5

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

The tool has an output schema and full annotations, which lightens the burden, but the description still omits the bare essentials: that it retrieves trade history, what a trade record contains, and how filters combine. For a six-parameter market-data query, this is completely inadequate.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (limit, cursor, max_ts, min_ts, ticker, is_block_trade) are already documented with defaults and constraints. The description adds no parameter meaning whatsoever; per the rubric, full schema coverage establishes a baseline of 3.

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

Purpose1/5

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

The description never states what the tool does. It consists of the phrase '默认价格配置' (default price configuration) and a pricing boilerplate block, with no verb, no resource, and no mention of Kalshi trades or markets. The only hint of purpose comes from the tool name itself, which the description does not reinforce.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no exclusions, and no reference to any alternative such as get_kalshi_markets or get_polymarket_activity. The text provides zero context for selecting this tool over its ten siblings.

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

get_polymarket_activityGet user activityC
Read-onlyIdempotent
Inspect

Returns user activity with pagination and filtering.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
endNoUpper-bound timestamp (epoch seconds) for the activity window. Omit for the default (current time); rows newer than `end` are excluded.
sideNo
typeNoComma-separated list of activity types to include. DEPOSIT and WITHDRAWAL records also require `excludeDepositsWithdrawals=false`.
userYesUser Profile Address (0x-prefixed, 40 hex chars)
limitNoPage size. Values above the maximum are clamped to 500.
startNoLower-bound timestamp (epoch seconds) for the activity window. Omit or pass `0` for the default window (most recent ~3 years); pass a positive epoch (e.g. `1`) to retrieve full history. With `sortDirection=ASC`, omitting `start` already reads from the beginning of the account's history (no default window).
marketNoComma-separated list of condition IDs. Mutually exclusive with eventId.
offsetNoStarting index for pagination. Requests past the cap are rejected with a 400 (never silently clamped). To read history deeper than offset 5000, page inside `start`/`end` windows — each window has its own offset budget.
sortByNoTIMESTAMP
eventIdNoComma-separated list of event IDs. Mutually exclusive with market.
sortDirectionNo`DESC` (default) returns the newest rows first; `ASC` the oldest first. Both orders are stable — the same query returns the same rows at any `limit`/`offset`, so pages compose without gaps or repeats.DESC
excludeDepositsWithdrawalsNoExcludes deposit and withdrawal records. The default `true` applies even when `type` requests those records, so to get deposits and withdrawals you must pass `false`.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds only pagination/filtering presence and a pricing note — no behavior like default time windows, offset caps, or stable ordering, all of which matter for an activity query and are pushed entirely into the schema.

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

Conciseness2/5

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

Only one substantive sentence, with the rest being an HTML-comment pricing banner that is irrelevant to invocation. It is short but under-specified rather than concise, and the pricing block bloats the payload.

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

Completeness2/5

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

For a 12-parameter tool with tricky defaults (default ~3-year window, offset 5000 cap, excludeDepositsWithdrawals overriding type), the description is far too thin. An output schema exists, so return values need not be explained, but operational pitfalls are unaddressed in prose.

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

Parameters3/5

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

Schema coverage is 83%, so the schema documents nearly all parameters richly (windows, caps, mutual exclusions, default quirks). The description adds no parameter guidance beyond generic 'pagination and filtering', so the baseline 3 applies.

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

Purpose3/5

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

The description says it 'returns user activity' with 'pagination and filtering' — an accurate but generic purpose statement. It doesn't name the platform (Polymarket, inferable from the tool name) or distinguish it from sibling tools like get_kalshi_trades, though those target different venues.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance. The description only states pagination/filtering exist; the schema carries all nuance (e.g., excludeDepositsWithdrawals caveat, ASC/start interaction). No alternatives named.

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

get_polymarket_eventsList eventsC
Read-onlyIdempotent
Inspect

List events with offset based pagination and filter parameters.

Published reference price: $0.00044 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
idNo
cyomNo
slugNo
limitNo
orderNoComma-separated list of fields to order by
activeNo
closedNo
offsetNo
tag_idNo
archivedNo
featuredNo
tag_slugNo
ascendingNo
recurrenceNo
volume_maxNo
volume_minNo
end_date_maxNo
end_date_minNo
include_chatNo
related_tagsNo
liquidity_maxNo
liquidity_minNo
exclude_tag_idNo
start_date_maxNo
start_date_minNo
include_templateNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description does add one behavioral fact beyond the annotations, that pagination is offset-based, which matters for how the agent pages through results, but it says nothing about result volume, defaults, or how the many filters combine.

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

Conciseness2/5

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

The one functional sentence is front-loaded and waste-free, but it is drastically under-sized for a 26-parameter listing tool, so brevity here is under-specification rather than conciseness. The injected pricing block is boilerplate that contributes nothing to tool selection or invocation.

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

Completeness3/5

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

The presence of an output schema means return values need not be described, which removes one expected burden. Even so, a 26-parameter, zero-required filtering tool with no sibling differentiation and no parameter or pagination-detail guidance is not complete enough for confident selection and invocation.

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

Parameters1/5

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

The schema has 26 parameters with only 4% description coverage, so the description carries nearly the full burden of explaining them. Instead it offers only the generic phrase 'filter parameters' and names none of them; the agent gets no meaning for id, slug, cyom, recurrence, related_tags, the volume/liquidity/date bounds, or the closed:'any' union type.

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

Purpose3/5

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

The description states a clear verb and resource ('List events') and adds the pagination style ('offset based') and that filters exist. However, it does nothing to separate this tool from the sibling get_polymarket_markets or get_polymarket_activity, so an agent must guess whether 'events' vs 'markets' is the right resource.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of prerequisites, and no naming of alternatives among the eleven siblings. The mention of 'filter parameters' implies the tool supports narrowing, but nothing tells the agent when this tool is preferred over get_polymarket_markets.

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

get_polymarket_marketsList marketsC
Read-onlyIdempotent
Inspect

List markets with offset based pagination and filters.

Published reference price: $0.00044 USD per successful request. Account-specific pricing and final settlement may differ.

NameRequiredDescriptionDefault
idNo
cyomNo
slugNo
limitNo
orderNoComma-separated list of fields to order by
closedNo
offsetNo
tag_idNo
game_idNo
ascendingNo
include_tagNo
end_date_maxNo
end_date_minNo
question_idsNo
related_tagsNo
condition_idsNo
clob_token_idsNo
start_date_maxNo
start_date_minNo
volume_num_maxNo
volume_num_minNo
rewards_min_sizeNo
liquidity_num_maxNo
liquidity_num_minNo
sports_market_typesNo
uma_resolution_statusNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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 pagination is offset-based, which is mildly useful, but says nothing about rate limits, default/max page size, or the fact that results reach live external data. The injected pricing block is commerce boilerplate, not 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.

Conciseness4/5

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

The substantive sentence is short and front-loaded with the verb and resource. The trailing pricing block is injected boilerplate rather than author text, so it is noise in the payload but not a structure failure of the description itself.

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

Completeness2/5

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

An output schema exists, so return values need not be explained. However, for a tool with 26 optional parameters and almost no schema documentation, the description is far too thin: no filter semantics, no pagination defaults, no guidance on combining filters, and no routing to sibling market/event tools.

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

Parameters2/5

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

With 26 parameters at 4% schema coverage, the schema is nearly silent (only 'order' is documented), so the description must carry the burden and does not. It generically says 'filters' without naming or explaining any of the filters (closed, tag_id, volume_num_min, uma_resolution_status, etc.), leaving most parameters semantically opaque.

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

Purpose4/5

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

States a specific verb (List) and resource (markets) with the platform implied by the tool name, and mentions pagination plus filters. It is clear on its own, but it never distinguishes itself from the sibling get_kalshi_markets or clarifies what a 'market' is versus an 'event' from get_polymarket_events, so an agent must infer the boundary.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as get_kalshi_markets or get_polymarket_events. The only usage hint is 'offset based pagination and filters', which describes capability rather than context for selecting this tool.

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 catalogueA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

useRun an AIsa operationC
Destructive
Inspect

deprecated, use batch_use instead

NameRequiredDescriptionDefault
argumentsNoArguments matching input_schema / arguments_schema
search_idNosearch_id from the search that found this operation
operation_idYesoperation_id as returned by search
max_price_usdNoRefuse the call before any spend if its quoted price is above this many USD

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines4/5

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.

  1. 4 tool updates
    • Addedaccount
    • Removedget_details
    • Changedget_polymarket_events2 fields changed
      • addedInput schema / properties / closed / oneOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "enum": [
        +      "any"
        +    ],
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / closed / type
        Removed value: -"boolean"
    • Changedget_polymarket_markets2 fields changed
      • addedInput schema / properties / closed / oneOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "enum": [
        +      "any"
        +    ],
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / closed / type
        Removed value: -"boolean"
  2. 11 tool updates
    • Addedbatch_get_schema
    • Addedbatch_quote
    • Changedbatch_use18 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / calls / description
        Removed value: -"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch"
      • addedInput schema / properties / calls / items / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / calls / items / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / calls / items / properties
        Added 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"
        +  }
        +}
      • addedInput schema / properties / calls / items / required
        Added value: +[
        +  "call_id",
        +  "tool",
        +  "arguments"
        +]
      • addedInput schema / properties / calls / maxItems
        Added value: +20
      • addedInput schema / properties / calls / minItems
        Added value: +1
      • removedInput schema / properties / max_price_usd
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "number"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Per-call price cap applied to every item"
        -}
      • removedInput schema / properties / search_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / search_id / default
        Removed value: -null
      • changedInput schema / properties / search_id / description
        Previous value: -"search_id from the search that found these operations"New value: +"Optional search correlation identifier returned by search."
      • addedInput schema / properties / search_id / type
        Added value: +"string"
      • addedInput schema / properties / session_id
        Added 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"
        +}
      • addedOutput schema / $defs
        Added 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."
        +  }
        +}
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / properties
        Added 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"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "session_id",
        +  "batch_id",
        +  "total_count",
        +  "success_count",
        +  "error_count",
        +  "results",
        +  "next_steps_guidance"
        +]
    • Changedget_details13 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / arguments
        Removed 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."
        -}
      • addedInput schema / properties / include_arguments_schema
        Added value: +{
        +  "default": true,
        +  "description": "Return the complete arguments_schema. Defaults to true.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / include_documentation / description
        Previous 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."
      • addedInput schema / properties / include_response_schema
        Added value: +{
        +  "default": false,
        +  "description": "Return the complete response_schema. Defaults to false.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / operation_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "One operation_id from search"
        -}
      • removedInput schema / properties / operation_ids
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Up to 20 operation_ids, for a batch"
        -}
      • addedInput schema / properties / session_id
        Added 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"
        +}
      • addedInput schema / properties / tools
        Added 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
        +}
      • removedInput schema / properties / with_quote
        Removed value: -{
        -  "default": true,
        -  "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.",
        -  "type": "boolean"
        -}
      • addedInput schema / required
        Added value: +[
        +  "tools"
        +]
      • addedOutput schema / properties
        Added 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"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "error_count",
        +  "next_steps_guidance",
        +  "session_id",
        +  "success_count",
        +  "tools",
        +  "total_count"
        +]
    • Changedget_kalshi_markets23 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Pagination cursor from the previous response."New value: +"Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page."
      • addedInput schema / properties / cursor / x-go-type-skip-optional-pointer
        Added value: +true
      • changedInput schema / properties / event_ticker / description
        Previous value: -"Filter by a single Kalshi event ticker."New value: +"Event ticker to filter by. Only a single event ticker is supported."
      • removedInput schema / properties / event_ticker / example
        Removed value: -"KXMVESPORTSMULTIGAMEEXTENDED-S20268A776ACB3C6"
      • addedInput schema / properties / event_ticker / x-go-type-skip-optional-pointer
        Added value: +true
      • removedInput schema / properties / limit / example
        Removed value: -100
      • addedInput schema / properties / limit / x-oapi-codegen-extra-tags
        Added value: +{
        +  "validate": "omitempty,gte=0,lte=1000"
        +}
      • changedInput schema / properties / max_close_ts / description
        Previous value: -"Filter markets closing before this Unix timestamp."New value: +"Filter items that close before this Unix timestamp"
      • changedInput schema / properties / max_created_ts / description
        Previous value: -"Filter markets created before this Unix timestamp."New value: +"Filter items that created before this Unix timestamp"
      • changedInput schema / properties / max_settled_ts / description
        Previous value: -"Filter markets settled before this Unix timestamp."New value: +"Filter items that settled before this Unix timestamp"
      • addedInput schema / properties / max_updated_ts
        Added value: +{
        +  "description": "Return markets with metadata updated at or before this Unix timestamp (in seconds). Tracks non-trading changes only. May be combined with min_updated_ts and mve_filter=exclude. May also be combined with series_ticker, which requires mve_filter=exclude. Incompatible with other filters.",
        +  "format": "int64",
        +  "type": "integer"
        +}
      • changedInput schema / properties / min_close_ts / description
        Previous value: -"Filter markets closing after this Unix timestamp."New value: +"Filter items that close after this Unix timestamp"
      • changedInput schema / properties / min_created_ts / description
        Previous value: -"Filter markets created after this Unix timestamp."New value: +"Filter items that created after this Unix timestamp"
      • changedInput schema / properties / min_settled_ts / description
        Previous value: -"Filter markets settled after this Unix timestamp."New value: +"Filter items that settled after this Unix timestamp"
      • changedInput schema / properties / min_updated_ts / description
        Previous value: -"Filter markets updated after this Unix timestamp."New value: +"Return markets with metadata updated later than this Unix timestamp (in seconds). Tracks non-trading changes only. May be combined with max_updated_ts and mve_filter=exclude. May also be combined with series_ticker, which requires mve_filter=exclude. Incompatible with other filters."
      • changedInput schema / properties / mve_filter / description
        Previous value: -"Filter by multivariate events."New value: +"Filter by multivariate events (combos). 'only' returns only multivariate events, 'exclude' excludes multivariate events."
      • removedInput schema / properties / search
        Removed value: -{
        -  "description": "Search markets by keywords in title and description. Must be URL encoded (e.g., 'bitcoin%20price' for 'bitcoin price').",
        -  "example": "bitcoin",
        -  "type": "string"
        -}
      • changedInput schema / properties / series_ticker / description
        Previous value: -"Filter by series ticker."New value: +"Filter by series ticker"
      • addedInput schema / properties / series_ticker / x-go-type-skip-optional-pointer
        Added value: +true
      • changedInput schema / properties / status / description
        Previous value: -"Filter markets by status."New value: +"Filter by market status. Leave empty to return markets with any status."
      • removedInput schema / properties / status / example
        Removed value: -"open"
      • changedInput schema / properties / tickers / description
        Previous value: -"Comma-separated Kalshi market tickers to retrieve."New value: +"Filter by specific market tickers. Comma-separated list of market tickers to retrieve."
      • removedInput schema / properties / tickers / example
        Removed value: -"KXMVESPORTSMULTIGAMEEXTENDED-S20268A776ACB3C6-43886DEE17A"
    • Changedget_kalshi_trades11 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Pagination cursor from the previous response."New value: +"Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page."
      • addedInput schema / properties / cursor / x-go-type-skip-optional-pointer
        Added value: +true
      • changedInput schema / properties / is_block_trade / description
        Previous value: -"Filter trades by whether they are block trades. Omit to return all trades."New value: +"Filter trades by whether they are block trades. Omit to return all trades. Set to `true` to return only block trades. Set to `false` to return only non-block trades.\n"
      • removedInput schema / properties / is_block_trade / example
        Removed value: -false
      • removedInput schema / properties / limit / example
        Removed value: -100
      • addedInput schema / properties / limit / x-oapi-codegen-extra-tags
        Added value: +{
        +  "validate": "omitempty,gte=0,lte=1000"
        +}
      • changedInput schema / properties / max_ts / description
        Previous value: -"Filter trades before this Unix timestamp."New value: +"Filter items before this Unix timestamp"
      • changedInput schema / properties / min_ts / description
        Previous value: -"Filter trades after this Unix timestamp."New value: +"Filter items after this Unix timestamp"
      • changedInput schema / properties / ticker / description
        Previous value: -"Filter by Kalshi market ticker."New value: +"Filter by market ticker"
      • removedInput schema / properties / ticker / example
        Removed value: -"KXMVESPORTSMULTIGAMEEXTENDED-S20268A776ACB3C6-43886DEE17A"
      • addedInput schema / properties / ticker / x-go-type-skip-optional-pointer
        Added value: +true
    • Changedget_polymarket_activity23 fields changed
      • removedInput schema / properties / condition_id
        Removed value: -{
        -  "description": "Filter activity by condition ID",
        -  "example": "0x4567b275e6b667a6217f5cb4f06a797d3a1eaf1d0281fb5bc8c75e2046ae7e57",
        -  "type": "string"
        -}
      • addedInput schema / properties / end
        Added value: +{
        +  "description": "Upper-bound timestamp (epoch seconds) for the activity window. Omit for the default (current time); rows newer than `end` are excluded.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • removedInput schema / properties / end_time
        Removed value: -{
        -  "description": "Filter activity until this Unix timestamp in seconds (inclusive)",
        -  "example": 1672531200,
        -  "type": "integer"
        -}
      • addedInput schema / properties / eventId
        Added value: +{
        +  "description": "Comma-separated list of event IDs. Mutually exclusive with market.",
        +  "items": {
        +    "minimum": 1,
        +    "type": "integer"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / excludeDepositsWithdrawals
        Added value: +{
        +  "default": true,
        +  "description": "Excludes deposit and withdrawal records. The default `true` applies even when `type` requests those records, so to get deposits and withdrawals you must pass `false`.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Number of activities to return (1-1000)"New value: +"Page size. Values above the maximum are clamped to 500."
      • removedInput schema / properties / limit / example
        Removed value: -50
      • changedInput schema / properties / limit / maximum
        Previous value: -1000New value: +500
      • changedInput schema / properties / limit / minimum
        Previous value: -1New value: +0
      • addedInput schema / properties / market
        Added value: +{
        +  "description": "Comma-separated list of condition IDs. Mutually exclusive with eventId.",
        +  "items": {
        +    "description": "0x-prefixed 64-hex string",
        +    "example": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917",
        +    "pattern": "^0x[a-fA-F0-9]{64}$",
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / market_slug
        Removed value: -{
        -  "description": "Filter activity by market slug",
        -  "example": "bitcoin-up-or-down-july-25-8pm-et",
        -  "type": "string"
        -}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Starting index for pagination. Requests past the cap are rejected with a 400 (never silently clamped). To read history deeper than offset 5000, page inside `start`/`end` windows — each window has its own offset budget.",
        +  "maximum": 5000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • removedInput schema / properties / pagination_key
        Removed value: -{
        -  "description": "Base64-encoded cursor for efficient pagination. Returned in the previous response's pagination object.",
        -  "example": "eyJibG9ja190aW1lc3RhbXAiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJzaWRlIjoiU1BMSVQiLCJ0eF9oYXNoIjoiMHgxMjM0NTY3ODkwYWJjZGVmIiwibG9nX2luZGV4IjoxMCwidG90YWwiOjE5ODkwMTc3Nn0=",
        -  "type": "string"
        -}
      • addedInput schema / properties / side
        Added value: +{
        +  "enum": [
        +    "BUY",
        +    "SELL"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / sortBy
        Added value: +{
        +  "default": "TIMESTAMP",
        +  "enum": [
        +    "TIMESTAMP",
        +    "TOKENS",
        +    "CASH"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / sortDirection
        Added value: +{
        +  "default": "DESC",
        +  "description": "`DESC` (default) returns the newest rows first; `ASC` the oldest first. Both orders are stable — the same query returns the same rows at any `limit`/`offset`, so pages compose without gaps or repeats.",
        +  "enum": [
        +    "ASC",
        +    "DESC"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / start
        Added value: +{
        +  "description": "Lower-bound timestamp (epoch seconds) for the activity window. Omit or pass `0` for the default window (most recent ~3 years); pass a positive epoch (e.g. `1`) to retrieve full history. With `sortDirection=ASC`, omitting `start` already reads from the beginning of the account's history (no default window).",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • removedInput schema / properties / start_time
        Removed value: -{
        -  "description": "Filter activity from this Unix timestamp in seconds (inclusive)",
        -  "example": 1640995200,
        -  "type": "integer"
        -}
      • addedInput schema / properties / type
        Added value: +{
        +  "description": "Comma-separated list of activity types to include. DEPOSIT and WITHDRAWAL records also require `excludeDepositsWithdrawals=false`.",
        +  "items": {
        +    "enum": [
        +      "TRADE",
        +      "SPLIT",
        +      "MERGE",
        +      "REDEEM",
        +      "REWARD",
        +      "CONVERSION",
        +      "DEPOSIT",
        +      "WITHDRAWAL",
        +      "YIELD",
        +      "MAKER_REBATE",
        +      "TAKER_REBATE",
        +      "REFERRAL_REWARD"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / user / description
        Previous value: -"Wallet address or user identifier. Required by the runtime route."New value: +"User Profile Address (0x-prefixed, 40 hex chars)"
      • changedInput schema / properties / user / example
        Previous value: -"0x7c3db723f1d4d8cb9c550095203b686cb11e5c6b"New value: +"0x56687bf447db6ffa42ffe2204a05edaa20f55839"
      • changedInput schema / properties / user / pattern
        Previous value: -"^0x[0-9a-fA-F]{40}$"New value: +"^0x[a-fA-F0-9]{40}$"
      • addedOutput schema / x-fastmcp-wrap-result
        Added value: +true
    • Changedget_polymarket_events31 fields changed
      • removedInput schema / properties / active / description
        Removed value: -"Filter by active events."
      • removedInput schema / properties / archived / description
        Removed value: -"Filter by archived events."
      • removedInput schema / properties / ascending / description
        Removed value: -"Sort ascending when true."
      • removedInput schema / properties / ascending / example
        Removed value: -false
      • removedInput schema / properties / closed / description
        Removed value: -"Filter by whether the event is closed."
      • addedInput schema / properties / cyom
        Added value: +{
        +  "type": "boolean"
        +}
      • removedInput schema / properties / end_date_max / description
        Removed value: -"Filter events ending before this ISO timestamp."
      • removedInput schema / properties / end_date_min / description
        Removed value: -"Filter events ending after this ISO timestamp."
      • addedInput schema / properties / exclude_tag_id
        Added value: +{
        +  "items": {
        +    "type": "integer"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / featured / description
        Removed value: -"Filter by featured events."
      • removedInput schema / properties / id / description
        Removed value: -"Filter by one or more event IDs."
      • addedInput schema / properties / include_chat
        Added value: +{
        +  "type": "boolean"
        +}
      • addedInput schema / properties / include_template
        Added value: +{
        +  "type": "boolean"
        +}
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum number of events to return."
      • removedInput schema / properties / limit / example
        Removed value: -20
      • removedInput schema / properties / liquidity_max / description
        Removed value: -"Maximum liquidity."
      • removedInput schema / properties / liquidity_min / description
        Removed value: -"Minimum liquidity."
      • removedInput schema / properties / offset / description
        Removed value: -"Number of events to skip for offset-based pagination."
      • removedInput schema / properties / offset / example
        Removed value: -0
      • changedInput schema / properties / order / description
        Previous value: -"Comma-separated list of fields to order by."New value: +"Comma-separated list of fields to order by"
      • removedInput schema / properties / order / example
        Removed value: -"volume"
      • addedInput schema / properties / recurrence
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / related_tags
        Added value: +{
        +  "type": "boolean"
        +}
      • removedInput schema / properties / slug / description
        Removed value: -"Filter by one or more event slugs."
      • removedInput schema / properties / start_date_max / description
        Removed value: -"Filter events starting before this ISO timestamp."
      • removedInput schema / properties / start_date_min / description
        Removed value: -"Filter events starting after this ISO timestamp."
      • removedInput schema / properties / tag_id / description
        Removed value: -"Filter by tag ID."
      • removedInput schema / properties / tag_slug / description
        Removed value: -"Filter by tag slug."
      • removedInput schema / properties / tag_slug / example
        Removed value: -"sports"
      • removedInput schema / properties / volume_max / description
        Removed value: -"Maximum volume."
      • removedInput schema / properties / volume_min / description
        Removed value: -"Minimum volume."
    • Changedget_polymarket_markets42 fields changed
      • removedInput schema / properties / ascending / description
        Removed value: -"Sort ascending when true."
      • removedInput schema / properties / ascending / example
        Removed value: -false
      • removedInput schema / properties / clob_token_ids / description
        Removed value: -"Filter by one or more CLOB token IDs."
      • removedInput schema / properties / closed / description
        Removed value: -"Filter by whether the market is closed."
      • removedInput schema / properties / closed / example
        Removed value: -false
      • removedInput schema / properties / condition_ids / description
        Removed value: -"Filter by one or more market condition IDs."
      • removedInput schema / properties / condition_ids / example
        Removed value: -[
        -  "0x1fad72fae204143ff1c3035e99e7c0f65ea8d5cd9bd1070987bd1a3316f772be"
        -]
      • addedInput schema / properties / cyom
        Added value: +{
        +  "type": "boolean"
        +}
      • removedInput schema / properties / end_date_max / description
        Removed value: -"Filter markets ending before this ISO timestamp."
      • removedInput schema / properties / end_date_max / example
        Removed value: -"2026-01-01T00:00:00Z"
      • removedInput schema / properties / end_date_min / description
        Removed value: -"Filter markets ending after this ISO timestamp."
      • removedInput schema / properties / end_date_min / example
        Removed value: -"2025-01-01T00:00:00Z"
      • addedInput schema / properties / game_id
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / id / description
        Removed value: -"Filter by one or more Polymarket market IDs."
      • removedInput schema / properties / id / example
        Removed value: -[
        -  540817
        -]
      • removedInput schema / properties / include_tag / description
        Removed value: -"Include tag metadata when true."
      • removedInput schema / properties / include_tag / example
        Removed value: -true
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum number of markets to return."
      • removedInput schema / properties / limit / example
        Removed value: -20
      • addedInput schema / properties / liquidity_num_max
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / liquidity_num_min
        Added value: +{
        +  "type": "number"
        +}
      • removedInput schema / properties / offset / description
        Removed value: -"Number of markets to skip for offset-based pagination."
      • removedInput schema / properties / offset / example
        Removed value: -0
      • changedInput schema / properties / order / description
        Previous value: -"Comma-separated list of fields to order by."New value: +"Comma-separated list of fields to order by"
      • removedInput schema / properties / order / example
        Removed value: -"volume"
      • addedInput schema / properties / question_ids
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / related_tags
        Added value: +{
        +  "type": "boolean"
        +}
      • addedInput schema / properties / rewards_min_size
        Added value: +{
        +  "type": "number"
        +}
      • removedInput schema / properties / slug / description
        Removed value: -"Filter by one or more market slugs."
      • removedInput schema / properties / slug / example
        Removed value: -[
        -  "new-rhianna-album-before-gta-vi-926"
        -]
      • addedInput schema / properties / sports_market_types
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / start_date_max / description
        Removed value: -"Filter markets starting before this ISO timestamp."
      • removedInput schema / properties / start_date_max / example
        Removed value: -"2026-01-01T00:00:00Z"
      • removedInput schema / properties / start_date_min / description
        Removed value: -"Filter markets starting after this ISO timestamp."
      • removedInput schema / properties / start_date_min / example
        Removed value: -"2025-01-01T00:00:00Z"
      • removedInput schema / properties / tag_id / description
        Removed value: -"Filter by tag ID."
      • removedInput schema / properties / tag_id / example
        Removed value: -1
      • addedInput schema / properties / uma_resolution_status
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / volume_num_max / description
        Removed value: -"Maximum total volume."
      • removedInput schema / properties / volume_num_max / example
        Removed value: -1000000
      • removedInput schema / properties / volume_num_min / description
        Removed value: -"Minimum total volume."
      • removedInput schema / properties / volume_num_min / example
        Removed value: -1000
    • Changedsearch17 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / category / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "seo",
        -      "finance",
        -      "social",
        -      "search",
        -      "sales",
        -      "mail"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / category / default
        Removed value: -null
      • changedInput schema / properties / category / description
        Previous 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.)"
      • addedInput schema / properties / category / enum
        Added value: +[
        +  "seo",
        +  "finance",
        +  "social",
        +  "search",
        +  "sales",
        +  "mail"
        +]
      • addedInput schema / properties / category / type
        Added value: +"string"
      • addedInput schema / properties / known_fields
        Added value: +{
        +  "additionalProperties": true,
        +  "default": {},
        +  "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.",
        +  "type": "object"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum candidates, 1-10"New value: +"Maximum number of additional direct tool candidates."
      • addedInput schema / properties / limit / maximum
        Added value: +20
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / provider_filters
        Added 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
        +}
      • changedInput schema / properties / query / description
        Previous 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."
      • addedInput schema / properties / query / maxLength
        Added value: +2000
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / session_id
        Added 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"
        +}
      • addedOutput schema / properties
        Added 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"
        +    }
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "next_steps_guidance",
        +  "search_id",
        +  "session_id",
        +  "tools"
        +]
    • Changeduse1 field changed
      • changedInput schema / properties / max_price_usd / description
        Previous 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"
  3. 1 tool update
    • Changedget_details1 field changed
      • addedInput schema / properties / include_documentation
        Added value: +{
        +  "default": false,
        +  "description": "Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged.",
        +  "type": "boolean"
        +}
  4. 10 tool updates
    • First observedbatch_use
    • First observedget_details
    • First observedget_kalshi_markets
    • First observedget_kalshi_trades
    • First observedget_polymarket_activity
    • First observedget_polymarket_events
    • First observedget_polymarket_markets
    • First observedlist_categories
    • First observedsearch
    • First observeduse

Publisher details

Operator
AIsa · Publisher source
Operator website
https://aisa.one
Vendor relationship
Independent
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 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.

  • 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.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Remote MCP server for prediction markets — search and compare live odds across Polymarket, Kalshi, and Limitless from Claude, ChatGPT, or Gemini. Six read-only tools, free tier available.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Real-time prediction market intelligence for AI agents. Query Polymarket and Kalshi markets, wallet profiles, smart money leaderboards, social pulse signals, price candlesticks, and orderbook data — 13 agents, one MCP connection. Powered by 1.1TB+ of historical data.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables MCP-compatible AI agents to research and trade prediction markets on Polymarket and Kalshi, including market search, orderbooks, price history, positions, order routing, and on-chain builder-code attribution, plus overshoot and dispute-risk signals.
    42
    144 PyPI
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to query live Polymarket and Kalshi odds, price history, movers, resolved and closing markets, cross-platform gaps, watch-based change tracking, and X/Twitter sentiment in a single call, paying per request in USDC on Base via x402. Also surfaces ticker-linked event markets and a free example call so agents can inspect results before spending.
    10 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources