Skip to main content
Glama
mystiquemide

qualto-mcp

by mystiquemide

Qualto

Qualto is a bounded, verification-first AI trading agent built on Binance Agent OS.

It can reason about a trading mandate and execute on Binance — but it isn't allowed to claim an order succeeded until Binance itself proves it.

The LLM decides what claim to propose. Qualto's deterministic boundary decides whether it may execute. Binance decides whether the resulting claim is true.

If Binance can't prove it, the agent can't claim it.

Binance Agent OS Mini Hackathon · Track A

The Problem

An AI agent can say "I bought BNB" whether the trade happened or not. Those reports are self-reported — the user has to independently open the exchange and check. Until then, a hallucinated fill and a real one look identical.

Qualto makes Binance verify the agent's claim automatically.

Related MCP server: binance-mcp-chainvector

How Qualto Solves It

user → AI agent → claim → Qualto boundary → Agent OS → Binance → verification → agent response
  1. The agent reasons. Given a mandate plus live Binance price and balance, the LLM drafts a strict trading claim — symbol, side, quantity, price, status — as validated JSON.

  2. The claim gets an identity. Before execution, the claim receives a unique ID, and Qualto stamps that ID into the Binance order itself using newClientOrderId.

  3. Execution through Agent OS. Qualto executes the order through the Binance Agent OS MCP endpoint — the agent never places raw orders.

  4. Binance becomes the judge. Qualto reads the order back from Binance through two lookup paths (by orderId and by the claim ID) and requires both readbacks to agree. Claim fields are checked against the exchange record: symbol, side, quantity, price, status.

  5. The verdict is enforced, not advisory. Match → PROVED. No match, unreadable, or unprovable → UNPROVED and the trading session locks — the agent cannot trade again until an operator intervenes.

When the agent claims a fill, Qualto additionally verifies the executed quantity before returning PROVED. Resting orders, cancellations, and partial fills are each attested against their actual exchange state.

Why Binance Agent OS Is Essential

Qualto is load-bearing on Agent OS — remove it and nothing above survives:

  • Execution: all orders go through the official Agent OS MCP endpoint (agent.binance.com/mcp/agentic).

  • Authentication: OAuth 2.1 via the registered Agent OS host connector.

  • Market data: live prices and balances from spot.tickerPrice and spot.getAccount.

  • The proof itself: Binance's order record — with the claim ID inside it — is the source of truth for every verdict. The proof lives on Binance's ledger, not in Qualto's log.

Of the 366 tools Agent OS exposes, Qualto admits exactly 6 (spot account, ticker, place, get, trades, cancel). Everything else is rejected before a request exists.

What We Built

An AI trading agent whose execution claims must be proven by Binance, plus the verification layer that enforces it.

Capability

Status

LLM agent loop: mandate → live context → reasoned claim (tools disabled, stdin prompt, 120 s budget)

Shipped, proven live

Claim-bound placement + dual readback + field diff via Agent OS

Shipped, proven live

Verdicts PROVED / UNPROVED / PARTIAL / PENDING with session lock

Shipped, proven live

Session states ACTIVE / BLOCKED / ERROR / CLOSED, replay protection, write gates

Shipped

Standalone MCP server (qualto-mcp, 5 tools) for any MCP-compatible client

Shipped

Agent skill (qualto-claim-bound-trading) for Claude Code / Qwen Code

Shipped

qualto verify — read-only re-verification of receipts against live Binance

Shipped

Web console (landing + docs) — qualto.vercel.app

Shipped

CI (pytest / ruff / mypy), GitHub Pages, Vercel auto-deploy

Shipped

Planned but not built: native attestation in the Agent OS console, x402 payment gating, multi-venue attestation, remote-HTTP MCP, multi-session persistence.

Architecture

┌───────────────────────── operator ─────────────────────────┐
│  CLI (qualto propose / claim / agent / verify / cleanup)   │
│  Web console (Next.js — qualto.vercel.app)                 │
└──────────┬────────────────────────────────────────────────┘
           │ mandates, claims (strict JSON)
