Recta
Server Details
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
The prepare/send pair is cleanly separated (one builds the EIP-191 message without keys, the other transmits), and status is clearly a health check. The only mild overlap is between recta_about (full prose guide) and recta_service_descriptor (structured corridors/schemas), which both serve a discovery role and could occasionally be confused.
All tools share a uniform recta_ prefix and snake_case, with the core operations following a verb_noun pattern (prepare_signed_request, send_signed_request). recta_about, recta_status, and recta_service_descriptor are noun-only, a minor deviation but still readable and predictable.
Five tools is tightly scoped to the domain: discover (about, descriptor, status), sign, and send. Each tool has a clear job and none feels redundant or missing for the stated workflow.
The generic prepare/send pattern can reach any Recta route, and the descriptor exposes the full schema, so the surface is broadly complete. However, there is no dedicated tool for querying the fee ledger (`charged` status) or listing past evaluations, forcing the agent to infer those endpoints from documentation.
Available Tools
5 toolsrecta_aboutWhat Recta is and how it chargesCRead-onlyInspect
Recta is a preflight for AI agents that move stablecoins (and BTC) between blockchains. Before a transfer, the agent asks Recta; Recta reads every route it knows at the same chain state (Across, CCTP, Stargate, USDT0 and others) and returns the cheapest one it can prove, against the route the agent would have used anyway. Recta charges exactly 5 % of the saving it verifies on chain after the agent executes its route. No saving, no charge. No prepayment and no credit: the agent signs, with each decision, a Permit2 authorization capped at max_fee_authorization, and Recta's collection pulls only the verified 5 % (never more than the cap) in USDC on Base; the payer's ledger shows whether each fee has been collected yet (charged). The evaluation itself is free. Returns the full guide (llms.txt).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds substantial context about the fee model, Permit2 caps, USDC-on-Base collection and the `charged` ledger flag, but that behavior belongs to the transfer/prepare tools, not to this zero-argument guide fetch, so the added value for this specific tool is limited.
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 piece of information an agent needs to select this tool is the last sentence; everything before it is product marketing that front-loads the wrong subject. It is also one dense paragraph with no structural separation between product description and tool behavior.
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 no input schema, no output schema and simple read-only annotations, the definition only needs to say what is returned, and "the full guide (llms.txt)" does that. It remains incomplete on when to prefer it over recta_service_descriptor and on roughly what the guide contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline applies. The only named field, `max_fee_authorization`, is not a parameter of this tool and is clearly framed as part of the wider flow, so it does not create schema ambiguity.
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 actual action of this tool is buried in the final clause: "Returns the full guide (llms.txt)." Most of the text describes what Recta the product does rather than what recta_about does, and nothing distinguishes it from the sibling recta_service_descriptor, which plausibly serves a similar discovery purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when an agent should call this instead of recta_service_descriptor or recta_status. The reader can infer it is an onboarding/documentation call, but the choice among the three discovery-ish siblings is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recta_prepare_signed_requestText to sign for a Recta requestARead-onlyInspect
Computes the exact message the agent's EVM wallet must sign (EIP-191 personal_sign) for one Recta request, and the headers to send. Holds no key and calls nothing. Then call recta_send_signed_request with the same method, path, idempotency_key, body and issued_at, plus the signature. Start with POST /v1/golden-corridor/commercial-evaluations (body: see recta_service_descriptor; its "sender" must be the signing address).
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | The exact JSON body text, byte for byte as it will be sent. Empty for GET. | |
| path | Yes | A signed route: /v1/golden-corridor/commercial-evaluations[/{result_id}[/execution-artifact|/fee-authorization|/execution]], /v1/golden-corridor/commercial-accruals/{payer} or /v1/golden-corridor/fee-debts. | |
| method | Yes | ||
| idempotency_key | No | Required by POST /v1/golden-corridor/commercial-evaluations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, and the description reinforces this with concrete behavior: it holds no key and calls nothing, so the agent knows this is pure local computation with no network effect or secret exposure. It stops short of describing error cases (e.g. malformed body, address mismatch) or exactly what the returned header set contains, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, tightly packed and front-loaded with the core verb before the follow-up call and the suggested entry point. Nearly every clause earns its place; the only minor cost is the trailing issued_at reference that adds ambiguity rather than instruction.
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?
There is no output schema, and the description compensates by naming both return artifacts (the exact message to sign and the headers to send). Combined with the explicit hand-off to recta_send_signed_request and the pointer to recta_service_descriptor for request bodies, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema carries most definitions, but the description adds real cross-field meaning: the body's "sender" must equal the signing address, and idempotency_key is mandatory for the primary POST route. The only blemish is that it references an issued_at value that does not appear as a parameter in the input schema, which could momentarily confuse an agent about whether it must supply one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and artifact: computes the exact message an EVM wallet must sign (EIP-191 personal_sign) for one Recta request, plus the headers to send. It also distinguishes itself from the sibling it hands off to (recta_send_signed_request), so an agent can separate the two without inspecting either schema.
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?
Gives explicit sequencing: call this first, then call recta_send_signed_request with the same method, path, idempotency_key, body and issued_at plus the signature. It also names the recommended starting route (POST /v1/golden-corridor/commercial-evaluations) and points to recta_service_descriptor for the body shape.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recta_send_signed_requestSend a signed request to RectaAIdempotentInspect
Sends a request signed by the agent's own wallet to a Recta route and returns its HTTP status and JSON body. An evaluation is free; executing a decision's route creates a fee of 5 % of the verified saving, capped by the permit the agent signs.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | ||
| method | Yes | ||
| signer | Yes | ||
| issued_at | Yes | ||
| signature | Yes | ||
| idempotency_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag a non-read-only, open-world, idempotent, non-destructive call; the description adds the economically critical behavior that execution charges 5% of verified saving capped by the signed permit, and that return values are HTTP status plus JSON body (useful since no output schema exists). It does not explain what a signature/permit must contain or what happens on signature failure.
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 tightly written sentences, with the core action and return value front-loaded and the pricing caveat second. No filler or redundancy.
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?
Lacking an output schema and any parameter documentation, the description does well to state what comes back and the fee model, but it omits the signing workflow, permit semantics, and any per-parameter meaning. For a 7-parameter signed-request tool this is adequate but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, so the description carries the burden, yet it never explains method, path, signer, issued_at, signature, body, or idempotency_key. Only a faint hint ('to a Recta route', 'the permit the agent signs') gestures at path and signature, leaving most parameters to guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('sends a request signed by the agent's own wallet to a Recta route') plus the return shape, so the operation is unambiguous. It does not, however, distinguish itself from the sibling recta_prepare_signed_request, which an agent must understand is the prerequisite 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 cost sentence implies the key decision point — evaluations are free while executing a decision's route incurs a 5% fee — which is genuine usage context. But there is no explicit when-to-use or when-not-to-use guidance, and no pointer to recta_prepare_signed_request for building the signature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recta_service_descriptorCommercial contractCRead-onlyInspect
Supported corridors (networks and assets), providers, amount ranges, limits and the JSON Schema of every request and response.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered structurally. The description adds only a static content inventory and says nothing about whether the payload is static or live, its size, or any auth/precondition requirements for reading it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no waste, but it is a grammatically incomplete fragment with no verb, which weakens front-loading. Adding a leading verb would cost nothing and make the purpose immediate.
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 no output schema, the description bears responsibility for describing the return value, and it does partially by naming the categories returned plus 'the JSON Schema of every request and response'. It still omits how to use that output (e.g., to construct recta_prepare_signed_request calls) and whether the descriptor is versioned or cached.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters with an empty closed schema, so there is nothing for the description to disambiguate. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase listing contents (corridors, providers, amount ranges, limits, JSON Schemas) rather than a verb+resource statement, so it never explicitly says it 'returns' or 'describes' the service. The content list does differentiate it from siblings like recta_prepare_signed_request and recta_send_signed_request, but the title 'Commercial contract' adds confusion rather than clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus recta_about or recta_status, and no indication that it should be consulted before preparing a request. An agent must infer the discovery-first workflow entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recta_statusService readinessARead-onlyInspect
Whether Recta is ready to evaluate, and its contract version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, non-open-world operation. The description adds that the result includes readiness and a contract version, but it does not explain possible readiness values, error behavior, authentication needs, or response format, so behavioral disclosure remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler, and the core status information is front-loaded. It does not waste words or bury the purpose in unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status tool, invocation risk is low, and the description names the two main outputs: readiness and contract version. Since there is no output schema, however, the description could do more to clarify the return format or what 'ready' actually means, leaving a meaningful gap for result interpretation.
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?
There are no parameters, which is the baseline for a 4 under the scoring rules. The schema is fully self-contained, and no additional parameter meaning is needed.
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 tool returns Recta's readiness to evaluate and its contract version, which is a clear purpose beyond the title alone. It does not differentiate this from siblings such as recta_about or recta_service_descriptor, so an agent must still infer why this status endpoint is preferable in a given situation.
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 phrase 'ready to evaluate' implies a preflight or health-check use case, giving some implied guidance. However, there is no explicit when-to-use guidance, no when-not-to-use guidance, and no stated alternative among the sibling tools.
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.
5 tool updates
- First observed
recta_about - First observed
recta_prepare_signed_request - First observed
recta_send_signed_request - First observed
recta_service_descriptor - First observed
recta_status
Related MCP Connectors
Zero-key, non-custodial cross-chain crypto swap aggregator for AI agents: 100+ chains, 15+ providers
No-account cross-chain crypto swaps (BTC, ETH, SOL, USDT, ZEC…) for AI agents. Flat 0.5% fee.
Non-custodial DEX aggregator for autonomous AI agents: best-price swaps on 8 chains, no API key.
Token swaps and honeypot/rug checks for AI agents on 8 chains, paid per-call in USDC via x402.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceDeFi execution layer for AI agents - swap, zap in/out of LP, route across AMMs on 5 EVM chains.297 npm7MIT

gasrescue MCP serverofficial
AlicenseAqualityAmaintenanceRescues USDC, USDT and USDG from wallets with no gas. Agents check a wallet for stuck or frozen stablecoins, quote a send or a swap into the gas coin, collect the wallet signature and track the transfer. Base, Arbitrum, Ethereum, Polygon, Avalanche, BNB Chain, HyperEVM, Robinhood Chain, Solana and Tron.67MIT- AlicenseBqualityDmaintenanceEnables AI agents to perform gasless cross-chain transactions by paying with supported tokens on one chain and executing on another, all without exposing private keys.1927 npm1Apache 2.0

Flashift MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to compare rates across 100+ blockchains and 15+ liquidity providers, create non-custodial cross-chain swaps, and track transaction status without any API key. It exposes tools for listing currencies, quoting swaps with AI-ranked routing tags, generating deposit addresses, and monitoring exchanges to completion.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.