Skip to main content
Glama

@questionmarket/mcp

MCP server for question.market prediction markets on Algorand.

The minimal config gives agents read access plus wallet onboarding. To enable trading and market creation outside the monorepo, you also need the deployment app IDs and USDC ASA ID.

Quick start

Read-only + onboarding

All env vars have sensible defaults (public indexer, public testnet algod, public faucet), so the minimal install needs no env block. This enables market browsing, holdings lookups, wallet creation, set_wallet, faucet requests, and ALGO balance checks.

Claude Code

claude mcp add --transport stdio --scope user \
  question-market -- npx -y @questionmarket/mcp

Codex

codex mcp add question-market -- npx -y @questionmarket/mcp

JSON config

{
  "mcpServers": {
    "question-market": {
      "command": "npx",
      "args": ["-y", "@questionmarket/mcp"]
    }
  }
}

Override any of INDEXER_URL, ALGOD_SERVER, ALGOD_PORT, or ALGOD_TOKEN only if you need to point at a different endpoint.

Related MCP server: CryptoConduit-MCP

Enable Trading And Create-Market

The published package ships with the current testnet deployment bundled. When ALGOD_SERVER points at a testnet endpoint (the default), the server auto-loads FACTORY_APP_ID, PROTOCOL_CONFIG_APP_ID, and USDC_ASA_ID from that bundle — you do not need to set them manually.

The only thing you still need to add for write tools is a signer:

  • AGENT_MNEMONIC — 25-word mnemonic preloaded at startup (best for unattended / CI use)

  • Runtime set_wallet(mnemonic) — overrides AGENT_MNEMONIC for the current session; use this after create_wallet

  • Localnet KMD fallback — only applies when neither of the above is set and you are pointing at a local sandbox

Example (testnet, with preloaded mnemonic):

{
  "mcpServers": {
    "question-market": {
      "command": "npx",
      "args": ["-y", "@questionmarket/mcp"],
      "env": {
        "AGENT_MNEMONIC": "your twenty five word mnemonic goes here ..."
      }
    }
  }
}

Network selection. By default the server looks at ALGOD_SERVER to pick the bundled deployment (mainnet, testnet, or localnet). Override with QUESTION_MARKET_NETWORK=testnet|mainnet|localnet or point at a custom deployment file with QUESTION_MARKET_DEPLOYMENT_PATH. Env vars (USDC_ASA_ID, FACTORY_APP_ID, PROTOCOL_CONFIG_APP_ID) always win over the bundle.

Localnet. Run algokit localnet start, deploy the SDK (npm run deploy:localnet inside sdk/), and the resulting protocol-deployment.json will be auto-discovered. Alternatively, set QUESTION_MARKET_DEPLOYMENT_PATH=/absolute/path/to/protocol-deployment.json.

Verify it works

Ask your agent:

List five active question.market markets and show their current implied probabilities.

If you enabled write config, you can also ask:

Create a wallet, fund it on testnet, and buy $5 of outcome 0 in market 123.

Available tools

Read tools:

  • list_markets

  • get_market

  • get_price_history

  • get_market_trades

  • get_market_positions

  • get_positions

  • get_current_holdings

  • get_leaderboard

Onboarding tools:

  • create_wallet

  • set_wallet

  • request_testnet_tokens

  • get_balance

Write tools:

  • buy_shares

  • sell_shares

  • refund_shares

  • claim_winnings

  • enter_lp_active

  • claim_lp_fees

  • withdraw_lp_fees

  • claim_lp_residual

  • create_market

The server only registers write tools when the required env vars are configured.

Environment variables

Variable

Required

Description

INDEXER_URL

No

question.market API endpoint. Default: https://question.market/api

ALGOD_SERVER

No

Algorand node URL. Default: https://testnet-api.4160.nodely.dev

ALGOD_PORT

No

Algorand node port. Default: 443

ALGOD_TOKEN

No

Algorand node auth token. Default: empty (correct for Nodely)

USDC_ASA_ID

No (auto from bundle)

USDC ASA ID. Required for trading, LP, claims, refunds, and USDC-aware balances. Auto-loaded from the bundled deployment matching ALGOD_SERVER

FACTORY_APP_ID

No (auto from bundle)

MarketFactory application ID. Required for create_market. Auto-loaded from the bundled deployment

PROTOCOL_CONFIG_APP_ID