┌──────────▼────────────────────────────────────────────────┐
│ AI agent layer                                             │
│  LLM (Hermes): mandate + live context → one claim.         │
│  Zero tools. Prompt over stdin. 120 s wall clock.          │
├───────────────────────────────────────────────────────────┤
│ Qualto boundary (Python 3.11+, zero core deps)            │
│  claim schema      strict, decimal-exact, replay-proof     │
│  attestation       bind → dual readback → field diff       │
│  session           ACTIVE / BLOCKED / ERROR / CLOSED       │
│  receipts          append-only JSONL, fsync, 0600          │
│  MCP server        5 tools, double write gate              │
├───────────────────────────────────────────────────────────┤
│ Agent OS client                                            │
│  JSON-RPC over streamable HTTP · request-ID matching ·     │
│  two-layer tool allowlist (366 → 6)                        │
└──────────┬────────────────────────────────────────────────┘
           │ OAuth 2.1 (registered host connector)
┌──────────▼────────────────────────────────────────────────┐
│ Binance Agent OS MCP → Binance spot sub-account            │
│  The order record IS the proof                             │
└───────────────────────────────────────────────────────────┘

Live Proof

Real orders, placed by the agent, still visible in Binance order history — each carrying its claim ID as the client order ID:

Binance order

Claim ID

Verdict

12565050896

qualto-claim-56eda03b6069

PROVED, then CANCELED at zero execution

12565013192

qualto-claim-live00000002

PROVED, then CANCELED at zero execution

12565577634

string-transport proof

PROVED, then CANCELED at zero execution

Every live proof used the zero-cost pattern: below-market dust limit → PROVED → immediate cancel → post-cancel readback confirming zero execution. The negative path was also proven live, twice: gateway severed before placement → UNPROVED → session BLOCKED → writes refused → operator recovery.

Re-verify any receipts file against live Binance at any time:

qualto verify --receipts-file receipts.jsonl   # read-only

Benchmarks (measured, not marketed): PROVED verdict → confirmed cancellation 353 ms · full Agent OS gateway cycle 1.2–1.4 s · mandate → PROVED ~28 s (LLM-bound) — verification is never the bottleneck; the thinking is.

Reliability: the behavior above is backed by 11,433 passing tests (~19 s, no network) — 10,665 parameterized claim-contract cases (sides × order types × statuses × quantities × price tolerances × envelope shapes), 12 MCP server tool/gate tests, and 756 focused behavioral tests (dual readback, replay rejection, session locking, orphan cleanup, CLI). Reproduce with pytest -q.

Run It Yourself

Requirements: Python 3.11+ · a Binance account with a funded Agentic sub-account · a registered Agent OS host credential (Codex CLI authenticated with the Binance connector) as QUALTO_CODEX_CREDENTIALS_FILE. No database, no personal API keys, no main-account access — ever.

Quickstart

git clone https://github.com/mystiquemide/qualto && cd qualto
python3 -m venv .venv && .venv/bin/pip install -e ".[test]"

export QUALTO_CODEX_CREDENTIALS_FILE=/path/to/host-credentials.json
.venv/bin/qualto smoke          # read-only gateway check
.venv/bin/qualto propose --mandate "buy 5 USDT of BNB"   # agent drafts, nothing placed

# first zero-cost proof cycle on your own sub-account
cat > my-claim.json <<'EOF'
{
  "claimId": "qualto-claim-yourownid001",
  "mandate": "buy a small below-market BNB limit order, then cancel",
  "symbol": "BNBUSDT", "side": "BUY", "orderType": "LIMIT",
  "quantity": "0.009", "price": "600", "status": "NEW",
  "reason": "Dust proof order bound to this claim ID."
}
EOF
.venv/bin/qualto claim --claim-file my-claim.json \
  --receipts-file runtime/my-receipts.jsonl \
  --confirm-live-write --cancel-after-attestation

Web console: cd web && npm install && npm run dev.

Security

  • Permission model: only Qualto's boundary places orders; the LLM has zero tools; the MCP surface is five fixed tools; the underlying Binance operations are a 6-entry allowlist enforced before any request is built.

  • Secret handling: the host credential is loaded per request, in memory, never logged, never in receipts; a dedicated test asserts no leakage. Missing or expired ⇒ fail closed, no order.

  • Input validation: closed claim schema at the boundary — unknown fields, float quantities, reused claim IDs, out-of-range prices rejected before placement.

  • Access control: every live write requires --confirm-live-write (CLI) or the env flag plus per-call confirmation (MCP); exit code 2 and nothing is sent without it.

  • Transport: JSON-RPC responses matched to request IDs; mismatches rejected.

