Skip to main content
Glama
agents-trust

Agents Trust MCP

Agents Trust MCP

Find APIs for your task from Claude Desktop, Cursor or Claude Code. Recommendations include URLs, prices and call details. Inspect returns the stored evidence for one exact endpoint URL. This stdio server runs on your computer. Paid calls use your own wallet; Agents Trust holds no wallet keys.

Runtime requires Node.js 20 or later. Install from npm; your MCP host starts it over standard input/output:

npx -y @agents-trust/mcp

Supply a wallet only to the runtime launcher (see Configuration). To build from source instead, see Development.

Tools and cost

Tool

Input

Result

Fee

recommend

need; optional limit, live, max_price_usd, chain, view

APIs for your task and call details

0.01 USDC outside the free demos

inspect

url; optional view

Stored endpoint evidence without calling the provider

1% of the endpoint's lowest quoted price, minimum 0.001 USDC

receipt

payment_attempt_id

Eventual settlement result

Free

health

none

Service version

Free

Ask your host to call inspect with an exact endpoint URL from a recommendation. Preserve its fixed query parameters. For inspect, view accepts legacy, compact, evidence or debug; for recommend it accepts legacy, compact or evidence. Omitting it uses the API's legacy response. An unknown URL returns an unpaid 404. The API rejects malformed, credential-bearing and private URLs before payment. Inspect never calls or purchases the provider's service.

recommend inputs: need is 2–300 characters with at least two letters or digits; limit is 1–5; live may be 1 to prefer recently verified endpoints; chain is a CAIP-2 network such as eip155:8453; max_price_usd is a non-negative number. receipt takes the payment_attempt_id returned with a paid answer (a UUID version 7).

Example: ask your host to call recommend with {"need":"weather","view":"compact"}. Free demos may change. max_price_usd limits a recommended provider's price; it does not limit the recommendation fee. Calling a recommended API is a separate purchase.

A paid answer includes payment_attempt_id when available. Use receipt to check settlement; receiving an answer does not confirm settlement. A pending receipt can be looked up again for free.

Related MCP server: nohumans-mcp

Configuration

Environment variable

Default

Purpose

AGENTS_TRUST_ENABLE_PAYMENTS

unset / disabled

Owner opt-in: exact true grants at most one payment authorization per server process

AGENTS_TRUST_WALLET_PRIVATE_KEY

unset

Your EVM private key, with 0x prefix; needed for paid calls

AGENTS_TRUST_MAX_CALL_USDC

0.01

Maximum fee for one Recommend or Inspect call in USDC

AGENTS_TRUST_SESSION_CAP_USDC

0.01

Maximum reserved spend for one server process

Payments stay disabled even when a wallet key is present. The wallet owner can explicitly supply AGENTS_TRUST_ENABLE_PAYMENTS=true in the local launcher or select the bundle’s payment opt-in. This grants the process one authorization within the monetary caps; there is no per-call human confirmation. An agent tool argument, service response or provider instruction cannot grant payment authority. Use a dedicated low-balance wallet with USDC on Base mainnet. The server signs x402 authorizations locally and sends them only to https://api.agents-trust.com. It accepts the published Base USDC asset and Agents Trust payment address. A changed address requires a server update. Other payment networks are unsupported.

Limits accept non-negative decimal strings with up to six decimal places. Zero disables paid calls. Reservations count signing attempts, including failed or uncertain requests, and remain reserved until the process exits. The process consumes its single authorization before signing, even if signing or the request fails. Raising a monetary cap does not allow a second authorization. Free calls and receipts remain available. Restarting the server resets both the session cap and the authorization grant. Stop the host from automatically restarting with payment opt-in until the wallet owner has reconciled prior attempts. Recommend and Inspect share the same grant, reservation cap and serialized payment queue, including concurrent calls. Paid submissions are never automatically repeated. On an uncertain result, check your wallet and any receipt before making another paid call.

Without a key, free tools and free demo recommendations work. A paid Recommend or Inspect request returns a message explaining which variable to configure. Keep keys out of chat, version control and shell history. Have your local secret manager or host supply the wallet variable to the child process.

Claude Desktop

Merge this into claude_desktop_config.json. The free configuration requires no key:

{
  "mcpServers": {
    "agents-trust": {
      "command": "npx",
      "args": ["-y", "@agents-trust/mcp"],
      "env": {
        "AGENTS_TRUST_MAX_CALL_USDC": "0.01",
        "AGENTS_TRUST_SESSION_CAP_USDC": "0.01"
      }
    }
  }
}

For paid calls, explicitly grant AGENTS_TRUST_ENABLE_PAYMENTS=true and supply AGENTS_TRUST_WALLET_PRIVATE_KEY to this process through your secure local launcher. GUI applications need the full path to your Node executable and do not always inherit your terminal environment.

