Skip to main content
Glama
Polyrama

Polyrama MCP Server

Official
by Polyrama

Polyrama MCP Server

npm CI

The official Model Context Protocol server for Polyrama, the real-time terminal for prediction markets. It gives MCP-compatible assistants ten typed tools for researching Polymarket and Kalshi markets, analyzing public Polymarket wallets, reading signals, and running paper-only workflows.

This repository contains only the public MCP adapter. The Polyrama application, trading engine, backend, deployment configuration, and private credentials remain private.

Prerequisites

Pass the token through your MCP client's environment settings. Never commit it to a repository, paste it into an issue, or include it in screenshots and logs.

Related MCP server: Rekko MCP

Run with npx

You do not need a global installation. Use npx in any stdio-compatible MCP client.

Claude Desktop

{
  "mcpServers": {
    "polyrama": {
      "command": "npx",
      "args": ["-y", "@polyrama/mcp"],
      "env": {
        "POLYRAMA_API_TOKEN": "<your-token>"
      }
    }
  }
}

Claude Code

claude mcp add polyrama --env POLYRAMA_API_TOKEN=<your-token> -- npx -y @polyrama/mcp

Codex

[mcp_servers.polyrama]
command = "npx"
args = ["-y", "@polyrama/mcp"]

[mcp_servers.polyrama.env]
POLYRAMA_API_TOKEN = "<your-token>"

Cursor, Windsurf, Cline, Goose, Zed, OpenClaw, and other stdio MCP clients use the same command and environment variable.

Tools

Tool

Purpose

Scope

polyrama_search_markets

Search live Polymarket and Kalshi markets

read

polyrama_get_market

Inspect one market by token id

read

polyrama_top_traders

Rank public Polymarket wallets

read

polyrama_get_trader

Read one wallet's positions and performance

read

polyrama_refresh_trader

Refresh one public wallet

write:paper

polyrama_recent_signals

Read whales, jolts, spikes, and mispricing signals

read

polyrama_list_bots

List configured bots and status

read

polyrama_state_snapshot

Read the full dashboard state

read

polyrama_run_backtest

Run a historical strategy backtest

write:paper

polyrama_place_paper_order

Record a paper-only trade

write:paper

The public MCP package has no live-order tool and never calls a live-order endpoint. It cannot move funds or submit an exchange order.

Environment variables

Variable

Required

Default

POLYRAMA_API_TOKEN

Yes

—

POLYRAMA_API_URL

No

https://polyrama.io

POLYRAMA_REQUEST_TIMEOUT_MS

No

30000

POLYRAMA_API_URL is intended for Polyrama development and staging deployments.

Development

npm ci
npm run check
npm pack --dry-run

See CONTRIBUTING.md before opening a pull request. Security reports should follow SECURITY.md.

Disclaimer

Polyrama is for research and informational use only, not financial advice. Prediction markets involve risk. Review source data and venue rules before acting on any result.

License

MIT © 2026 Polyrama contributors

Available Tools

10 tools
polyrama_get_marketA

Get live odds, spread, volume, metadata, and history fields for one market by token id.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenIdYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what data is returned (odds, spread, volume, metadata, history) but does not mention any side effects, rate limits, auth requirements, or whether the data is real-time or cached. The verb 'get' suggests a read operation, consistent with the tool name, but deeper behavioral traits are missing.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately states the core action and scope. It front-loads the purpose and lists the key data categories concisely with no unnecessary words.

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?

Given the tool has one parameter, no output schema, and no annotations, the description is adequate but not complete. It does not explain what the returned data looks like (structure of odds, spread, etc.) or how to interpret the history fields. The missing output schema increases the need for richer description, which is not fully met.

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 input schema has only one required parameter (tokenId) with a minLength constraint but no description. The description adds meaning by specifying that tokenId refers to a 'token id' for a market, which is not obvious from the schema alone. However, since schema description coverage is 0%, the description could still elaborate on what constitutes a valid tokenId (e.g., format or example) to fully compensate.

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 tool retrieves live odds, spread, volume, metadata, and history for a single market by token ID. This distinguishes it from sibling tools like polyrama_search_markets (search) and polyrama_top_traders (ranking), though it could more explicitly contrast with polyrama_get_trader.

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

Usage Guidelines3/5

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

The description implies this tool is for fetching detailed market data for a specific market, but does not explicitly state when to use it instead of other tools (e.g., when you already have a tokenId, vs. searching). No alternatives or exclusions are mentioned, leaving the agent to infer context from the name alone.

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

polyrama_get_traderA