Safety

  • The agent may: read live context, draft claims, and — through the Qualto boundary — place claim-bound orders and cancel the exact order bound to a claim.

  • The agent may not: reach withdrawal, transfer, futures, or margin paths; place any order that isn't claim-bound; unblock a session it got blocked.

  • Requires explicit human approval: every live write, every session recovery, every cleanup.

  • Unknown outcomes fail closed: an order whose placement result is unknown produces an intent receipt and a qualto cleanup path that resolves it by claim ID. The safe state is always "no order."

Agent Integrations

Agent

How it interacts

Status

OpenAI Codex

The OAuth credential rides Codex's registered Binance Agent OS connector. All live proofs in this repo ran on this path.

Tested, live-proven

Claude Code / Claude Desktop

Install the agent skill (~/.claude/skills/) and/or connect qualto-mcp as a stdio MCP server (config).

Supported

Qwen Code

Same skill installs to ~/.qwen/skills/.

Supported

Any MCP-compatible client

pip install -e ".[mcp]" then qualto-mcp.

Supported

Binance Integration

  • Endpoint: Binance Agent OS MCP (agent.binance.com/mcp/agentic), JSON-RPC over streamable HTTP, protocol 2025-03-26, OAuth 2.1 via the registered host connector.

  • Tools: 366 exposed → 6 allowlisted: spot.getAccount, spot.tickerPrice, spot.newOrder, spot.getOrder, spot.myTrades, spot.deleteOrder.

  • Order identity: every order placed with newClientOrderId = claimId — the attestation is visible in Binance's own order history UI.

  • Envelope: all activity confined to a funded Agentic sub-account; main-account funds are structurally out of reach.

Skill Integrations

  • qualto-claim-bound-trading (skills/) — teaches SKILL.md-compatible agents the policy: never call Binance order endpoints directly, report verdicts verbatim, never soften an UNPROVED, stop when the session locks.

  • MCP tools (qualto-mcp): qualto_session_status, qualto_read_context, qualto_attest_claim, qualto_cleanup_claim, qualto_verify_receipts. Live writes require QUALTO_ENABLE_LIVE_WRITE=1 and a per-call confirm_live_write flag.

Other Integrations

  • Web console — Next.js 15 (web/), deployed to qualto.vercel.app and GitHub Pages.

  • Hermes — LLM provider for the drafting loop.

  • CI/CD — GitHub Actions on every push; Pages and Vercel deploy from main.

Authentication

Users never hand Qualto a Binance API key. Authentication rides a registered Agent OS host connector's OAuth credential (QUALTO_CODEX_CREDENTIALS_FILE), loaded per request, expiry-checked every call, never persisted. Sessions are local and explicit; MCP sessions add the double write gate.

Limitations

  • Single session, spot only, one symbol per claim; attestation is per-order, not per-strategy.

  • The claim file — not the mandate — is the binding contract.

  • Third-party agent OAuth identities are not yet admitted by Binance; Qualto runs on the registered host-credential path and fails closed when unavailable.

  • The MCP server is stdio-only; remote-HTTP clients (ChatGPT, Devin) cannot connect today.

  • Qualto proves a trade happened exactly as claimed — it does not judge whether the trade was a good idea.

  • Human supervision required for: every live write, every session recovery, any state after an UNPROVED verdict.

Vision

Everyone is building agents that decide what to trade. Qualto tackles whether you can trust what the agent says it did. That wedge generalizes: claim-bound orders as an Agent OS convention (reserved client-order-ID namespace, native console attestation), "no proof, no payment" settlement gating for agentic commerce (x402), multi-venue attestation, and remote MCP so any hosted agent can connect.

Contributing

git clone https://github.com/mystiquemide/qualto && cd qualto
python3 -m venv .venv && .venv/bin/pip install -e ".[test,quality]"
.venv/bin/pytest -q && .venv/bin/ruff check . && .venv/bin/mypy