Cursor

Use the same mcpServers block in ~/.cursor/mcp.json or .cursor/mcp.json, adding "type": "stdio" to the server entry (Cursor configuration). To read a key already injected into Cursor's environment, add this entry to the server's env object:

"AGENTS_TRUST_WALLET_PRIVATE_KEY": "${env:AGENTS_TRUST_WALLET_PRIVATE_KEY}"

Keep wallet configuration local; do not commit it.

Claude Code

claude mcp add --transport stdio agents-trust -- npx -y @agents-trust/mcp

See Claude Code MCP configuration. Launch Claude Code with payment opt-in chosen by the wallet owner and the wallet variable supplied by your secret manager. The server inherits it from the host.

Development

Build from source in a shell without AGENTS_TRUST_WALLET_PRIVATE_KEY; the build and bundle commands refuse that variable even when it is empty.

git clone https://github.com/agents-trust/agents-trust-mcp.git
cd agents-trust-mcp
npm ci
npm run typecheck
npm run lint
npm test
npm run build

Run the local server with node dist/index.js. Standard output carries MCP messages only. Tests generate throwaway keys in memory and make no payments. Development tests require Node.js 22.13+ or 24; CI also checks the built stdio server on Node.js 20.

npm run test:paid is an offline cryptographic authorization test using a generated throwaway key and mocked HTTP. No test reads a funded wallet or submits a real payment. Dependency installation scripts are disabled by .npmrc; use npm ci to preserve the reviewed lockfile. The bundle packer is also locked locally.

MIT licensed. See LICENSE.

Available Tools

4 tools
healthCheck service versionA
Read-onlyIdempotent

Check that the Agents Trust API is reachable and read its deployed version. Free, read-only, no parameters. Use it to diagnose connection problems before retrying recommend or inspect; it does not measure data freshness. Returns data.status ("ok") and data.version (deployment identifier).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so 'read-only, free, no parameters' largely restates structured data. The description still earns credit for disclosing the return shape (data.status, data.version) and for bounding expectations with 'does not measure data freshness', which annotations cannot express.

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?

Three tight sentences: purpose first, then routing guidance, then return shape and limitation. No filler, and the most decision-relevant information leads.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly carries the return contract itself (data.status = "ok", data.version). Combined with the routing guidance and the stated limitation, an agent has everything needed to call it and interpret the result.

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 takes zero parameters and the description confirms that ('no parameters'), matching the empty schema exactly. Baseline for a 0-param tool applies; there is nothing further to disambiguate.

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?

States a specific verb and resource: check reachability of the Agents Trust API and read its deployed version. It also names what it is not (a data-freshness check), so an agent can separate it from recommend/inspect without opening any schema.

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

Usage Guidelines5/5

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

Explicitly says when to call it — diagnose connection problems before retrying recommend or inspect — and explicitly excludes a neighboring concern (data freshness). Both the trigger and the non-use case are stated, not inferred.

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

inspectInspect evidence for one endpointA

Read the stored evidence for one exact x402 endpoint URL: price, payment networks, liveness, delivery history and risk flags. It never calls or pays the endpoint itself. Use it before paying an endpoint you already know, for example one returned by recommend; use recommend instead to find candidates for a task. Demo endpoints are free; other indexed endpoints cost 1% of the endpoint's lowest quoted price, minimum 0.001 USDC. An unindexed URL returns ENDPOINT_NOT_INDEXED without payment. Paying needs the wallet owner to set AGENTS_TRUST_ENABLE_PAYMENTS=true and AGENTS_TRUST_WALLET_PRIVATE_KEY (Base USDC); one paid call per process, capped by AGENTS_TRUST_MAX_CALL_USDC (default 0.01). Otherwise it returns an error and sends nothing. Errors and empty results are free; paid calls are never retried. Returns JSON {data, payment_attempt_id, request_id}; payment_attempt_id is set only after a paid answer.