Get one public Polymarket wallet's portfolio, positions, activity, history, and performance stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes
activityLimitNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so the description must carry the full burden. It states the data includes portfolio, positions, activity, history, and performance stats, which implies a comprehensive read operation. However, it does not clarify any authorization requirements, rate limits, or whether the data is cached or live.

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

Conciseness5/5

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

The description is a single sentence that efficiently lists the scope of data returned—portfolio, positions, activity, history, and performance stats. No wasted words.

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?

Given the tool has 2 params, no annotations, no output schema, and sibling tools include a refresh variant ('polyrama_refresh_trader'), the description omits whether this endpoint returns cached or stale data and does not clarify if the activity limit can be customized beyond the default. For a complex trader data tool, more specificity on included metrics would improve completeness.

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 0%, meaning the description provides no additional info about the parameters. The schema itself documents 'address' with a pattern and 'activityLimit' with defaults and constraints. Without param info in the description, the score is baseline 3 per rubric.

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 clearly states the verb 'Get' and the resource 'one public Polymarket wallet's portfolio, positions, activity, history, and performance stats.' It distinguishes from siblings like 'polyrama_search_markets' or 'polyrama_get_market' by focusing on a trader-specific data endpoint.

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

Usage Guidelines3/5

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

The description implies usage for querying a public trader's data but provides no guidance on when to use this vs alternatives like 'polyrama_top_traders' or 'polyrama_refresh_trader.' No exclusions or contexts are mentioned.

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

polyrama_list_botsC