PR expectations: tests for every behavioral change, all quality gates green, no credentials or receipt data committed. New Binance operations go into the allowlist in qualto/mcp/client.py with negative tests; new agent surfaces belong in skills/ and qualto/mcp/server.py with the same fail-closed gates. MIT license. Keep the invariant intact — if Binance can't prove it, the agent can't claim it.

Available Tools

5 tools
qualto_attest_claimC

Validate and place one claim-bound order, read it back by both IDs, and return PROVED, UNPROVED, PARTIAL, or PENDING.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYes
confirm_live_writeNo
cancel_after_attestationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior, but it only reveals the high-level write/read-back flow. It omits crucial details such as confirm_live_write defaulting to false, the effect of cancel_after_attestation, and any side effects or conditions around placing the order.

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 dense sentence with the action front-loaded and no filler. Every clause contributes to understanding the tool's core behavior.

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?

This is a moderately complex tool with a nested claim object, two behavior-modifying boolean flags, no annotations, and zero schema parameter descriptions. The high-level summary is not enough for an agent to select or call it correctly; the missing parameter semantics and side-effect details are significant gaps.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters. The agent gets no meaningful insight into the required claim object shape, the live-write confirmation flag, or the cancellation behavior, so it cannot invoke the tool with confidence.

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 identifies a specific action and resource: validating and placing a claim-bound order, reading it back, and returning a verdict. This clearly distinguishes it from sibling tools like qualto_cleanup_claim or qualto_verify_receipts, though it does not explicitly name those alternatives.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus the sibling tools, no prerequisites, and no exclusions. The description only states what the tool does, leaving the agent to infer the appropriate context.

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

qualto_cleanup_claimC

Resolve an orphan order by claim ID and cancel that exact order.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYes
confirm_live_writeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal that the tool cancels an order, indicating a destructive side effect, but it does not mention irreversibility, the meaning of confirm_live_write, what happens when no matching claim/order exists, or any other consequences of the operation.

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 focused sentence with no filler. It front-loads the primary action and keeps the resource and scope immediate, which is appropriate for this tool.

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?

Despite having only two parameters and an output schema, the description is incomplete for a potentially destructive operation. It omits the semantics of confirm_live_write, fails to explain the claim object structure, and provides no warning about side effects or preconditions. An agent would likely need to guess important call details.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented parameters. It adds that the claim object identifies the order, but the schema's actual 'claim' parameter is an object with additionalProperties true, not a simple claim ID, and the description does not clarify the required shape of that object or the role of confirm_live_write.

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 states a specific operation ('cancel that exact order') and identifies the resource ('orphan order' by 'claim ID'). It is reasonably distinguishable from the sibling tools, though 'resolve' is a slightly vague verb and the description does not explicitly contrast it with the attest/verify siblings.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like qualto_attest_claim or qualto_verify_receipts. The phrase 'orphan order' implies some context, but it does not explain what constitutes an orphan order, when cleanup is appropriate, or when this tool should be avoided.

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

qualto_read_contextA

Read live price and quote balance context without placing an order.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoBNBUSDT

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It explicitly states that no order is placed, establishing a read-only/no-side-effect profile, and 'live' indicates real-time data. It does not cover auth/rate limits, but those are less critical for a simple read tool with an output schema.

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

Conciseness5/5

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

A single front-loaded sentence that states the operation, the data returned, and the key constraint. Every word earns its place and there is no redundant padding.

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 one-parameter read tool with an output schema, the description is mostly sufficient, but it lacks explicit parameter semantics and does not route the agent among sibling tools. The no-order constraint is valuable, yet the missing usage/parameter guidance leaves a visible gap.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions the `symbol` parameter. Although the schema's title 'Symbol' and default 'BNBUSDT' offer some hints, the description does not compensate for the missing coverage by explaining how symbol affects the returned price/quote-balance context.

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

Purpose5/5

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

The description states a specific action ('Read'), a concrete resource ('live price and quote balance context'), and adds a discriminating negative ('without placing an order'). This clearly differentiates it from the order/claim-oriented siblings without requiring the schema.

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

Usage Guidelines4/5

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