NameRequiredDescriptionDefault
urlYesExact public HTTPS endpoint URL, including any fixed query parameters, e.g. a pick's url from recommend. Private, malformed and credential-bearing URLs are rejected before payment.
viewNoResponse detail: compact (smallest), evidence (full evidence blocks), legacy (default, original field layout) or debug (adds diagnostic fields).

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already disclose the key traits (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds substantial context about side effects: payment, unindexed URLs returning ENDPOINT_NOT_INDEXED without charge, wallet env-var prerequisites, per-process paid-call limits, and no retries on paid calls. Return shape is only partially covered (keys named, no field semantics), which leaves moderate gaps.

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

Conciseness4/5

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

Front-loads the core purpose and the recommend alternative in the first two sentences, then layers cost, prerequisites, and return shape. Dense and mostly waste-free, though the payment/limit clause runs long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers intent, alternatives, cost model, error semantics, auth requirements, and a return-value sketch for a 2-parameter paid tool with no output schema. Nothing material for correct invocation is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters including the view enum; the description adds only the URL-domain detail (exact x402 endpoint, unindexed URLs error out before payment). This is useful but does not explain the view modes beyond what the schema states.

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?

Names a specific verb and resource (read stored evidence for one exact x402 endpoint URL) and enumerates what the evidence contains: price, networks, liveness, delivery history, risk flags. It also explicitly carves out what it does not do (never calls or pays the endpoint) and contrasts with the recommend sibling.

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

Usage Guidelines5/5

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

Gives an explicit decision rule: use inspect before paying an endpoint you already know (e.g. from recommend), and use recommend instead to discover candidates. Cost and precondition rules (demo free, 1% of quoted price, 0.001 USDC minimum) further clarify when a call is appropriate.

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

receiptCheck payment settlementA
Read-onlyIdempotent

Check whether a paid recommend or inspect answer has settled on-chain. Free, read-only, and never repeats the paid request. Use it after a paid call, with the payment_attempt_id that call returned; answers arrive before settlement completes. Returns data.state (pending, settled, settle_failed_after_answer or settle_unknown_after_answer) and data.transaction (transaction hash once settled, else null). An unknown id returns a not-found error. Pending or unavailable does not prove that no money moved: check the wallet before paying again.

NameRequiredDescriptionDefault
payment_attempt_idYesThe payment_attempt_id returned by a paid recommend or inspect call: a lowercase UUIDv7. Copy it unchanged.

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already declare readOnly/idempotent/non-destructive, but the description adds information they cannot carry: the call is free, it never re-triggers the paid request, an unknown id returns a not-found error, and a pending state is not proof that no charge occurred. It also enumerates the four possible settlement states, so the agent knows the full outcome space before calling.

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?

Purpose, cost, when-to-use, parameter source, return shape, error case and the safety caveat each appear once, in that order. Nothing is repeated and the most decision-relevant facts come first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description names the returned fields (data.state with all four values, data.transaction with its null case) and the error behavior. For a one-parameter polling tool, an agent has everything needed to call it and interpret the result.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter already documents its provenance and UUIDv7 format. The description repeats that the id comes from the preceding paid call, which reinforces usage but adds no new semantics about the value itself, so the baseline holds.

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?

States a specific verb and resource: check whether a paid answer has settled on-chain. It scopes the tool to post-payment polling, which clearly separates it from the siblings recommend, inspect and health that the agent would otherwise confuse it with.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('use it after a paid call, with the payment_attempt_id that call returned') and an explicit caution about what to do when the answer is pending ('check the wallet before paying again'). It also rules out a wrong inference ('pending or unavailable does not prove no money moved').

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

recommendRecommend paid APIs for a taskA

Find which paid x402 API to call for a task described in plain words, ranked with evidence. Each pick has the endpoint URL, provider price and payment network, a ready request template, liveness, delivery evidence and risk flags. Use it when you do not yet know which API to call; use inspect instead when you already have one exact endpoint URL, and receipt to confirm settlement after paying. Weather, crypto prices and web search are free demo needs; other needs cost 0.01 USDC. Paying needs the wallet owner to set AGENTS_TRUST_ENABLE_PAYMENTS=true and AGENTS_TRUST_WALLET_PRIVATE_KEY (Base USDC); one paid call per process, capped by AGENTS_TRUST_MAX_CALL_USDC (default 0.01). Otherwise it returns an error and sends nothing. Errors and empty results are free; paid calls are never retried. Returns JSON {data, payment_attempt_id, request_id}; payment_attempt_id is set only after a paid answer. Returns fewer picks, or none, when evidence is insufficient.

NameRequiredDescriptionDefault
liveNoOnly 1 is accepted, which is also the default: prefer endpoints with recent liveness evidence.
needYesThe work you need done, in plain words, e.g. "weather forecast for Berlin" or "translate text to German". 2–300 characters with at least two letters or digits.
viewNoResponse detail: compact (smallest, pick essentials and request template), evidence (adds ranking, liveness, delivery and payment evidence per pick) or legacy (default, original field layout).
chainNoOnly return providers that accept payment on this network, as a CAIP-2 id, e.g. eip155:8453 for Base.
limitNoMaximum number of picks, 1–5. Default 3.
max_price_usdNoHighest provider price per call in USD you accept. Separate from the 0.01 USDC recommendation fee; the provider's own quote at call time is authoritative.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly=false, openWorld=true, idempotent=false, destructive=false; the description goes far beyond by disclosing the payment prerequisites (AGENTS_TRUST_ENABLE_PAYMENTS, wallet key, Base USDC), the one-paid-call-per-process limit and AGENTS_TRUST_MAX_CALL_USDC cap, the error-and-no-send path, the no-retry rule for paid calls, and which outcomes are free. Nothing here contradicts the annotations.

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

Conciseness4/5

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

Front-loaded with the core purpose and the sibling routing before the payment mechanics, and every clause carries operational information. It is dense and slightly run-on in the payment sentence, but no sentence is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid, open-world tool with no output schema, the description still names the return keys ({data, payment_attempt_id, request_id}), explains when payment_attempt_id is set, and warns that results may be fewer or empty when evidence is insufficient. An agent has everything needed to call it and interpret the result.

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

Parameters3/5

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

Schema coverage is 100%, so all six parameters including the live const, chain CAIP-2 pattern and limit bounds are already documented in the schema. The description adds cost context around max_price_usd being separate from the recommendation fee, but does not describe need, view, chain or limit beyond what the schema says, so the baseline of 3 holds.

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?

States a specific verb and resource ('Find which paid x402 API to call') plus the input form (plain words) and output shape (ranked picks with evidence). It explicitly distinguishes itself from both siblings by naming when inspect and receipt apply instead.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use rule ('when you do not yet know which API to call') and names the alternatives with the exact condition that selects them: inspect for a known endpoint URL, receipt to confirm settlement after paying. It also flags which needs are free demos versus paid.

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. 3 tool updatesv0.1.2
    • Changedinspect2 fields changed
      • changedInput schema / properties / url / description
        Previous value: -"Exact endpoint URL, including its fixed query parameters. The API rejects private URLs before payment."New value: +"Exact public HTTPS endpoint URL, including any fixed query parameters, e.g. a pick's url from recommend. Private, malformed and credential-bearing URLs are rejected before payment."
      • addedInput schema / properties / view / description
        Added value: +"Response detail: compact (smallest), evidence (full evidence blocks), legacy (default, original field layout) or debug (adds diagnostic fields)."
    • Changedreceipt1 field changed
      • addedInput schema / properties / payment_attempt_id / description
        Added value: +"The payment_attempt_id returned by a paid recommend or inspect call: a lowercase UUIDv7. Copy it unchanged."
    • Changedrecommend6 fields changed
      • addedInput schema / properties / chain / description
        Added value: +"Only return providers that accept payment on this network, as a CAIP-2 id, e.g. eip155:8453 for Base."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of picks, 1–5. Default 3."
      • addedInput schema / properties / live / description
        Added value: +"Only 1 is accepted, which is also the default: prefer endpoints with recent liveness evidence."
      • changedInput schema / properties / max_price_usd / description
        Previous value: -"Maximum provider price; separate from the recommendation fee."New value: +"Highest provider price per call in USD you accept. Separate from the 0.01 USDC recommendation fee; the provider's own quote at call time is authoritative."
      • addedInput schema / properties / need / description
        Added value: +"The work you need done, in plain words, e.g. \"weather forecast for Berlin\" or \"translate text to German\". 2–300 characters with at least two letters or digits."
      • addedInput schema / properties / view / description
        Added value: +"Response detail: compact (smallest, pick essentials and request template), evidence (adds ranking, liveness, delivery and payment evidence per pick) or legacy (default, original field layout)."
  2. 1 tool updatev0.1.1
    • Changedreceipt1 field changed
      • changedInput schema / properties / payment_attempt_id / pattern
        Previous value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"New value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
  3. 4 tool updatesv0.1.0
    • First observedhealth
    • First observedinspect
    • First observedreceipt
    • First observedrecommend

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct role: recommend discovers APIs, inspect reads evidence for a known endpoint, receipt verifies settlement, and health diagnoses API reachability. The descriptions explicitly cross-reference the neighboring tools, making misselection unlikely.

Naming Consistency3/5

All names are short lowercase single tokens, but the set mixes verbs (recommend, inspect) with nouns (receipt, health) rather than following a predictable verb_noun pattern. The names remain readable, but the convention is only partially consistent.

Tool Count5/5

Four tools is well-scoped for this server's focused purpose: discovery, endpoint inspection, settlement verification, and health checking. Each tool earns its place without unnecessary surface area.

Completeness4/5

The core lifecycle is covered: find a candidate API, inspect its evidence, pay through the relevant call, and confirm settlement. A minor gap is the lack of a general catalog/browse tool for indexed endpoints beyond task-based recommendation or exact-URL inspection.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Enables agents to search and inspect live service offerings, generate x402 payment snippets, and understand blockchain-only balance policies.
    4
    32 npm
    4
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to search and verify machine-payable HTTP 402/x402 APIs using live probe data, providing ranked results by liveness, uptime, price, and trustworthiness.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Lets agents discover, verify, and inspect x402/B402 payment endpoints on BNB Chain, with read-only tools to list skills, check live counter behavior, and review the settlement tape.
    1 npm
    MIT