List the authenticated account's configured Polyrama bots and their current status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose all behavioral properties. The description mentions scoping ('authenticated account's configured...') and output ('current status'), which is minimally helpful. However, it does not disclose whether the operation is read-only, whether it requires any special permissions, what typical response size or latency might be, or anything about error behavior. A tool that lists resources with status information would benefit from clarifying these aspects.

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 a single, clear sentence that is front-loaded with the verb and resource. It contains no unnecessary words. It could arguably be tighter ('List the authenticated account's Polyrama bots and their current status' vs. the provided 'configured Polyrama bots' is a minor difference), but overall it is efficient. It earns a 4 for being both concise and informative.

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?

Given the tool has no parameters, no nested objects, and no output schema, the complexity is low. The description adequately conveys the core purpose (list bots with status) and scope (authenticated account's configured bots). However, it does not indicate how many bots to expect, whether the list is paginated, or what 'current status' encompasses (e.g., online/offline/error). A slightly richer description would improve completeness for an agent.

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?

The tool has no parameters (0 params, 100% schema coverage), so there is nothing for the description to clarify about parameters. The baseline for 0 parameters is 4, but the description does not add any contextual value that would push it higher – it simply restates what the resource represents. A score of 3 is appropriate: no deficiency but no added value.

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 uses a specific verb ('List') and a specific resource ('the authenticated account's configured Polyrama bots'). It also includes the additional detail 'and their current status', which adds clarity about what information is returned. However, it does not explicitly differentiate itself from its siblings, which all have distinct purposes and scopes, so it misses the top score.

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?

The description states what the tool does but provides no guidance on when to use it vs. alternatives. There is no mention of prerequisites (e.g., requiring authentication), no discussion of when not to use it, and no reference to sibling tools that might be more appropriate for related tasks. This leaves the agent without decision support.

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

polyrama_place_paper_orderA

Record a paper-only trade in Polyrama. This tool never submits a live order. Requires write:paper scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
sizeYes
botIdYes
priceYes
tokenIdYes
strategyNomcp
marketQuestionNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool is paper-only and requires 'write:paper' scope, which are key behavioral traits. But it lacks details on what 'record' means (e.g., saved to storage, simulated confirmation), error handling, idempotency, or return values, leaving significant behavioral gaps.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose and key behavioral distinction (paper-only, no live submission). Every sentence provides essential information without redundancy or filler.

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?

Given the tool has 7 parameters, no output schema, and moderate complexity, the description is too brief. It does not explain what the tool returns (e.g., success indicator, order ID), what 'record' entails, error scenarios, or parameter semantics. The sibling tools provide no help, and the description leaves the agent guessing about the overall behavior and output.

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?

Schema description coverage is 0%, so the description must compensate. It does not mention any of the 7 parameters (botId, tokenId, side, price, size, strategy, marketQuestion). While names and types provide some clues, parameters like strategy and marketQuestion remain unexplained. The description adds zero semantic value beyond 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?

The description clearly states the tool's purpose: 'Record a paper-only trade in Polyrama' with the specific verb 'Record' and resource 'paper order'. It further distinguishes itself by explicitly noting 'This tool never submits a live order', which differentiates it from any potential live order tool, and it specifies the required scope 'write:paper'.

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?

The description implicitly tells when to use this tool (for paper trading) and when not (never for live orders) by stating 'This tool never submits a live order'. However, it does not explicitly mention alternatives or exclusions like 'use this for testing, not for real trades' or compare to a live order sibling, which is acceptable given no such sibling exists.

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

polyrama_recent_signalsC

Get recent whale prints, volume spikes, price jolts, liquidity, wash-like trade, and market-mispricing signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNoComma-separated signal kinds.
limitNo
sinceSecondsNo
unacknowledgedOnlyNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The description implies a non-destructive read operation (fetching signals) and lists the kinds returned, which is helpful. However, it doesn't explain what 'wash-like trade' entails, whether results are sorted, or if repeated calls yield different results (e.g., real-time streams). The description partially compensates but leaves notable gaps.

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 a single sentence of 16 words, which is very concise and front-loaded with the main verb ('Get'). It names all signal types upfront, making scanning easy. However, the list is a bit dense and might benefit from a slight pause (e.g., '...including: whale prints, volume spikes, ...') but overall well-structured for its brevity.

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?

Given the tool has no output schema, 4 parameters with only 25% schema coverage, and no annotations, the description should provide richer context—e.g., what a 'signal' looks like, how filtering by kinds works, default behavior for 'sinceSeconds', or pagination. The current description lists types but fails to explain mechanics or return shape, making it incomplete for the agent to reliably invoke this tool without guessing.

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?

Schema description coverage is only 25% (1 out of 4 params described). The description in the schema for 'kinds' lists possible values but is vague ('Comma-separated signal kinds.'). The tool description does not elaborate on these parameter meanings—e.g., what values are valid for 'kinds', how 'sinceSeconds' interacts with time, or what 'unacknowledgedOnly' toggles. The description adds no new parameter insight beyond the schema's sparse mentions.

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 lists specific signal types (whale prints, volume spikes, price jolts, liquidity, wash-like trade, market-mispricing), which clearly conveys the tool's scope. However, it doesn't explicitly distinguish it from sibling tools like polyrama_search_markets or polyrama_state_snapshot, leaving some ambiguity about why you'd pick this over others.

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 guidance on when to use this tool versus the siblings—e.g., when to prefer this over polyrama_search_markets for market data or polyrama_state_snapshot for broader state. No exclusion criteria or prerequisites (like needing a market ID) are mentioned, which forces the agent to guess context.

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

polyrama_refresh_traderA

Refresh one public Polymarket wallet's positions and net worth. Requires a token with write:paper scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose the tool's behavioral traits. It only states that it refreshes data and requires a scope, but fails to explain what 'refresh' entails (e.g., live blockchain fetch, recomputation), whether it is destructive, idempotent, or rate-limited. This is insufficient for an agent to understand side effects or constraints.

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

Conciseness5/5

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

The description consists of two short, complete sentences. The first sentence front-loads the core purpose (refresh wallet data), and the second adds a critical auth constraint. No extra words, no repetition, and the structure efficiently conveys all essential information.

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 tool's simplicity (one parameter, no nested objects, no output schema), the description covers the main purpose and authorization. It is mostly complete for the agent to understand the tool's function, though it omits what the output/return value is and whether the operation is synchronous. For a tool of this complexity, the gap is minor.

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?

The single parameter 'address' is defined by a regex pattern in the schema but has no schema description. The tool description does not add any explanatory text about the parameter beyond its implicit role, though the tool name and context make its purpose clear. Schema coverage is 0%, so the description should compensate, but it adds no explicit value.

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 clearly states the action ('refresh'), the resource ('one public Polymarket wallet'), and the specific aspects updated ('positions and net worth'). It distinguishes itself from siblings like polyrama_get_trader (read) and polyrama_place_paper_order (write) by implying a non-destructive update.

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

Usage Guidelines3/5

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

The description includes a necessary auth requirement ('requires a token with write:paper scope') which guides when the tool can be used. However, it does not specify when to prefer this over polyrama_get_trader, what prerequisites must be met (e.g., wallet existence), or potential side effects. No exclusions or alternatives are mentioned.

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

polyrama_run_backtestA

Run a Polyrama strategy against historical market data and return summary statistics, P&L series, and fills. Requires write:paper scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsNo
tokenIdYes
fidelityNo
intervalNo1w
strategyYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility. It discloses the need for 'write:paper scope' and states that it runs against 'historical market data', which implies a non-destructive read-mostly operation. However, it does not describe side effects (e.g., whether it submits any orders, modifies state, or has rate limits). The behavioral disclosure is adequate but not comprehensive.

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

Conciseness5/5

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

The description is two sentences long, front-loads the core action and output, and includes the critical scope requirement. Every sentence is necessary and adds value without fluff.

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?

Given the tool has 5 parameters, no output schema, and no annotations, the description is somewhat lacking. It does not explain the meaning of parameters like 'fidelity' or 'interval', nor does it indicate what the returned data looks like. However, the tool is a standard backtesting operation, and the sibling tools cover other domains, so the general context is adequate.

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 0%, so the description must compensate. It does not describe any parameters, leaving the agent to infer semantics from parameter names and schema alone. For 5 parameters (including a nested 'params' object and a constrained 'interval' enum), the description adds no meaning. A baseline of 3 is given because the schema provides some clues (e.g., default values, min/max, enum options), but the description misses the opportunity to clarify how 'params' or 'fidelity' are used.

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 uses specific verbs ('run') and resources ('Polyrama strategy', 'historical market data') and lists the outputs ('summary statistics, P&L series, and fills'). It distinguishes the tool from siblings like 'polyrama_search_markets' or 'polyrama_place_paper_order', but could be slightly clearer about the domain (backtesting) versus live trading.

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

Usage Guidelines3/5

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

The description mentions the required scope ('Requires write:paper scope'), which implies this is for paper trading or simulation, but does not explicitly state when to use this tool versus others (e.g., when not to use it, or when to use a live trading tool instead). No alternatives are named.

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

polyrama_search_marketsB

Search live prediction markets tracked by Polyrama across Polymarket and Kalshi. Filter by text or YES probability and sort by volume, movement, spread, or price.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNovolume_24h
limitNo
queryNoCase-insensitive question or slug search.
offsetNo
priceMaxNo
priceMinNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions filtering and sorting but does not disclose pagination (limit/offset), default sort (volume_24h), that all parameters are optional, or what happens with no results. The description also simplifies the sort enum (listing only four categories vs nine), which may mislead. More behavioral details are needed for a tool with no annotations and no output schema.

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 a single, front-loaded sentence that immediately states the action and then adds filtering and sorting capabilities. Every word adds value. However, it could be slightly more structured by listing specific sort options or parameters, but overall it is efficient and not verbose.

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?

With 6 parameters, no output schema, and no annotations, the description is insufficient. It provides a broad overview but lacks details on pagination, defaults, error handling, and return format. An agent would not know what the response looks like or how to handle edge cases. The description needs to be more complete given the tool's complexity.

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?

Schema description coverage is only 17% (only query has a description). The description adds high-level meaning ('filter by text or YES probability' and 'sort by volume, movement, spread, or price') but does not map clearly to specific parameters (e.g., 'priceMin'/'priceMax' for probability, which enum values correspond to 'movement'). Given the low coverage, the description should compensate with more precise parameter explanations, which it does not.

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 clearly states the verb 'Search' and the resource 'live prediction markets tracked by Polyrama across Polymarket and Kalshi'. It distinguishes itself from sibling tools like polyrama_get_market (single market) and polyrama_top_traders (traders) by implying a broad search across multiple markets. The mention of filtering and sorting further clarifies the action.

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?

The description implies usage for finding markets by text or probability criteria and sorting by various attributes. While it does not explicitly list alternatives or exclusions, the context of sibling tools makes the differentiation clear. The description could be improved by stating when to use this tool versus polyrama_get_market for a specific market, but the current clarity is sufficient.

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

polyrama_state_snapshotA

Get the full current Polyrama dashboard state, including quotes, positions, P&L, signals, wallets, and scanners.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It correctly implies a read operation ('Get... state'), but does not disclose any behavioral traits such as data freshness, authentication requirements, rate limits, or potential size of the response. The description is minimal but not misleading.

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

Conciseness5/5

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

The description is a single sentence of 18 words, front-loading the purpose and key components. Every word earns its place—no fluff or redundancy. Ideal for a simple tool.

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 tool has no parameters, no output schema, and no annotations, the description is reasonably complete. It lists the components of the state, which is sufficient for an agent to understand what it returns. However, for a tool returning a comprehensive dashboard state, a brief note on data format or structure could improve completeness.

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 input schema has zero parameters, so the schema provides no meaning. The description does not need to add parameter details because there are none. Per calibration, baseline is 4 for 0 parameters, which is appropriate as the description is sufficient for a parameterless tool.

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 clearly states the tool's purpose with a specific verb 'Get' and resource 'full current Polyrama dashboard state', and explicitly lists the included components (quotes, positions, P&L, signals, wallets, scanners). This distinguishes it from sibling tools like polyrama_get_market or polyrama_top_traders, which focus on narrower aspects.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a comprehensive snapshot, but does not explicitly state when to use this tool versus alternatives (e.g., 'Use this when you need the entire dashboard state; for specific market data, use polyrama_get_market instead'). No guidance on exclusions or prerequisites.

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

polyrama_top_tradersB

Get the Polymarket wallet leaderboard with portfolio, P&L, volume, activity, and search filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNocurrent_value
limitNo
queryNoWallet address prefix or pseudonym.
offsetNo
starredOnlyNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description must disclose all behavioral traits. It names the returned data (portfolio, P&L, etc.) and available filters, which gives a reasonable snapshot. However, it does not mention that this is a read-only operation, rate limits, pagination behavior (offset/limit), or what happens on empty results. Adequate but not comprehensive given the burden on description.

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 a single sentence that front-loads the core purpose and lists the data categories. It's concise and to the point with no extraneous words. However, it could be restructured to also hint at parameter usage without becoming verbose.

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 tool has 5 parameters, no annotations, no output schema, and low schema coverage. The description gives the overall purpose and data scope but lacks details on return format, parameter semantics (e.g., how starredOnly works), and behavioral constraints. It is adequate for basic understanding but incomplete for reliable invocation without further assumptions.

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 low (20%) with only 'query' having a description. The tool description lists filter categories (portfolio, P&L, volume, activity, search) which map to the 5 parameters but doesn't explain each parameter's meaning or usage beyond what the schema minimally provides. For example, 'sort' enum values are not explained. The description adds some context but does not fully compensate for the 80% schema coverage gap.

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 tool gets a 'Polymarket wallet leaderboard' with specific data fields (portfolio, P&L, volume, activity, and search filters). The verb 'Get' and resource 'leaderboard' are specific. It distinguishes from siblings like 'polyrama_get_trader' (single trader) and 'polyrama_search_markets' (market search), though it doesn't explicitly contrast them.

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 guidance on when to use this vs. alternatives such as polyrama_get_trader for individual wallet details or polyrama_search_markets for market discovery. No explanation of prerequisites (e.g., requiring wallet addresses) or when filters like query or starredOnly are appropriate. The description implies it's for top traders, but no explicit when-to-use or when-not-to-use context.

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. 10 tool updatesv1.0.0
    • First observedpolyrama_get_market
    • First observedpolyrama_get_trader
    • First observedpolyrama_list_bots
    • First observedpolyrama_place_paper_order
    • First observedpolyrama_recent_signals
    • First observedpolyrama_refresh_trader
    • First observedpolyrama_run_backtest
    • First observedpolyrama_search_markets
    • First observedpolyrama_state_snapshot
    • First observedpolyrama_top_traders

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct function: searching markets, retrieving specific market details, top traders, individual trader info, refreshes, signals, bots listing, dashboard state, backtesting, and paper orders. There is no functional overlap among them, allowing clear selection by an agent.

Naming Consistency5/5

All tools follow a consistent 'polyrama_verb_noun' pattern (e.g., polyrama_search_markets, polyrama_get_market, polyrama_list_bots). The prefix unifies them, and the verb-noun structure is predictable, with only minor deviations like 'top_traders' (adjective-noun) which still adheres to the overall style.

Tool Count5/5

Ten tools is well-scoped for a prediction market data and paper trading server. It covers market data, trader analytics, signals, bots, dashboard state, backtesting, and paper trading without being too sparse or overwhelming. Each tool earns its place.

Completeness4/5

The tool set covers the core workflows: discover markets, analyze traders, view signals, inspect dashboard, backtest strategies, and place paper trades. A minor gap is the lack of bot creation/modification tools, and no direct Kalshi-specific operations beyond the market search. Overall, agents can accomplish most tasks, but managing bots requires external action.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI-powered tools for searching Polymarket prediction markets and calculating financial metrics like expected value and Kelly bet sizing. It enables users to perform arbitrage scanning, news-based sentiment analysis, and market research through natural language interfaces.
    -
  • A
    license
    A
    quality
    F
    maintenance
    Provides prediction market intelligence, research, and strategy signals for platforms like Kalshi, Polymarket, and Robinhood. It enables AI assistants to perform market screening, arbitrage detection, and deep causal analysis to support informed trading decisions.
    27
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server and Python toolkit that provides AI agents with real-time tools for Polymarket prediction markets, including liquidity scanning, arbitrage detection, and slippage estimation. It also offers advanced wallet intelligence, portfolio risk calculation, and probabilistic reasoning to enhance market analysis and strategy.
    34 PyPI
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query Polymarket prediction markets and analyze market data through the MCP interface.
    8
    -