It supplies a clear usage context: an agent should call this when it needs price/quote-balance information but must avoid placing an order. It does not name alternative sibling tools, so it stops short of full routing guidance.

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

qualto_session_statusB

Read the current Qualto session state and write policy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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 behavioral disclosure burden. 'Read' implies a non-mutating operation, but the description does not explicitly state side effects, permissions, or that nothing is changed, and the phrase 'write policy' adds ambiguity about whether a write operation is involved.

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 immediately states the action and subject. It contains no filler, and for a parameterless tool this is an appropriately minimal and well-structured definition.

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 and an output schema, the description need not document inputs or return shapes. It is slightly ambiguous whether 'write policy' is a noun phrase being read or an instruction to write, but overall the tool is simple enough that the description provides adequate context.

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

Parameters4/5

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

The tool has zero parameters and an empty input schema, so there is no parameter detail the description needs to add. The no-parameter baseline of 4 applies because the description cannot meaningfully clarify parameters that do not exist.

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 states a specific verb ('Read') and a concrete resource ('current Qualto session state and write policy'), so it is not a tautology. It does not explicitly differentiate from qualto_read_context, but the resource scope is distinct enough for an agent to identify the tool's purpose.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool vs alternatives such as qualto_read_context or qualto_attest_claim. No conditions, exclusions, or when-not-to-use instructions are provided, leaving the agent to infer routing from the name and context signals.

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

qualto_verify_receiptsA

Re-read persisted claim attestations using read-only Binance calls.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It explicitly states that the operation is read-only and uses Binance calls, which signals safety and an external dependency. It does not cover edge cases, but the key non-mutating behavior is clearly communicated.

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 that front-loads the core action and resource before noting the read-only mechanism. Every phrase earns its place without unnecessary detail.

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 zero-parameter, read-only tool with an output schema present, the description covers the essential behavior and safety profile. It could add explicit guidance on when to use it among the sibling tools, but nothing critical is missing for invoking it correctly.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is effectively complete, so there is no parameter semantics gap for the description to fill. The baseline of 4 for a zero-parameter tool 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 uses a specific verb ('re-read'), a clear resource ('persisted claim attestations'), and a method ('read-only Binance calls'). This clearly distinguishes it from mutating siblings like qualto_attest_claim and qualto_cleanup_claim.

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 're-read' language implies it should be used after attestations have been persisted, and 'read-only' contrasts with mutating operations. However, it does not explicitly state when to prefer this over other read-oriented siblings like qualto_read_context or qualto_session_status, nor does it name alternatives or exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedqualto_attest_claim
    • First observedqualto_cleanup_claim
    • First observedqualto_read_context
    • First observedqualto_session_status
    • First observedqualto_verify_receipts

TDQS

A3.5/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a clear role: session state, market context, claim attestation, cleanup, and verification. There is slight overlap between the informational tools (session_status, read_context, verify_receipts), but descriptions make the boundaries clear.

Naming Consistency4/5

Most tools follow a consistent qualto_<verb>_<noun> pattern with a uniform prefix. The exception is qualto_session_status, which uses a noun phrase rather than a verb, creating a minor inconsistency.

Tool Count5/5

Five tools is well-scoped for a specialized attestation workflow. Each tool earns its place and the set is neither bloated nor too thin.

Completeness4/5

The tool set covers the core claim lifecycle: check session, read context, place/validate a claim, clean up orphans, and verify persisted receipts. A minor gap is the absence of a general order listing or detailed status history tool, but the core workflow is complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Agent-native, self-hosted MCP server for crypto trading and DeFi management. Enables agents to query balances, execute trades, and manage positions with a policy engine and secure key storage.
    7
    Apache 2.0
  • F
    license
    C
    quality
    C
    maintenance
    One MCP server that pairs Binance execution with ChainVector market intelligence. Connect it to any MCP client and the agent can read live signals, regime classification, probabilities and risk gauges from ChainVector, pick a strategy template, and execute the resulting decision on Binance.
    100
    -
  • A
    license
    B
    quality
    B
    maintenance
    A Binance price-action and liquidity-focused MCP server for AI agents, offering 39 tools for market data, analysis, screening, alerts, and order execution with paper-first safety and optional real trading.
    39
    MIT