No (auto from bundle)

ProtocolConfig application ID. Required for create_market. Auto-loaded from the bundled deployment

AGENT_MNEMONIC

No

25-word mnemonic preloaded as the signer for write tools. Overridden by a runtime set_wallet call

FAUCET_URL

No

Override the faucet endpoint for request_testnet_tokens. Default: https://question.market/api/faucet

INDEXER_AUTH

No

Optional basic-auth credentials for self-hosted indexers

INDEXER_WRITE_TOKEN

No

Optional bearer token used only by create_market to persist blueprint JSON to the indexer's meta endpoint. Failures are non-fatal

QUESTION_MARKET_NETWORK

No

Force network selection (testnet, mainnet, or localnet) when auto-detection from ALGOD_SERVER is wrong

QUESTION_MARKET_DEPLOYMENT_PATH

No

Override path to a protocol-deployment.json used to auto-load FACTORY_APP_ID, PROTOCOL_CONFIG_APP_ID, and USDC_ASA_ID

QUESTION_MARKET_DEPLOYMENT_OUT

No

Same as above, used by some deploy scripts that write to a separate output path

KMD_SERVER

No

LocalNet KMD URL. Default: http://localhost

KMD_PORT

No

LocalNet KMD port. Default: 4002

KMD_TOKEN

No

LocalNet KMD token. Default: 64 × a

Built on

License

MIT

Available Tools

13 tools
create_walletA

Generate a new Algorand account. Returns address and mnemonic. Call set_wallet with the mnemonic to activate it for trading.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/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 behavioral traits. It states creation occurs but does not mention side effects, reversibility, cost, or safety implications, leaving critical 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?

Two concise sentences with no filler, front-loading the core action and result, followed by a usage hint. Every sentence adds value.

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 zero parameters, no output schema, and no annotations, the description is reasonably complete: it explains the tool's output and next step. However, it could mention potential errors or network prerequisites for full 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?

With zero parameters, the input schema provides minimal information. The description adds meaning by stating what the tool returns (address and mnemonic), exceeding the schema's empty object.

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 explicitly states it generates a new Algorand account and returns address and mnemonic, distinguishing it from sibling tool set_wallet which activates a wallet.

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?

Provides clear guidance to call set_wallet with the mnemonic after creation, but does not exclude any scenarios or mention when not to use.

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

get_balanceA

Check ALGO and tUSDC balance for an address. Defaults to the active session wallet if address is omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoAddress to check (defaults to agent wallet)

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It correctly indicates a read operation but adds no extra behavioral details beyond what is obvious from the purpose.

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?

Two efficient sentences, front-loaded with main purpose, no wasted words.

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?

Given simple input (one optional parameter) and no output schema, description fully covers what the tool does and its behavior.

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?

Parameter schema has 100% coverage with description. The tool description adds value by clarifying that omitting address defaults to the active session wallet.

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?

Clearly states it checks ALGO and tUSDC balance for an address, with specific verb and resource. Distinguishes from sibling tools like get_current_holdings.

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?

Explains default behavior when address is omitted, providing clear usage context. Does not explicitly mention when not to use or alternatives, but the default guidance is useful.

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

get_current_holdingsA

Get a wallet's current holdings with per-market positions, LP stakes, marked value, and claimable resolved exposure.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesAlgorand address

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It implies a read-only operation by listing what is returned, but does not explicitly state safety, side effects, or prerequisites like wallet existence.

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?

A single sentence that is concise, front-loaded with the action and resource, and contains no unnecessary words.

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?

For a simple tool with one parameter and no output schema, the description adequately lists returned fields. However, it lacks clear differentiation from similar siblings like get_positions, which may reduce 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 single parameter 'address' has 100% schema description coverage ('Algorand address'), and the description adds no additional meaning beyond that. Baseline score of 3 is appropriate when the schema already covers the parameter.

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 uses a specific verb 'Get' and resource 'wallet's current holdings', and lists detailed components like per-market positions, LP stakes, marked value, and claimable resolved exposure, clearly distinguishing it from siblings like get_positions.

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 tool versus alternatives such as get_positions or get_market_positions. The context signals show sibling tools that may overlap, but the description does not clarify the selection criteria.

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

get_leaderboardA

