CSPR[dot]trade MCP
The CSPR.trade MCP server provides AI agent integration for CSPR.trade, the leading DEX on the Casper Network, offering 13 tools across four capability areas.
Market Data (no wallet required)
get_tokens— List all tradable tokens, with optional fiat pricingget_pairs— Browse trading pairs with reserves, pricing, pagination, and sortingget_pair_details— Fetch detailed info for a specific trading pairget_quote— Get swap quotes including amounts, price impact, and routing path (exact-in or exact-out)get_currencies— List supported fiat currencies
Trading (wallet required to build; signed locally)
build_swap— Build an unsigned swap transaction with slippage and deadline controlsbuild_approve_token— Build an unsigned token approval transaction for the routersubmit_transaction— Submit a signed transaction to the Casper network
Liquidity Management (wallet required)
build_add_liquidity— Build an unsigned add-liquidity transaction for a token pairbuild_remove_liquidity— Build an unsigned remove-liquidity transaction for a position percentage
Account Queries (no wallet required)
get_liquidity_positions— View all liquidity positions for an accountget_impermanent_loss— Calculate impermanent loss for a specific liquidity positionget_swap_history— Retrieve swap history, filterable by pair or public key
Key design note: The server is non-custodial — it never handles private keys. Transactions are built server-side and signed locally by the user. It can be used via a public endpoint or self-hosted for testnet/private use.
CSPR.trade MCP
AI agent integration for CSPR.trade, the leading DEX on the Casper Network.
[](https://glama.ai/mcp/servers/make-software/cspr-trade-mcp)
🔗 Public endpoint: https://mcp.cspr.trade/mcp — connect any MCP client, no setup required.
The hosted endpoint runs with file-based deploy input disabled. submit_transaction accepts inline signed JSON only; it will not read deploy files from the server filesystem.
📖 Documentation: mcp.cspr.trade
Connect Your Agent
Add to Claude Desktop, Cursor, or any MCP client config:
{
"mcpServers": {
"cspr-trade": {
"url": "https://mcp.cspr.trade/mcp"
}
}
}That's it. Your agent now has access to 24 public tools for market data, swaps, liquidity management, trade analysis, portfolio tracking, and account queries on the Casper Network.
Related MCP server: freqtrade-mcp
What's Available
Public MCP surface: 24 tools
Category | Tools | Wallet Required |
Market Data |
| No |
Trading |
| Yes |
Liquidity |
| Yes |
Trade Analysis |
| No |
Account |
| No |
Optional local signer: +1 tool
Run a second local MCP instance in --signer mode to add:
sign_deploy— local-only deploy signing with keys loaded from your machine
That gives you 23 total tools across the full two-server setup.
Non-custodial by design. The public MCP server never handles private keys. Transactions are built remotely and signed locally when you enable signer mode.
OpenClaw Skill
Using OpenClaw? Install the agent skill from ClawHub:
npx clawhub@latest install cspr-trade-mcpThe skill teaches your agent the full workflow — intent classification, quote-before-swap patterns, price-impact warnings, local signing flows, price-history lookups, portfolio checks, and error recovery. Works with any OpenClaw-compatible agent.
Self-Hosting
Want testnet access or a private instance? Install the npm packages:
npm install @make-software/cspr-trade-mcp{
"mcpServers": {
"cspr-trade": {
"command": "npx",
"args": ["@make-software/cspr-trade-mcp"],
"env": { "CSPR_TRADE_NETWORK": "testnet" }
}
}
}See the Self-Hosting guide for HTTP server setup, local signer mode, production deployment, and the optional file-path workflow.
Packages
Package | Description |
MCP server — 24 public tools over stdio or HTTP, plus optional | |
TypeScript SDK — market data, price history, quotes, analysis, and transaction building |
Development
npm install # Install dependencies
npm run build # Build all packages
npm test # Run testsLicense
MIT
Available Tools
13 toolsbuild_add_liquidityB
Build an unsigned add-liquidity transaction for a token pair
| Name | Required | Description | Default |
|---|---|---|---|
| token_a | Yes | First token: symbol, name, or hash | |
| token_b | Yes | Second token: symbol, name, or hash | |
| amount_a | Yes | Human-readable amount of first token | |
| amount_b | Yes | Human-readable amount of second token | |
| slippage_bps | No | Slippage in basis points (default 300) | |
| deadline_minutes | No | Deadline in minutes (default 20) | |
| sender_public_key | Yes | Sender hex public key | |
| token_a_balance | No | Raw token A balance for one-time approval | |
| token_b_balance | No | Raw token B balance for one-time approval |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Correctly discloses that the output is 'unsigned', indicating the tool constructs but does not execute or submit the transaction. However, with no annotations provided, the description carries the full burden and omits key behavioral context: it does not state that the transaction requires subsequent signing, potential token approval prerequisites, or that the operation is non-destructive/read-only until submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with zero redundancy. However, given the domain complexity (DeFi liquidity operations with 9 parameters and no annotations), the brevity leaves critical workflow context unmentioned, slightly hurting its utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Factually complete for a transaction-building tool with full schema coverage, but minimal given the complexity. Lacks explanation of the broader transaction lifecycle, approval requirements, and relationship to sibling tools that would prevent user errors in a multi-step DeFi workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, all 9 parameters are adequately documented in the schema itself. The description adds no supplementary parameter semantics (e.g., explaining human-readable vs raw formats, or the relationship between token_a and token_b), warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Provides a specific verb (Build) and resource (unsigned add-liquidity transaction) with clear scope (for a token pair). Implicitly distinguishes from siblings like submit_transaction (unsigned vs submitted) and build_remove_liquidity (add vs remove), though it does not explicitly name alternative tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lacks explicit guidance on when to use this versus build_swap or the prerequisite workflow. Critical DeFi context missing: it does not mention that token approvals (via build_approve_token) are typically required before adding liquidity, nor does it explain the build → sign → submit lifecycle implied by 'unsigned'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_approve_tokenA
Build an unsigned token approval transaction. Spender defaults to the CSPR.trade router.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token contract package hash to approve | |
| amount | Yes | Raw amount to approve (in smallest unit / motes) | |
| sender_public_key | Yes | Sender hex public key | |
| spender | No | Spender contract package hash (defaults to CSPR.trade router) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions 'unsigned' which is critical behavioral info (transaction requires signing before submission), and notes the spender default. Missing: gas costs, that this is a write operation, whether approval is additive or replacement, and the prerequisite relationship to swapping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. Front-loaded action ('Build an unsigned...') followed by default parameter context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage and no output schema, description adequately explains the operation. However, given this is a transaction builder with no annotations, it should mention the output is a transaction to be signed/submitted via submit_transaction sibling, or explain the 'unsigned' nature in workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with clear descriptions. Description adds valuable semantic context beyond schema by specifying the spender 'defaults to the CSPR.trade router'—default values and domain context not present in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb ('Build') and resource ('unsigned token approval transaction'). The 'token approval' specificity distinguishes it from sibling build_swap/build_add_liquidity tools. CSPR.trade router reference provides domain context, though it could explicitly state this is for ERC-20/Casper token standards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context by mentioning 'CSPR.trade router' as the default spender, suggesting this is for DEX interactions. However, lacks explicit guidance on when to use (e.g., 'call before build_swap if token lacks allowance') or when not to use (e.g., if already approved).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_remove_liquidityC
Build an unsigned remove-liquidity transaction
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Pair contract package hash | |
| percentage | Yes | Percentage of liquidity to remove (1-100) | |
| slippage_bps | No | Slippage in basis points (default 300) | |
| deadline_minutes | No | Deadline in minutes (default 20) | |
| sender_public_key | Yes | Sender hex public key |
TDQS
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 mentions 'unsigned' to indicate non-execution, but fails to describe what the transaction does (burns LP tokens, returns underlying assets), the output format, or security considerations like slippage protection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is efficiently structured and front-loaded with the action. However, for a complex DeFi operation with no output schema and no annotations, it may be overly terse rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of liquidity removal (financial operation with impermanent loss risks, multi-step transaction flow) and absence of output schema, the description is incomplete. It omits the transaction lifecycle, output payload structure, and economic effects of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, documenting all 5 parameters including constraints (percentage 1-100). The description adds no additional semantic context beyond the schema, which warrants the baseline score for well-documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Build') and resource ('remove-liquidity transaction'), and includes 'unsigned' which distinguishes it from the sibling 'submit_transaction'. It clearly differentiates from 'build_add_liquidity' and 'build_swap' through the specific operation name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While 'unsigned' hints that signing and submission happen elsewhere, there is no explicit guidance on the required workflow (build → sign → submit), when to use this versus 'build_swap', or prerequisites like existing liquidity positions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_swapA
Build an unsigned swap transaction. Returns the deploy JSON for external signing, plus a human-readable summary.
| Name | Required | Description | Default |
|---|---|---|---|
| token_in | Yes | Input token: symbol (e.g., "CSPR"), name, or contract hash | |
| token_out | Yes | Output token: symbol (e.g., "USDT"), name, or contract hash | |
| amount | Yes | Human-readable amount (e.g., "100") | |
| type | Yes | "exact_in" or "exact_out" | |
| slippage_bps | No | Slippage tolerance in basis points (default 300 = 3%) | |
| deadline_minutes | No | Transaction deadline in minutes (default 20) | |
| sender_public_key | Yes | Sender hex public key (e.g., "01abc...") | |
| token_in_balance | No | Raw input token balance for one-time approval (e.g., from wallet). If omitted, approves exact swap amount only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses 'unsigned' nature (no state change yet), output format ('deploy JSON'), and bonus output ('human-readable summary'). However, misses critical behavioral context: that this doesn't submit to blockchain, approval mechanics via token_in_balance, error conditions (slippage), or that returned JSON requires subsequent signing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. First sentence states core purpose immediately. Second sentence describes outputs. Every word earns its place; properly front-loaded with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema coverage, the description adequately covers the return values (compensating for no output schema). However, for a complex DeFi tool with 8 parameters involving slippage, deadlines, and approvals, the description lacks workflow context (e.g., that approval may be needed first, or that this is step 1 of 2 in swap execution).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline score applies. Description provides high-level context ('swap transaction') that helps interpret parameter relationships, but doesn't add syntax, format details, or parameter-specific guidance beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb ('Build') + resource ('unsigned swap transaction') + scope. Distinguishes from siblings: vs 'get_quote' (this builds executable tx), vs 'submit_transaction' (this returns unsigned for external signing), vs 'build_add_liquidity' (different operation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context via 'for external signing', suggesting use when handling signing outside the tool. However, lacks explicit 'when to use vs alternatives' (e.g., 'use submit_transaction instead to auto-submit') or workflow prerequisites (e.g., 'call get_quote first').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_currenciesA
List supported fiat currencies for price display
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'List' implies read-only behavior, but description omits return format details, pagination behavior, or whether results are cached/static.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action verb. Every word serves purpose: verb (List), resource (supported fiat currencies), context (for price display). No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a zero-parameter list tool. While no output schema exists, the description sufficiently communicates the tool's scope for its complexity level. Minor gap: doesn't describe return value structure (e.g., array of currency codes).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present, which per rules sets a baseline of 4. Description correctly avoids inventing parameters that don't exist in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent clarity: 'List' is a specific verb, 'supported fiat currencies' defines the resource precisely, and 'for price display' clarifies the contextual purpose. It clearly distinguishes from sibling get_tokens (crypto) by specifying 'fiat'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context ('for price display') indicating when to use it, but lacks explicit guidance on when NOT to use it or alternatives (e.g., no mention of get_tokens for crypto assets).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_impermanent_lossC
Calculate impermanent loss for a liquidity position
| Name | Required | Description | Default |
|---|---|---|---|
| account_public_key | Yes | Account public key (hex) | |
| pair | Yes | Pair contract package hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden of behavioral disclosure. Fails to state this is a read-only calculation (though implied by 'get_' prefix), does not describe calculation methodology (current price ratio vs. entry price), return value format (percentage, absolute value, ratio), or performance characteristics. Critical gaps for a financial calculation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy. Efficiently states core purpose. However, extreme brevity results in underspecification for a financial calculation tool—conciseness here reflects minimalism rather than optimal information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Inadequate for tool complexity. No output schema exists, yet description doesn't hint at return structure. For a DeFi financial calculation involving impermanent loss, fails to explain what the calculation represents (divergence loss vs. holding), units, or interpretation guidance. Relies entirely on input schema and domain knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both account_public_key and pair are documented), establishing baseline 3. Description adds no parameter context (does not explain that account_public_key + pair identify the specific position, nor clarifies 'pair contract package hash' format requirements). But schema descriptions suffice for basic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb (calculate) and resource (impermanent loss for a liquidity position). Clear enough to distinguish from sibling tools like get_liquidity_positions (which retrieves position data) and build_add_liquidity (which creates positions). However, lacks explicit scope clarification that this computes a specific financial metric rather than retrieving stored data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites (e.g., that a liquidity position must exist for the account/pair combination) or when to use get_liquidity_positions instead. No mention of typical workflow (e.g., call get_liquidity_positions first to verify position exists).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liquidity_positionsC
Get liquidity positions for an account
| Name | Required | Description | Default |
|---|---|---|---|
| account_public_key | Yes | Account public key (hex) | |
| currency | No | Fiat currency code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Zero annotations provided, so description bears full disclosure burden. It states the action but fails to indicate this is read-only/safe, doesn't describe return structure, pagination, or whether the currency parameter filters vs prices the results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely brief at 7 words, but front-loaded with verb and no filler. However, the extreme brevity contributes to under-specification in other dimensions—it leaves value on the table rather than being appropriately-sized for a tool with 12 siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimally viable for a 2-parameter read operation with good schema coverage. Lacks behavioral richness expected given the financial context ( cryptocurrency/DeFi) and the complexity implied by siblings like build_swap and get_impermanent_loss.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with explicit descriptions for both account_public_key and currency. The description mentions 'account' which loosely maps to the required parameter, but adds no syntax details, format examples, or semantic relationships between the two params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource construction ('Get liquidity positions'), and 'for an account' scopes it to user-specific holdings. However, it does not explicitly differentiate from siblings like get_impermanent_loss or get_swap_history which may also require account context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this read operation versus the build_add_liquidity/build_remove_liquidity siblings, nor when to prefer get_impermanent_loss for analysis. No prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pair_detailsB
Get detailed information about a specific trading pair
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Pair contract package hash (e.g., "hash-abc123...") | |
| currency | No | Fiat currency code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden of behavioral disclosure. 'Get' implies read-only but doesn't explicitly confirm this, nor does it mention caching, rate limits, or response size. Fails to disclose what 'detailed' encompasses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and resource. No redundancy or wasted words. Appropriate length for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal but adequate for a simple 2-parameter read tool. Lacks output specification (no output schema exists), but 'detailed information' hints at comprehensive data. Sufficient for agent selection though richer context on return values would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters well-documented in the schema ('Pair contract package hash', 'Fiat currency code'). Description adds no parameter-specific guidance, meeting the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Get') and resource ('trading pair'), and 'specific' distinguishes from sibling 'get_pairs'. However, 'detailed information' is vague and doesn't specify what data is returned (e.g., reserves, prices, metadata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this versus 'get_pairs' (to discover pairs) or 'get_quote' (for pricing). Doesn't mention that 'pair' parameter requires a contract hash likely obtained from 'get_pairs' first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pairsC
List trading pairs on CSPR.trade with reserves and pricing data
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| page_size | No | Items per page (default 10, max 250) | |
| order_by | No | ||
| order_direction | No | ||
| currency | No | Fiat currency code for pricing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. While it mentions 'reserves and pricing data' (output content), it omits critical behavioral traits: pagination is required (page/page_size exist but behavior isn't described), no indication of real-time vs cached data, and no safety hints (read-only assumed but not stated).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficiently front-loaded with action verb. However, extreme brevity is insufficient for a zero-annotation, 5-parameter tool requiring pagination awareness. One additional sentence on differentiation from get_pair_details or pagination behavior would improve utility without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Names the API domain (CSPR.trade) and data returned, satisfying basic needs. Gaps remain: no pagination explanation despite page params, no output schema hints beyond 'reserves/pricing', and no contrast with singular 'get_pair_details'. Acceptable but minimal for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% (3/5 params described). Description mentions 'pricing data' which provides semantic context for the 'currency' parameter, but offers no guidance on 'order_by' or 'order_direction' enums (reserves vs timestamp sorting logic). Baseline 3 appropriate for medium coverage without full compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and resource 'trading pairs on CSPR.trade'. Effectively distinguishes from transaction-building siblings (build_*, submit_transaction) and other getters like get_tokens. However, fails to explicitly differentiate from sibling 'get_pair_details' (singular vs plural), which could cause selection ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this bulk list view versus 'get_pair_details' for specific pair queries. No mention of pagination workflow or when to provide currency parameter. Users must infer usage from parameter schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteA
Get a swap quote for trading between two tokens. Returns amounts, price impact, and routing path.
| Name | Required | Description | Default |
|---|---|---|---|
| token_in | Yes | Input token: symbol (e.g., "CSPR"), name, or contract hash | |
| token_out | Yes | Output token: symbol (e.g., "USDT"), name, or contract hash | |
| amount | Yes | Human-readable amount (e.g., "100" for 100 CSPR) | |
| type | Yes | "exact_in" = specify input amount, "exact_out" = specify desired output amount |
TDQS
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 output contents ('amounts, price impact, and routing path') which compensates for the missing output schema. However, it lacks explicit confirmation that this is read-only, doesn't mention cache duration, liquidity failure modes, or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with zero waste. First sentence establishes purpose; second sentence discloses return value structure. Front-loaded and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description usefully specifies what the tool returns (amounts, price impact, routing). With 100% input schema coverage and clear purpose, it is complete enough for invocation, though it could note error conditions (e.g., insufficient liquidity) or auth requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters (token_in, token_out, amount, type). The description adds minimal semantic context beyond the schema ('trading between two tokens'), meeting the baseline expectation for well-documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Get' with resource 'swap quote' and clearly indicates this retrieves pricing/routing information for trading. While it implies distinction from execution tools like 'build_swap' through the term 'quote', it does not explicitly name siblings or explicitly state this is a read-only simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'price impact' and 'routing path', suggesting it should be used to evaluate trade feasibility before execution. However, it lacks explicit guidance such as 'Use before build_swap' or conditions like 'Use when you need to know slippage tolerance'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swap_historyC
Get swap transaction history
| Name | Required | Description | Default |
|---|---|---|---|
| public_key | No | Filter by sender public key (hex) | |
| pair | No | Filter by pair contract package hash | |
| page | No | ||
| page_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but fails to specify read-only safety, result ordering (chronological?), supported time ranges, or pagination behavior (cursor vs offset). 'History' implies historical data but lacks specifics on data availability or immutability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The four-word description is extremely brief with no wasted words, achieving high density. However, for a tool with four parameters including pagination controls, this brevity results in underspecification rather than efficient communication of essential operational details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the DeFi context with filtering and pagination complexity, and lacking both annotations and output schema, the description is incomplete. It omits return structure, default pagination limits, time range constraints, and sorting behavior—all critical for a history query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (page and page_size lack descriptions). The description makes no mention of pagination or filtering capabilities, failing to compensate for schema gaps. It adds no context for the 'pair' parameter format or expected public_key behavior beyond the schema's existing 'hex' and 'contract package hash' notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the basic action (Get) and resource (swap transaction history), but lacks specificity about the domain (DEX/DeFi) and does not differentiate from sibling query tools like get_liquidity_positions or get_pairs. It minimally expands the tool name without detailing scope or data sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives (e.g., get_pairs for current state vs historical swaps), nor does it explain the optional filtering pattern (all parameters are optional per schema). The pagination mechanism (page, page_size) is present but entirely undocumented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tokensB
List all tradable tokens on CSPR.trade with optional fiat pricing
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Fiat currency code (e.g., "USD", "EUR"). Omit for no fiat prices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. While 'List' implies read-only, description does not explicitly confirm safety, idempotency, or what the return structure contains (pagination, token metadata fields, etc.). Only behavioral hint is the optional pricing functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 10-word sentence that is front-loaded with action and scope. Zero redundant text; every word serves the definition. Appropriate length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a single-parameter listing tool with complete schema coverage. However, lacks description of return values (no output schema exists to compensate), rate limits, or pagination behavior that would help the agent handle the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear description of currency parameter. Description mentions 'optional fiat pricing' which aligns with schema but adds minimal semantic value beyond what schema already documents ('Omit for no fiat prices'). Baseline 3 appropriate for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and specific resource 'tradable tokens on CSPR.trade'. Platform-specific naming helps distinguish from get_currencies (likely returns fiat codes), though explicit differentiation between these siblings would strengthen it further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus get_currencies or get_pairs. Mentions 'optional fiat pricing' which implies parameter usage, but lacks explicit when-to-use/when-not-to-use recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_transactionA
Submit a signed transaction to the Casper network via node RPC.
| Name | Required | Description | Default |
|---|---|---|---|
| signed_deploy_json | Yes | The signed deploy JSON string, or a file path to a signed deploy JSON file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. While it states submission occurs via RPC to the Casper network, it lacks critical blockchain-specific context: irreversibility, gas fees, confirmation waiting, synchronous vs asynchronous behavior, or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, efficient sentence with zero waste. Front-loaded with the action ('Submit'), followed by object and method. Every phrase earns its place by specifying what, how, and where.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple 1-parameter schema with complete coverage, the description adequately covers the basic invocation contract. However, for a blockchain mutation tool without output schema or annotations, it omits important operational context like return values or confirmation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description mentions 'signed transaction' which semantically aligns with the 'signed_deploy_json' parameter, but adds no specific details about JSON format or file path requirements beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific action (Submit), resource (signed transaction), and target (Casper network via node RPC). It clearly distinguishes from sibling 'build_' tools (which construct transactions) and 'get_' tools (which query data) by focusing on the final submission step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The term 'signed transaction' implies prerequisites (you must sign first), suggesting this follows the 'build_' sibling tools. However, there is no explicit guidance on when to use this versus alternatives, or workflow steps mentioned in the text.
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.
13 tool updates
v0.1.0- First observed
build_add_liquidity - First observed
build_approve_token - First observed
build_remove_liquidity - First observed
build_swap - First observed
get_currencies - First observed
get_impermanent_loss - First observed
get_liquidity_positions - First observed
get_pair_details - First observed
get_pairs - First observed
get_quote - First observed
get_swap_history - First observed
get_tokens - First observed
submit_transaction
TDQS
Each tool has a clearly distinct purpose with no overlap: transaction-building tools (build_*), data retrieval tools (get_*), and a submission tool (submit_transaction). The descriptions clearly differentiate between constructing transactions, fetching information, and submitting signed transactions.
Tool names follow a highly consistent verb_noun pattern throughout: all start with either 'build_' or 'get_' except 'submit_transaction', which still follows the same convention. This predictability makes it easy for agents to understand the action each tool performs.
With 13 tools, the count is well-scoped for a DeFi trading platform, covering core operations like swapping, liquidity management, data queries, and transaction submission. Each tool earns its place without redundancy or obvious omissions.
The toolset provides complete coverage for the DeFi trading domain: it supports full swap and liquidity workflows (quote, build, submit), comprehensive data access (tokens, pairs, history, positions), and utility functions (impermanent loss, currencies). No significant gaps are apparent for typical agent tasks.
Maintenance
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that provides AI agents with real-time access to DEX liquidity pool data, enabling smarter trading, analytics, and automated strategies.101MIT
- AlicenseAqualityDmaintenanceMCP server that connects AI agents to Freqtrade crypto trading bot via REST API. It provides 15 tools for account stats, trade management, market data, pair lists, and bot lifecycle control.19222MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for autonomous AI agents to discover, pay for, and rate paid APIs on Casper with policy-controlled approvals and on-chain reputation.Apache 2.0
- AlicenseAqualityDmaintenanceMCP server for EdgeX perpetual contract trading, providing 16 AI agent tools for market data, account management, and order execution.1720MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/make-software/cspr-trade-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server