Get the leaderboard: wallets ranked by realized trading PnL from closed positions.

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 identifies the operation as a read (get) and specifies the ranking criterion (realized PnL from closed positions). However, it does not disclose potential behaviors like caching, access requirements, or response size limits. For a simple read tool, this is adequate but minimal.

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 conveys the purpose and ranking logic. No unnecessary words, making it concise and front-loaded.

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?

The tool is simple with no parameters and no output schema. The description explains what the leaderboard contains (wallets ranked by realized PnL). However, it lacks detail on the exact output fields (e.g., wallet address, PnL value) and any pagination. Still, it provides sufficient context for an agent to understand the tool's purpose.

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?

There are zero parameters, and the schema coverage is 100% (empty schema). Per guidelines, baseline is 4 for no parameters. The description adds no parameter semantics since there are none, which is appropriate.

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 retrieves the leaderboard, specifying it ranks wallets by realized trading PnL from closed positions. This provides a specific verb (get) and resource (leaderboard) with precise criteria, distinguishing it from sibling tools like get_current_holdings or get_positions.

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 does not provide explicit when-to-use or alternative guidance. However, given the tool's simplicity (no parameters), the usage is implicitly clear. A higher score would require mentioning scenarios where this tool is preferable over siblings.

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

get_marketA

Get detailed market state: prices, pool, outcomes, deadline, resolution status.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesMarket application ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description must convey behavioral traits. The verb 'Get' implies a read-only operation, and the description lists what is returned. However, it does not explicitly state that the tool is non-destructive or safe, nor does it mention any authentication or rate limit requirements. This is adequate for a simple read operation but lacks depth.

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 12 words, front-loaded with the primary action ('Get detailed market state'). Every word contributes value, and there is no superfluous 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 absence of an output schema, the description provides a reasonable overview of the returned data (prices, pool, outcomes, deadline, resolution status). It is complete enough for a simple tool with one parameter, though it might omit some fields like market ID or name. Still, it adequately informs an agent about the tool's output.

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 input schema covers 100% of the parameters, and the app_id is described as 'Market application ID'. The tool description adds no additional meaning or usage context for the parameter beyond what is in the schema. Baseline of 3 is appropriate given full schema coverage.

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 retrieves detailed market state and lists specific data points (prices, pool, outcomes, deadline, resolution status). It distinguishes from sibling tools like get_market_trades or get_price_history by focusing on the aggregate market state.

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 obtaining overall market information, but it does not provide explicit guidance on when to use this tool versus alternatives, such as specifying that get_market is for the current state while get_price_history is for historical data. No exclusions or prerequisites are mentioned.

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

get_market_positionsC

Get all user positions in a specific market.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesMarket application ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavior. It only states the action without explaining whether operations are read-only, what 'positions' includes (e.g., open orders, filled orders), or any side effects.

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?

Single sentence, front-loaded with key information. No wasted words, but could be expanded to include behavioral or usage context without losing conciseness.

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 no output schema and no annotations, the description is insufficient. It does not hint at return format, clarify if positions are for the current user, or differentiate from overlapping sibling tools.

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 100% with one parameter 'app_id' described as 'Market application ID'. The description's phrase 'in a specific market' aligns but adds no new meaning beyond the schema. Baseline 3.

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 'Get' and resource 'user positions' with scope 'in a specific market'. It matches the tool name. However, it does not differentiate from sibling tools like 'get_positions' which might return similar data across all markets.

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 tool versus alternatives like 'get_positions' or 'get_current_holdings'. No prerequisites or context about authentication are mentioned.

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

get_market_tradesC

Get recent trades for a market.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
app_idYesMarket application ID

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or data freshness. 'Recent' is ambiguous.

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 single sentence is concise but lacks structure. It is not front-loaded with critical details that distinguish it or clarify usage.

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 tool with no output schema and two parameters, the description fails to specify what fields the trades contain, the timeframe of 'recent', or pagination/ordering. The description is insufficient for an agent to reliably use the tool.

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?

The description adds no information about the parameters beyond what is in the input schema. Schema coverage is only 50% (description for app_id but not limit), and the tool description does not compensate.

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 the tool gets trades for a market, which is clear as a verb+resource pair. However, 'recent' is vague and the description does not differentiate from similar siblings like get_price_history.

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 tool versus alternatives such as get_market or get_price_history. No context about prerequisites or exclusions.

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

get_positionsA

Get all positions for a wallet address across all markets.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesAlgorand address

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, and the description only notes a read operation without disclosing behavioral traits such as pagination, rate limits, or return format.

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, concise sentence with no redundant information.

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?

No output schema is provided, and the description does not explain what 'positions' entails; the tool is simple but could benefit from more return value context.

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 100% with the parameter already described as 'Algorand address'; the description adds minimal extra meaning beyond stating 'for a wallet address'.

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 retrieves all positions for a wallet address across all markets, using a specific verb and resource, and distinguishes from siblings like get_market_positions.

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 listing all positions but does not explicitly state when to use this tool vs alternatives or any exclusion criteria.

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

get_price_historyC

Get historical price snapshots for charting.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
app_idYesMarket application ID

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 carries the full burden for behavioral disclosure. It does not mention whether the tool is read-only, any rate limits, data freshness, authentication needs, or side effects. It implies a read operation but does not confirm.

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 concise sentence with no wasted words. It is front-loaded but could be expanded without becoming verbose. It achieves high efficiency but at the cost of completeness.

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 two parameters and no output schema, the description is insufficiently complete. It lacks details on pagination, default date range, format of snapshots, or how to interpret results. The sibling set includes related market tools, but no integration guidance is provided.

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 50% (only app_id has a description). The tool description does not add any additional meaning beyond the schema (e.g., what limit controls, time range implications). The description fails to compensate for the missing schema documentation.

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 it retrieves historical price snapshots for charting. This is a specific verb+resource combination that distinguishes it from sibling tools like get_market_trades or get_current_holdings.

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 tool versus alternatives. The description simply says 'for charting' but does not specify conditions or exclusions. Sibling tools exist (e.g., get_market_trades) but no differentiation is provided.

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

list_marketsA

List prediction markets. Filter by status: 0=CREATED, 1=ACTIVE, 2=RESOLUTION_PENDING, 3=RESOLUTION_PROPOSED, 4=CANCELLED, 5=RESOLVED, 6=DISPUTED

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status code

TDQS

A3.7/5.0
Behavior2/5

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

Description does not disclose behavioral traits beyond listing and filtering. With no annotations, the description carries full burden; missing details on pagination, response format, read-only nature, or authorization requirements.

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?

Description is one sentence plus a compact list of status codes. Every character serves a purpose; no wasted words. Front-loaded with the main action.

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?

For a simple list tool with one optional parameter, the description covers the core functionality. However, missing details like default behavior (no filter returns all?), pagination, or response structure. Since no output schema exists, more context would be beneficial.

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?

Input schema describes 'status' as 'Filter by status code'. Description adds the exact mapping of codes (0=CREATED, 1=ACTIVE, etc.), providing meaningful context beyond the schema. This helps the agent choose correct values.

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?

Description clearly states 'List prediction markets' with a verb and resource. It distinguishes from siblings like 'get_market' which retrieves a single market, and other tools like 'get_market_trades' or 'get_price_history'.

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?

Description implies usage for listing markets with optional status filter, but does not explicitly state when to use this tool versus alternatives (e.g., for a single market, use get_market). No exclusions or when-not guidance provided.

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

question_marketA

Overview of the question.market MCP server: available tools, onboarding flow, and links.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, but the description makes clear this is an informational tool (overview, lists, links). It discloses the behavioral trait of being read-only and non-destructive, which is sufficient given the tool's simple nature.

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 communicates the tool's purpose and content. It is front-loaded and contains no extraneous 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?

Despite having no output schema, the description adequately specifies what the tool provides: an overview, tools list, onboarding flow, and links. This is complete for a meta-tool that serves as an introduction.

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 properties, and schema description coverage is 100%. With no parameters, the description does not need to add parameter meaning. The baseline score of 4 is appropriate.

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 it provides an overview of the question.market MCP server, including available tools, onboarding flow, and links. This distinguishes it from sibling tools like get_market or list_markets which are specific operations.

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 use when an agent needs server-wide context, but does not provide explicit when-not instructions or alternatives. The usage is contextually implied but lacks direct guidance.

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

request_testnet_tokensA

Fund the active session wallet (or a specified address) with testnet ALGO and tUSDC in one call. When the address is omitted or matches the active session wallet, the MCP also signs the tUSDC opt-in automatically and calls the faucet a second time so the wallet ends up with both ALGO and tUSDC. ALGO drips are capped at one per wallet / IP every 24 hours; tUSDC at one per wallet every hour. If a third-party address is passed, the MCP can only request the ALGO drip and returns optIn:true — that wallet's owner must sign the opt-in themselves.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoAlgorand address to fund. Defaults to the active session wallet.

TDQS

A4.7/5.0
Behavior5/5

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

No annotations provided, but the description fully discloses the tool's behavior: automatic tUSDC opt-in for session wallet, double faucet call, rate limits, and return of optIn:true for third-party addresses. No contradictions.

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?

Description is concise (4-5 sentences) and well-structured: main action first, then conditional behavior, then limits. No redundant 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?

Covers most important aspects, including rate limits and behavioral nuances. Lacks full description of the response object (e.g., other fields besides optIn:true), but since no output schema exists, this is a minor gap.

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

Parameters5/5

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

Schema coverage is 100% and the description adds significant context beyond the schema, explaining the address parameter's effect on behavior (defaulting to session wallet, triggering opt-in, etc.)

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: funding the active session wallet with testnet ALGO and tUSDC in one call. It distinguishes this from sibling tools like get_balance or create_wallet by focusing on testnet token acquisition.

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?

Provides explicit context on when to use (to get testnet tokens) and includes rate limits (ALGO 24h, tUSDC 1h). Differentiates behavior for active wallet vs third-party, but does not explicitly state when not to use or mention alternatives.

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

set_walletA

Activate a wallet for this MCP connection. All write tools will sign with this account until the connection closes or set_wallet is called again. Overrides the wallet_index parameter on all tools. No restart needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
mnemonicYes25-word Algorand mnemonic

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description bears full burden. It discloses that the tool activates a wallet, overrides wallet_index, persists until connection closes or called again, and requires no restart. It does not discuss security implications or mnemonic validation, but overall provides good transparency for a simple state-setting tool.

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 very concise, with no redundant words. It front-loads the core purpose and then adds essential behavioral details in a few short sentences. Every sentence is necessary.

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?

For a simple one-parameter tool with no output schema, the description covers the main points: purpose, scope, relation to other tools (wallet_index override), and immediate effect. It does not mention error handling or return values, but these are not critical for completeness here.

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 100%, with the parameter 'mnemonic' already described as '25-word Algorand mnemonic'. The description does not add additional meaning beyond what the schema provides. Therefore, baseline score of 3 is appropriate.

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: activate a wallet for signing write operations. It specifies the scope ('until connection closes or set_wallet called again'), distinguishes from siblings like create_wallet and get_balance, and mentions overriding the wallet_index parameter. This is precise and unique.

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 explicitly indicates when to use the tool (to set a persistent signing wallet) and contrasts with the wallet_index parameter on tools. It does not provide explicit 'when not to use' guidance, but the context is clear. Siblings like get_current_holdings are read-only, so usage is differentiated.

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. Dates show when Glama detected each change.

  1. 13 tool updatesv0.1.6
    • First observedcreate_wallet
    • First observedget_balance
    • First observedget_current_holdings
    • First observedget_leaderboard
    • First observedget_market
    • First observedget_market_positions
    • First observedget_market_trades
    • First observedget_positions
    • First observedget_price_history
    • First observedlist_markets
    • First observedquestion_market
    • First observedrequest_testnet_tokens
    • First observedset_wallet

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct function: market browsing (list, get, trade history, price history), positions (all, per market, holdings), wallet management (create, set, fund, balance), info, and leaderboard. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., get_current_holdings, list_markets, create_wallet). No mixing of styles or vague verbs.

Tool Count5/5

13 tools cover market operations, wallet management, and data retrieval without excess. The count is appropriate for a prediction market server's scope.

Completeness2/5

The tool surface lacks a critical 'trade' or 'place_order' tool. Users can view markets and positions but cannot execute trades, which is a core action for a prediction market. This leaves a significant gap in functionality.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that gives AI agents direct access to Polymarket Crypto prediction markets, enriched with live spot prices. Discover markets, analyze order books, paper trade strategies, track activity, and execute live trades — all through natural language.
    1
    AGPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Polymarket prediction markets, enabling search, market details, pricing, and bet analysis through 6 tools, with optional authenticated trading via API key.
    6
    37
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for Alpha Arcade prediction markets on Algorand. Enables AI agents to browse markets, fetch orderbooks, place orders, manage positions, and trade on-chain prediction markets.
    20
    37
    10
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qmrkt/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server