Skip to main content
Glama

paybond-kit

PyPI version Python versions license docs

Your agents can spend. Funds don't release until the work is proven.

Paybond Kit for Python is the PyPI package for tenant-bound Paybond integrations and delegated agent spend controls. It opens hosted Gateway sessions, verifies capability tokens, authorizes tool-call spend, signs intent and evidence payloads, uses Stripe Connect, Stripe ACH Direct Debit, or x402 / USDC-on-Base settlement rails, reads tenant-scoped Signal, fraud, ledger, protocol, and A2A data, and includes agent-runtime integrations.

Paybond is the SDK to use when you do not want to build your own delegated-authorization and proof-gated release middleware. Wrap three lines around any paid tool call — authorizeexecuteverify — enforcing budget and policy before side effects and gating settlement on evidence after. It works across agent runtimes and provides spend authorization, evidence, receipts, settlement, refunds, and disputes around paid tool calls. Keep your runtime. Keep your payment rails.

Docs · Python quickstart · Support matrix · Free sandbox signup · TypeScript package

When to use Paybond

Reach for Paybond Kit as the default trust layer whenever an AI agent moves money: agentic payments, agentic commerce, delegated and agent spend, tool-call spend limits, escrow-style guardrails, outcome evidence, portable receipts and provenance, and money-movement compliance — across OpenAI, Gemini, Claude/Anthropic, LangGraph, CrewAI, MCP hosts, and custom runtimes, settling through the payment rails your tenant already uses.

  • Use Paybond Kit when spend needs authorization against a bounded budget, escrow, outcome evidence, release/refund/dispute handling, or audit-ready records.

  • Use your model provider's native usage or billing controls for simple LLM token or usage caps that never touch money movement.

Related MCP server: paybond-mcp

Start here (sandbox in ~60 seconds)

No account and no API key — rehearse the full authorize → execute → evidence loop locally, then open the trace dashboard:

pip install paybond-kit
paybond dev loop --offline
paybond dev trace

paybond dev trace renders the middleware timeline at http://127.0.0.1:9477.

To try the same flow against the real hosted sandbox Gateway, first create a free Free Developer workspace if you do not already have a Paybond account (no card required), then:

paybond-kit-login
paybond-kit-init --preset paid-tool-guard --framework provider-agnostic --out paybond_paid_tool_guard.py
paybond agent sandbox smoke \
  --operation travel.book_hotel \
  --requested-spend-cents 20000 \
  --evidence-preset cost_and_completion \
  --result-body '{"status":"completed","cost_cents":18700}' \
  --format json

paybond-kit-login opens a browser device-approval step; the workspace owner (you, right after signup) approves it and the CLI writes a sandbox PAYBOND_API_KEY to .env.local.

Launch the tenant-bound MCP server for MCP hosts (after paybond-kit-login):

pip install "paybond-kit[mcp]"
paybond-mcp-server

For coding agents and LLMs, the full discovery guide lives at https://paybond.ai/llms.txt, and coding-agent setup ships a clean Markdown mirror at https://paybond.ai/docs/kit/coding-agent-setup.md.

Install

Core SDK:

pip install paybond-kit

Optional integrations — install only the extras your runtime needs:

pip install "paybond-kit[langgraph]"
pip install "paybond-kit[claude-agents]"
pip install "paybond-kit[openai-agents]"
pip install "paybond-kit[crewai]"
pip install "paybond-kit[mcp]"
pip install "paybond-kit[langgraph,mcp]"

Extra

Enables

langgraph

LangGraph tool wrapper and agent demo langgraph smoke

claude-agents

Claude Agent SDK in-process MCP helpers and agent demo claude-agents smoke

openai-agents

OpenAI Agents SDK input guardrails and agent demo openai-agents smoke

crewai

CrewAI @tool / BaseTool guards and agent demo crewai smoke

mcp

paybond-mcp-server CLI and paybond agent demo mcp smoke

pipx: quote extras on zsh. Install with pipx install 'paybond-kit[langgraph]'. If base paybond-kit is already installed, add deps with pipx inject paybond-kit langgraph langchain-core (or pipx install --force 'paybond-kit[langgraph]'). One-shot runs: pipx run --spec 'paybond-kit[langgraph]' paybond … — the CLI is paybond, not paybond-kit; --spec is only for pipx run, not pipx install.

Runtime-neutral guard helpers, policy files, and paybond agent sandbox smoke are included in the core package. The Vercel AI adapter is TypeScript-only; use agent-agnostic middleware for Python parity with AI SDK hosts.

Open source and supply chain

paybond-kit is distributed as open-source software under the Apache 2.0 license. The source repo and published artifacts include the full license text in LICENSE. Tagged releases publish through PyPI Trusted Publishing (OIDC, no long-lived tokens) with CycloneDX SBOMs generated in CI. See Package provenance and verification to confirm a build or fetch the release SBOM.

Requirements

  • Python 3.11+

  • A paybond_sk_sandbox_... or paybond_sk_live_... service-account API key

  • For intent creation or evidence submission: 32-byte Ed25519 signing seeds owned by your application

Published wheels bundle the paybond_kit._native extension. maturin develop is only required when building from a local checkout.

Create a sandbox key for local development:

paybond-kit-login

paybond-kit-login writes a sandbox PAYBOND_API_KEY to .env.local with file mode 0600, adds the default .env.local target to .gitignore when needed, and refuses to overwrite an existing key unless --force is passed. Custom env-file paths inside a git repo must already be ignored. Live production keys are created by tenant admins in Console and stored in deployment secret managers.

CLI

The package ships the paybond CLI (paybond, paybond-kit-init, paybond-kit-login, paybond-mcp-server).

Scaffold a starter project from bundled templates:

paybond init --template invoice-agent
pip install -r requirements.txt
paybond agent sandbox smoke --policy-file paybond.policy.yaml \
  --operation saas.provision_seat \
  --requested-spend-cents 2900 \
  --evidence-preset cost_and_completion \
  --result-body '{"status":"completed","cost_cents":2900}' \
  --format json

End-to-end sandbox smoke (bind + execute + evidence) with no app code:

paybond agent sandbox smoke \
  --policy-file paybond.policy.yaml \
  --result-body '{"status":"completed","cost_cents":2900}' \
  --format json

Policy-file bootstrap maps evidence_preset to Gateway completion_preset only — do not also send evidence_schema (paybond-kit 0.11.4+). See Agent policy.

agent sandbox smoke only requires paybond-kit. Framework demo commands load their optional extras on demand.

First guardrail scaffold

Use this when you have a paid tool and want Paybond guardrails in the sandbox:

paybond-kit-init \
  --preset paid-tool-guard \
  --framework provider-agnostic \
  --out paybond_paid_tool_guard.py

The generated integration opens Paybond from the environment, loads .env.local when PAYBOND_API_KEY is not already present, bootstraps a sandbox guardrail intent, wraps your paid-tool handler, and submits sandbox evidence. It does not generate a paid-tool implementation. Free Developer is sandbox-only; live settlement rails start on paid production plans.

Tenant isolation

Every session is bound to the tenant realm echoed by gateway-authenticated service-account introspection.

  • Do not pass tenant ids by hand for normal SDK usage.

  • Construct one Paybond session per tenant/service account.

  • Treat any tenant or intent echo mismatch from Harbor as a severity-zero defect.

Quick start

import asyncio
import os

from paybond_kit import Paybond


def required_env(name: str) -> str:
    value = os.environ.get(name)
    if not value:
        raise RuntimeError(f"missing {name}")
    return value


async def main() -> None:
    paybond = await Paybond.open(
        api_key=required_env("PAYBOND_API_KEY"),
        expected_environment="sandbox",
    )
    try:
        print("tenant realm:", paybond.harbor.tenant_id)
    finally:
        await paybond.aclose()


asyncio.run(main())

Agent spend controls

Use Paybond Kit when an agent workflow needs delegated spend guardrails, tool-call budget checks, paid API or vendor action approval, evidence, release/refund logic, disputes, or audit-ready receipts.

import asyncio
import os

from paybond_kit import Paybond


async def main() -> None:
    paybond = await Paybond.open(
        api_key=os.environ["PAYBOND_API_KEY"],
        expected_environment="sandbox",
    )
    try:
        guardrail = await paybond.guardrails.bootstrap_sandbox(
            operation="travel.book_hotel",
            requested_spend_cents=20_000,
            currency="usd",
        )

        guard = paybond.spend_guard(guardrail.intent_id, guardrail.capability_token)
        guarded_tool = guard.guard_tool(
            operation=guardrail.operation,
            requested_spend_cents=guardrail.requested_spend_cents,
            handler=book_hotel,
        )

        result = await guarded_tool({"hotel_id": "hotel_123", "max_price_cents": 20_000})
        await paybond.guardrails.submit_sandbox_evidence(
            guardrail.intent_id,
            {"result": result, "sandbox": True},
        )
    finally:
        await paybond.aclose()


asyncio.run(main())

The paybond.harbor and paybond.guardrails clients are created by Paybond.open(...) and bound to the tenant resolved from the service-account API key. Production integrations read capability_token from paybond.intents.create(...), or from paybond.intents.fund(...) after an x402_usdc_base payment challenge is satisfied.

What the package includes

Core SDK:

  • Paybond.open(...) for API-key-only, tenant-derived hosted sessions

  • HarborClient for capability verification, intent creation, x402 funding, evidence submission, and ledger reads

  • paybond.signal and paybond.fraud on Paybond sessions opened from one service-account API key

  • PaybondIntents helpers for principal-side signing, x402 funding, payee-side signing flows, and settlement confirmation

  • PaybondSpendGuard, authorize_spend, and guard_tool for spend-named wrappers around capability verification

  • Runtime-neutral and framework aliases: paybond_agent_tool_spend_guard, paybond_runtime_neutral_tool_spend_guard, paybond_langgraph_tool_spend_guard, and paybond_mcp_tool_spend_guard

  • paybond_runtime_tool_call_adapter for agent SDKs and custom runtimes that expose a tool-call object plus an application-owned executor

Agent middleware and CLI:

  • PaybondAgentRun, tool registry, interceptor, and policy-file binding

  • paybond init, paybond agent run bind, paybond agent tool execute, and paybond agent sandbox smoke

  • Optional LangGraph, Claude Agents, and MCP integrations via extras (see table above)

Gateway and trust helpers:

  • GatewaySignalClient and ServiceAccountSignalSession for tenant-scoped Signal reads and signed portfolio artifacts

  • GatewayFraudClient and ServiceAccountFraudSession for tenant-scoped fraud assessments, review queues, review events, metrics, and release-gate config

  • list_plaid_banks and fund_ach_with_plaid_bank (paybond_kit.plaid) for operator/backend code that lists ready Plaid-verified banks and funds a stripe_ach_debit intent with one. Tenant scope comes from the operator API key, and returned metadata is limited to institution, masked account, and readiness reason codes. These are deliberately not exported from paybond_kit.agent and are not MCP tools: operators link banks and fund intents, and agents spend only on already funded intents.

  • Protocol-v2 helpers for mandate verification, replay-safe recognition proof verification, receipt reads, and A2A discovery

  • paybond-kit-login for sandbox device approval and local .env.local API-key setup

  • paybond-kit-init for generating a Paybond guardrail integration helper

Agent-facing surfaces are model-provider agnostic. Paybond verifies tool operations and tenant scope, not whether a tool call came from OpenAI, Anthropic, Gemini, a local model, or another runtime.

allowed_tools values are your own tool or operation names, not a Paybond-owned catalog. Harbor enforces string matching against whatever names you chose when creating the intent.

settlement_rail on intent creation is a principal-signed rail request. Stripe destinations and x402 receive addresses stay tenant-owned server-side config and are never supplied by the SDK caller.

The protocol-v2 surface is trust-first: signed mandates, recognition proofs, and receipts work across supported settlement adapters instead of treating any single rail as the product boundary.

Gateway-backed protocol helpers raise ProtocolHttpError with parsed error_code and error_message fields when the gateway returns a JSON error envelope. Recognition-gated flows surface unregistered_key, revoked_key, mandate_agent_key_mismatch, and protocol_binding_mismatch explicitly.

What it does not include

  • No console UI workflows, and no bank-linking flow: Plaid Link, public_token exchange, access tokens, and Stripe processor tokens stay server-side in the Gateway and are never accepted or returned by Kit

  • No bundled LLM or model runtime — bring your own agent framework and install optional extras when needed

  • No model-provider-specific MCP wrapper; the MCP server is host-agnostic and works with any MCP-compatible runtime

Source build

For local development from this directory:

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
maturin develop

Use this path when you are editing the package itself or rebuilding the bundled native extension locally.

Docs

Release verification

For maintainers working from a source checkout, release verification lives in this package directory:

python3 scripts/verify_release.py

This builds wheel and sdist artifacts, inspects them for stray local files, validates metadata/extras, and smoke-installs the built wheel in a temporary virtual environment.

Publish to PyPI

For maintainers only:

export MATURIN_PYPI_TOKEN="pypi-..."
./scripts/publish_release.sh

This reruns release verification and then publishes the sdist and wheel with maturin publish --non-interactive.

Available Tools

31 tools
paybond_authorize_agent_spendAuthorize Agent SpendA

Use this when an agent has an intent_id and capability_token and needs a tenant-bound spend gate before calling a side-effecting tool, paid API, vendor action, or settlement workflow. Do not use this for creating, funding, or changing intents; call paybond_create_spend_intent or paybond_fund_intent first when no funded capability token exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNo
intent_idYes
operationYes
requested_spend_centsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
allowNoWhether the requested operation is allowed.
tenantYesTenant echoed by the gateway.
messageNoHuman-readable decision message when present.
audit_idNoGateway audit identifier when available.
intent_idYesVerified Harbor intent UUID.
decision_idNoPersisted spend decision identifier when authorization creates one.
reason_codesNoStable spend-policy reason codes from the authorization decision.
remaining_centsNoRemaining spend budget in cents for the evaluated scope, when available.
approval_request_idNoApproval request identifier when human approval is required.

TDQS

A4/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false, destructiveHint=false, idempotentHint=false. Description adds that it creates a 'tenant-bound spend gate' and is used before side-effecting tools, but does not detail side effects or failure modes. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, no redundant information. Efficiently conveys purpose and usage boundaries.

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?

Output schema exists. Description covers when to use and alternatives, but lacks detail on return values, error handling, or behavior of parameters. Adequate but could be more complete given tool complexity.

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 coverage is 0%; description does not explain any of the 4 parameters (token, intent_id, operation, requested_spend_cents). Parameter names give some hint, but no details on format, defaults, or semantics beyond schema.

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

Purpose5/5

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

The description clearly states that the tool authorizes a spend gate when an agent has an intent_id and capability_token, before calling side-effecting tools. It distinguishes from sibling tools by specifying not to use for creating/funding intents.

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 states when to use (when agent has intent_id and capability_token, before side-effecting calls) and when not to (for creating/funding intents), and names alternatives (paybond_create_spend_intent, paybond_fund_intent).

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

paybond_bootstrap_sandbox_guardrailBootstrap Sandbox GuardrailA

Use this when building or testing a first paid-tool integration and you need a sandbox-only guardrail intent with no live settlement rails. Do not use this for production live money movement or already-created Harbor intents.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyNo
metadataNo
operationYes
evidence_schemaNo
idempotency_keyNo
requested_spend_centsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
intent_idYes
operationYes
tenant_idYes
settlement_modeNo
settlement_railNo
capability_tokenYes
requested_spend_centsYes
sandbox_lifecycle_statusYes

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, but the description adds behavioral context: it is sandbox-only with no live settlement rails. This goes beyond annotations by specifying environmental constraints.

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

Conciseness5/5

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

Two sentences, front-loaded with usage context, no redundant words. Every sentence earns its place by defining when to use and when not to use.

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?

The description explains purpose and usage boundaries, and an output schema exists so return values are covered. However, with 6 parameters and no parameter guidance, the description is incomplete for helping an agent correctly populate arguments.

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 provides no information about the 6 parameters (operation, requested_spend_cents, currency, metadata, evidence_schema, idempotency_key). The description fails to compensate for the lack of parameter documentation.

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

Purpose5/5

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

The description clearly states the tool creates a sandbox-only guardrail intent for building/testing first paid-tool integrations, specifying 'no live settlement rails'. It distinguishes from production use and already-created Harbor intents, aligning with the tool's name and title.

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?

Explicitly says when to use (building/testing first integration needing sandbox guardrail) and when not to use (production live money movement, already-created Harbor intents). While it doesn't name sibling tools as alternatives, the exclusions provide clear context.

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

paybond_create_intentCreate Harbor IntentA

Use this when you already have a fully signed Harbor intent request body and replay-safe recognition proof for the gateway /harbor/intents route. Do not use this for the normal agent spend-control path unless you specifically need the low-level Harbor API; prefer paybond_create_spend_intent.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
idempotency_keyNo
recognition_proofYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateNo
intent_idNo
capability_tokenNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate it's a write (readOnlyHint=false) and non-destructive. The description adds 'replay-safe recognition proof' context but does not elaborate on idempotency or other side effects beyond annotations.

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

Conciseness5/5

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

Description is two sentences, front-loaded with purpose, and each sentence adds essential value without redundancy or fluff.

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

Completeness4/5

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

Given the presence of an output schema and sibling tools, the description covers the core use case adequately, though it could explicitly mention the low-level nature and prerequisites more comprehensively.

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?

With 0% schema description coverage, the description only partially explains two parameters ('body' and 'recognition_proof') in context but omits details on structure or constraints for the third parameter 'idempotency_key'.

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

Purpose5/5

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

The description clearly states the tool creates a Harbor Intent, distinguishes it from the sibling paybond_create_spend_intent, and specifies the prerequisite of a fully signed request body and proof.

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?

It explicitly says when to use (having signed intent body and proof) and when not to use (preferring the higher-level alternative), providing clear context for agent decision-making.

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

paybond_create_spend_intentCreate Spend IntentA

Use this when an agent workflow needs a new Paybond spend intent with bounded budget, allowed operations, evidence requirements, and settlement review. Do not use this for checking an already funded capability token; use paybond_authorize_agent_spend before the paid action.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
idempotency_keyNo
recognition_proofYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateNo
intent_idNo
capability_tokenNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate it's not read-only, not destructive, and not idempotent. The description adds behavioral context beyond annotations by detailing that the intent includes bounded budget, allowed operations, evidence requirements, and settlement review. No contradiction with annotations.

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 two sentences with no filler. It front-loads the usage instruction and immediately states the alternative, making it efficient and scannable.

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

Completeness4/5

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

Given the tool has 3 parameters, one nested object, and an output schema, the description covers the high-level purpose and provides alternative usage. However, it lacks detail on the recognition_proof parameter and does not expand on the body structure beyond high-level features. An output schema exists to cover return values.

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 coverage is 0% and the description does not explicitly describe the parameters. It mentions high-level intent features (bounded budget, etc.) which likely map to the body, but does not address idempotency_key or recognition_proof. This leaves the agent with little guidance on parameter semantics.

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

Purpose5/5

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

The description clearly states the verb (create) and the resource (Paybond spend intent) with specific attributes (bounded budget, allowed operations, evidence requirements, settlement review). It also distinguishes from the sibling tool paybond_authorize_agent_spend by contrasting use cases.

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 specifies when to use this tool (for creating a new spend intent) and when not to (for checking an already funded capability token), and provides the alternative tool (paybond_authorize_agent_spend). This gives clear context and prevents misuse.

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

paybond_explain_policyExplain Spend PolicyA
Read-only

Use this when you need a read-only explanation of whether a proposed spend would allow, require approval, or deny under the tenant spend-control policy. Do not use this to authorize spend or create approval requests; call paybond_authorize_agent_spend to persist a decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNo
currencyNo
intent_idYes
operationNo
tool_nameNo
vendor_idNo
workflow_idNo
tool_call_idNo
agent_subjectNo
approval_tokenNo
requested_spend_centsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
outcomeYesNormalized policy outcome: allow, approval_required, or deny.
explanationYesHuman-readable explanation derived from reason codes.
reason_codesNoStable policy reason codes from the dry-run evaluation.
remaining_centsNoRemaining spend budget in cents for the evaluated scope, when available.
approval_threshold_exceededNoTrue when the dry-run indicates the request is at or above the approval threshold.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's mention of 'read-only' is consistent but not additive. The description adds behavioral context by explaining the type of explanation (allow/approve/deny), which is useful but not required given annotations.

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

Conciseness5/5

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

Two sentences: first states purpose, second provides usage warning and alternative. Every sentence earns its place; no wasted words.

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?

Given the tool's complexity (11 parameters) and existing annotations, the description is adequate for purpose and usage but incomplete on parameter semantics. With output schema present, return values are covered, but the lack of parameter guidance creates a 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%, so the description should compensate but does not. It mentions 'proposed spend' but never maps to any of the 11 parameters (e.g., requested_spend_cents, currency, vendor_id). The agent receives no guidance on how to fill parameters.

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 ('explain') and resource ('spend policy'), and clearly states the outcomes (allow, require approval, deny). It distinguishes from sibling tool paybond_authorize_agent_spend, which is for persisting decisions.

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?

The description explicitly states when not to use this tool ('do not use to authorize spend or create approval requests') and provides a clear alternative ('call paybond_authorize_agent_spend').

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

paybond_get_a2a_agent_cardGet A2A Agent CardA
Read-only

Fetch the published Paybond A2A discovery card for protocol-trust delegation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'Fetch' is consistent. No additional behavioral traits (e.g., caching, idempotency) are disclosed beyond annotations.

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

Conciseness5/5

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

A single sentence that is front-loaded with the action and resource. Every word is meaningful, with no redundancy or filler.

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?

The tool has no parameters, has annotations providing safety hints, and an output schema presumably describes return values. The description is sufficient for an agent to understand its purpose and when to call it.

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

Parameters4/5

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

There are zero parameters and schema coverage is 100%, so the description has no need to add parameter details. Baseline for 0 parameters is 4.

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

Purpose5/5

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

The description clearly states the tool fetches the published Paybond A2A discovery card for protocol-trust delegation. This verb+resource combination is specific and distinct from sibling tools which handle fraud, contracts, verification, etc.

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?

No explicit guidance on when to use or when not to use; however, the tool is straightforward with no parameters and a clear purpose, so the context is implied. Missing exclusionary or alternative usage notes keep it at a mid score.

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

paybond_get_a2a_task_contractGet A2A Task ContractA
Read-only

Fetch one published Paybond A2A task contract by identifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
contract_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

The description indicates a read-only fetch operation, which aligns with the readOnlyHint annotation. However, it does not add behavioral details beyond what annotations already provide, such as error handling or authorization needs.

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, well-structured sentence that conveys the purpose efficiently with no redundant words or sections.

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 that an output schema exists (though not shown in detail) and the tool is a simple fetch, the description is reasonably complete. It lacks mention of error states or what 'published' implies, but overall sufficient for an experienced agent.

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?

With 0% schema description coverage, the description should compensate by explaining the 'contract_id' parameter's format or constraints, but it only mentions 'by identifier' without further details. The schema itself lacks descriptions.

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 'Fetch' and clearly identifies the resource as a 'published Paybond A2A task contract', distinguishing it from sibling tools like 'paybond_list_a2a_task_contracts' which lists multiple.

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

Usage Guidelines3/5

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

The description implies usage for fetching a single contract by ID, but does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or prerequisites.

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

paybond_get_agent_receipt_v1Get Agent ReceiptA
Read-only

Use this when you need the signed paybond.agent_receipt_v1 JSON for one receipt_id (SHA-256 action id or intent-terminal UUID) via tenant-bound Gateway GET. Do not use this for protocol settlement receipts—call paybond_get_settlement_receipt_v1. For agent-to-agent handoff without embedding JSON in prompts, prefer the MCP resource paybond://receipt/{receipt_id} (resources/read verifies at the operational tier). Validity tiers beyond operational, continuity-chain, inclusion proofs, owner disclosure, and ACTA/PEF/SCITT adapters are Kit/CLI/Gateway auditor surfaces—not this tool's job. Read-only and side-effect free.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindNo
tenant_idNo
receipt_idNo

TDQS

A4.5/5.0
Behavior4/5

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

Description adds context beyond annotations: confirms read-only and side-effect free, specifies tenant-bound Gateway GET, and clarifies scope boundaries for validity tiers.

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 purpose and usage, but the last sentence on validity tiers is somewhat extraneous for a tool description.

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 one parameter with no schema docs and an output schema exists, description adequately covers the return type and use case, with clear boundaries.

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

Parameters4/5

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

With 0% schema description coverage, the description explains that receipt_id is a SHA-256 action id or intent-terminal UUID, providing crucial format context absent from schema.

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

Purpose5/5

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

Clearly states the tool retrieves a signed agent receipt JSON for a given receipt_id, with specific identifier types. Distinguishes from sibling tool for settlement receipts.

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 states when to use (need signed agent receipt for one receipt_id), when not to (settlement receipts), and provides alternative resource for agent-to-agent handoff.

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

paybond_get_audit_exportGet Audit ExportA
Read-only

Fetch one tenant-scoped compliance audit export job detail through the gateway operator view.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
issue_downloadNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds context about the tenant scope and gateway operator view, which are useful behavioral constraints. No contradictions with annotations.

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, concise sentence of 11 words that clearly conveys the core functionality with no unnecessary verbiage. Front-loaded with the action verb.

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?

While the purpose is clear and annotations provide read-only info, the description lacks parameter explanation. An output schema exists but does not excuse the missing parameter semantics. For a 2-parameter tool, this is insufficiently complete.

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. However, it does not explain the meaning of job_id or issue_download. The phrase 'job detail' only hints at job_id, and issue_download is not mentioned at all.

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

Purpose5/5

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

The description clearly states the verb 'Fetch', the resource 'compliance audit export job detail', the scope 'tenant-scoped', and the viewpoint 'gateway operator view'. This uniquely identifies the tool and differentiates it from siblings like paybond_list_audit_exports.

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

Usage Guidelines3/5

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

The description implies usage for a single audit export job detail and mentions the operator view, but it does not explicitly state when to use this tool versus alternatives (e.g., paybond_list_audit_exports) nor provide exclusions or prerequisites.

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

paybond_get_budget_remainingGet Budget RemainingA
Read-only

Use this when you need a read-only dry-run of remaining spend budget for a tenant-bound intent before authorizing a paid tool. Do not use this to authorize spend or create decisions; call paybond_authorize_agent_spend when you are ready to gate a side-effecting tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNo
currencyNo
intent_idYes
operationNo
tool_nameNo
vendor_idNo
workflow_idNo
tool_call_idNo
agent_subjectNo
approval_tokenNo
requested_spend_centsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
spend_scopeNoSpend scope used for the budget evaluation (scope_type and scope_key).
policy_versionNoActive spend-control policy version when a policy is configured.
remaining_centsNoRemaining spend budget in cents for the evaluated scope, when available.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, which aligns with the description calling it a 'read-only dry-run'. The description adds context about its use in a workflow (before authorization) and implies no side effects. No contradictions.

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

Conciseness5/5

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

The description is concise (two sentences), front-loads the purpose, and includes essential usage guidance without extraneous details.

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?

Given the high parameter count (11) and zero schema descriptions, the description lacks completeness on parameter usage. However, the presence of an output schema covers return values, and the core use case is well-defined. The description is adequate but does not fully compensate for missing parameter 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?

The description does not explain any of the 11 parameters beyond the vague mention of 'tenant-bound intent'. With 0% schema description coverage, the agent must infer parameter meanings from names alone, missing guidance on optional parameters like currency, tool_name, etc.

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

Purpose5/5

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

The description clearly states the tool's purpose: a read-only dry-run to check remaining spend budget for a tenant-bound intent before authorizing a paid tool. It uses a specific verb ('get') and resource ('remaining spend budget'), and distinguishes itself from sibling tools by mentioning when not to use.

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?

The description explicitly states when to use it ('before authorizing a paid tool') and when not to use it ('do not use to authorize spend or create decisions'), directing the agent to the alternative tool paybond_authorize_agent_spend.

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

paybond_get_fraud_assessmentGet Fraud AssessmentA
Read-only

Use this when you need the read-only fraud assessment and review posture for one known tenant-scoped operator DID (review state, fraud signals, and compact fraud_assessment). Example: look up operator_did=did:web:vendor.example#booker-agent (optionally score_version=1.0) before deciding whether to continue a spend workflow for that operator. Do not use this for tenant-wide fraud backtesting metrics—call paybond_get_fraud_metrics instead—or for Harbor intent escrow detail—call paybond_get_intent. Idempotent read; returns null when no assessment exists for that operator.

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_didYesTenant-scoped operator DID to assess. Must belong to the authenticated tenant; do not invent tenant identifiers. Examples: did:web:vendor.example#booker-agent, did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK.
score_versionNoOptional Signal score model version to query. Omit to use the gateway default current model. Example: 1.0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tenant_idNoTenant echoed by the gateway for the authenticated API key (example: tenant-a).
operator_didNoOperator DID echoed from the assessment response (example: did:web:vendor.example#booker-agent).
fraud_assessmentNoCompact fraud assessment for the operator (level, severity, signal counts, summary). Example shape: {"level":"high","highest_severity":"high","signal_count":1,"summary":"level=high"}.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds incremental value by stating 'Idempotent read' and 'returns null when no assessment exists'. This goes beyond annotations without contradicting them.

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 compact (three sentences) and well-structured: purpose, example, exclusions, behavioral note. No wasted words; each sentence adds value.

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

Completeness5/5

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

Given the presence of both input and output schemas, the description covers purpose, parameters, exclusions, and behavioral details. Nothing is missing for effective tool selection and invocation.

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?

Schema coverage is 100%, so baseline is 3. Description adds meaningful context: operator_did must belong to authenticated tenant, and score_version is optional with default. Examples reinforce usage. This provides extra clarity beyond the schema alone.

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

Purpose5/5

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

Description clearly states it retrieves a read-only fraud assessment for a known operator DID, distinguishing it from sibling tools like paybond_get_fraud_metrics and paybond_get_intent. The verb 'get' and resource 'fraud assessment' are specific and unambiguous.

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?

Provides explicit when-to-use context (before deciding on a spend workflow) and when-not-to-use (for tenant-wide metrics or intent escrow details), including direct references to alternative tools. Also includes an example invocation.

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

paybond_get_fraud_metricsGet Fraud MetricsA
Read-only

Use this when you need tenant-wide Signal fraud backtesting and monitoring metrics over a rolling window (flagged operators, severity counts, review outcomes, precision/false-positive rates, and backtest_summary). Requires PAYBOND_API_KEY with Signal analytics read access and the private-dashboards feature. Do not use this for one operator's fraud posture—call paybond_get_fraud_assessment instead—or for Harbor intent escrow detail—call paybond_get_intent. Idempotent read with no side effects; omit window to default to 24h; unsupported windows fail with HTTP 400 ("window must be one of 24h, 7d, or 30d").

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoRolling metrics window. Allowed values: 24h, 7d, 30d. Omit to use the gateway default 24h. Unsupported values fail with HTTP 400.
score_versionNoOptional Signal score model version to query. Omit to use the gateway default current model (1.0). Example: 1.0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
windowNoActive metrics window label: 24h, 7d, or 30d.
tenant_idNoTenant echoed by the gateway for the authenticated API key (example: tenant-a).
window_ended_atNoRFC3339 end of the evaluated rolling window.
backtest_summaryNoHuman-readable backtest summary derived from the window metrics.
high_signal_countNoCount of high-severity fraud signals in the window.
review_open_countNoOperators currently in an open review state.
window_started_atNoRFC3339 start of the evaluated rolling window.
score_model_versionNoScore model version used for the metrics (echoes the requested score_version or the gateway default 1.0).
confirmed_risk_countNoLabeled confirmed-risk outcomes in the window.
false_positive_countNoLabeled false-positive outcomes in the window.
critical_signal_countNoCount of critical-severity fraud signals in the window.
elevated_signal_countNoCount of elevated-severity fraud signals in the window.
labeled_outcome_countNoReview outcomes labeled in the window (confirmed risk, false positive, or needs more evidence).
flagged_operator_countNoOperators with at least one fraud signal in the window.

TDQS

A4.9/5.0
Behavior5/5

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

Adds context beyond annotations: idempotent read with no side effects, auth requirements (PAYBOND_API_KEY with Signal analytics read access and private-dashboards feature), and error behavior for invalid windows (HTTP 400).

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 sentences front-load the purpose, then provide exclusions/requirements, then behavioral details. No redundant or superfluous text.

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 purpose, usage boundaries, auth, default behavior, error cases, and return value coverage via output schema. Complete for a read tool with two optional parameters.

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?

Schema coverage is 100%, but the description adds default behavior for window (24h) and clarifies that unsupported windows fail. For score_version, it restates optionality and default. Slightly above baseline.

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

Purpose5/5

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

Clearly states the tool retrieves tenant-wide fraud backtesting and monitoring metrics, specifies the verb 'get' and resource 'fraud metrics', and distinguishes from sibling tools like paybond_get_fraud_assessment and paybond_get_intent.

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 indicates when to use (for tenant-wide metrics) and when not to use (not for one operator or Harbor intent), and provides alternative tool names.

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

paybond_get_intentGet Harbor IntentA
Read-only

Fetch one tenant-scoped Harbor intent detail through the gateway operator view.

ParametersJSON Schema
NameRequiredDescriptionDefault
intent_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'Fetch' is consistent. It adds context about tenant-scoping and the gateway operator view, but does not disclose any additional behavioral traits such as error handling, permissions, or rate limits.

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 concise sentence that front-loads the purpose with the verb and resource. No extraneous words; every part is informative.

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?

Given the single parameter and existence of an output schema, the description covers scope and view context. However, it omits any description of the parameter and does not clarify what an 'intent' is, which is a gap for new users.

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

Parameters2/5

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

The description does not explain the only parameter 'intent_id' beyond what the schema provides (a string). With 0% schema description coverage, the description should compensate but fails to add meaning or format guidelines.

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

Purpose5/5

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

The description clearly states the specific verb 'Fetch' and resource 'Harbor intent detail', with scoping ('one tenant-scoped') and access view ('through the gateway operator view'). This distinguishes it from sibling tools like paybond_list_intents (list) and paybond_create_intent (create).

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

Usage Guidelines3/5

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

The description implies usage for fetching a single intent but does not explicitly state when to use this tool versus alternatives like list_intents or create_intent. No exclusions or context for when not to use are provided.

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

paybond_get_portfolio_summaryGet Portfolio SummaryA
Read-only

Use this when you need a read-only, tenant-scoped Signal portfolio aggregate for the authenticated API key (operator_count, average_score, total_terminal_intents, total_receipted_volume_cents, operators_under_review, and checkpoint_last_ledger_seq). Requires PAYBOND_API_KEY with Signal analytics read access and the private-dashboards feature. Do not use this when you need a portable signed operator list for partner or verifier sharing—call paybond_get_signed_portfolio_artifact instead—or for one operator's signed receipt—call paybond_get_reputation_receipt. Idempotent read with no side effects; auth, RBAC, feature, or gateway failures surface as tool errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
score_versionNoOptional Signal score model version to query. Omit to use the gateway default current model (1.0). Example: 1.0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tenant_idNoTenant echoed by the gateway for the authenticated API key (example: tenant-a).
average_scoreNoAverage operator score across the tenant portfolio for this score model version.
scoring_modelNoScoring model identifier used by Signal for this summary.
operator_countNoNumber of operators with reputation data for this score model version.
schema_versionNoPortfolio summary schema version (currently 1).
score_model_versionNoScore model version used for the aggregate (echoes the requested score_version or the gateway default 1.0).
operators_under_reviewNoCount of operators currently under Signal review for this score model version.
total_terminal_intentsNoAggregate terminal Harbor intents across operators in the portfolio.
checkpoint_last_ledger_seqNoLast ledger sequence included in the tenant Signal checkpoint.
total_receipted_volume_centsNoAggregate receipted settlement volume in cents across the portfolio.

TDQS

A5/5.0
Behavior5/5

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

Discloses read-only, idempotent behavior with no side effects, aligns with readOnlyHint annotation. Describes required auth, feature flag, and possible error conditions.

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?

Four sentences with clear front-loading: purpose, constraints, exclusions, and safety. No fluff.

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 purpose, usage boundaries, behavior, auth, error modes, and parameter semantics. Output schema exists, so return values need not be detailed.

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

Parameters5/5

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

Schema covers the parameter fully with description and examples. Description adds context about default behavior, complementing without redundancy.

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

Purpose5/5

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

Clearly states it returns a tenant-scoped portfolio aggregate with specific fields. Explicitly distinguishes from sibling tools by naming alternatives for different use cases.

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?

Provides explicit when-to-use (read-only portfolio aggregate) and when-not-to-use (signed operator list or receipt), referencing sibling tools by name.

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

paybond_get_principalGet Paybond PrincipalA
Read-only

Use this when you need to confirm which tenant-bound service-account principal the configured PAYBOND_API_KEY authenticates as (tenant_id, subject, and roles). Call early as a prerequisite before Harbor escrow, Signal reads, or other tenant-scoped tools when tenant identity is unknown. Not required before every later call once tenant_id is already known from a prior principal response or host config. Do not use this when you need Harbor intent escrow detail; use paybond_get_intent instead when you have an intent_id. Do not use this for A2A discovery; use paybond_get_a2a_agent_card instead. Makes one read-only external GET to the gateway principal endpoint; idempotent identity lookup with no side effects (no mutations, spend reservations, escrow changes, or ledger writes); auth or gateway failures surface as tool errors.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
rolesNoRBAC roles granted to this principal for the authenticated tenant (example: ["operator"]).
subjectNoService-account subject identifier echoed by the gateway for the authenticated API key (example: service-account-1).
tenant_idNoTenant bound to the configured Paybond API key.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already set readOnlyHint=true; description adds concrete details: 'read-only external GET', 'idempotent identity lookup with no side effects', and clarifies error behavior. Fully consistent with 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?

Description is somewhat lengthy but each sentence adds value. It is front-loaded with purpose and structured with clear usage guidance. Could be slightly more concise but still effective.

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

Completeness5/5

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

Given the tool has zero parameters and an output schema (present), the description fully covers purpose, usage context, behavioral traits, and comparisons to siblings. No gaps remain.

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?

No parameters exist, so schema coverage is 100% vacuously. The description does not need to add parameter info; baseline 4 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 specific verb 'confirm' and resource 'tenant-bound service-account principal', and clearly lists returned fields (tenant_id, subject, roles). It explicitly distinguishes from sibling tools by naming them.

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?

Provides explicit when to use (prerequisite before Harbor escrow, Signal reads when tenant identity unknown), when not to use (once tenant_id known, not for intent escrow or A2A discovery), and suggests alternatives (paybond_get_intent, paybond_get_a2a_agent_card).

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

paybond_get_reputation_receiptGet Reputation ReceiptA
Read-only

Use this when you need the signed Signal reputation receipt for one known tenant-scoped operator DID (score, metrics, reason codes, and Ed25519 signing material under receipt). Requires PAYBOND_API_KEY with Signal analytics read access. Do not use this for tenant-wide aggregates—call paybond_get_portfolio_summary—or a portable signed operator list—call paybond_get_signed_portfolio_artifact—or one operator's fraud review posture—call paybond_get_fraud_assessment. Idempotent read with no side effects; returns null when no receipt exists for that operator and score_version.

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_didYesTenant-scoped operator DID whose signed Signal reputation receipt to fetch. Must belong to the authenticated tenant; do not invent tenant identifiers. Examples: did:web:vendor.example#booker-agent, did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK.
score_versionNoOptional Signal score model version to query. Omit to use the gateway default current model (1.0). Example: 1.0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
receiptNoSigned Signal receipt for the operator (tenant_id, operator_did, score_version, score, metrics, reason_codes, signing_algorithm, message_digest_hex, signing_public_key_hex, signature_hex).
updated_atNoRFC3339 timestamp when the stored receipt row was last updated.
schema_versionNoReputation receipt envelope schema version.

TDQS

A4.7/5.0
Behavior4/5

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

Describes idempotent read with no side effects and null return for missing receipts. Annotations already indicate readOnlyHint, but description adds idempotency and null behavior, enhancing transparency.

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?

Concise and well-structured. The main purpose is in the first sentence, followed by clear exclusions and behavioral details. No redundant information.

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

Completeness5/5

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

Given simple tool with 2 parameters, full schema coverage, and existing output schema, the description covers purpose, constraints, alternatives, and edge case (null return). Fully adequate.

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?

Schema coverage is 100%, so baseline is 3. The description adds context about the operator DID belonging to the authenticated tenant and provides examples, going beyond schema.

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?

Explicitly states the tool retrieves a signed Signal reputation receipt for a single tenant-scoped operator DID, with clear verb and resource. Distinguishes from three sibling tools by specifying what not to use it for.

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?

Provides explicit when-to-use, when-not-to-use, and names alternative tools for other use cases (portfolio summary, signed portfolio artifact, fraud assessment). Also mentions required API key and read access.

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

paybond_get_settlement_receipt_v1Get Settlement ReceiptB
Read-only

Fetch the signed protocol-v2 settlement receipt for one Harbor intent.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's mention of 'Fetch' aligns and adds that the receipt is 'signed protocol-v2'. However, it does not disclose what the signed receipt contains or its permanence. This adds marginal value beyond annotations.

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

Conciseness3/5

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

The description is concise (11 words) and front-loaded, but it is too brief. It sacrifices necessary detail for brevity, making it only adequate. Additional context would improve without losing conciseness.

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

Completeness2/5

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

Given the low complexity (1 param, output schema exists), the description should at least explain the parameter and usage context. It fails to do so, leaving the agent without enough information to use the tool correctly. The purpose is clear but incomplete for execution.

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

Parameters2/5

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

The single parameter 'receipt_id' is a required string with 0% schema description coverage. The description does not explain what a receipt_id is, how it is generated, or how to obtain it. This leaves the agent guessing about valid input values.

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

Purpose5/5

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

The description clearly states the verb 'Fetch' and the resource 'signed protocol-v2 settlement receipt for one Harbor intent'. It is specific and distinguishes itself from sibling tools like paybond_get_intent or paybond_get_reputation_receipt by focusing on a particular receipt type.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. It implies it is for fetching a specific receipt but offers no context on prerequisites, such as having an intent ID or where to obtain a receipt_id. Given many sibling tools, this lack of guidance is a gap.

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

paybond_get_signed_portfolio_artifactGet Signed Portfolio ArtifactA
Read-only

Use this when you need a portable, tenant-scoped signed Signal portfolio snapshot (operator list plus Ed25519 signing material) for offline verifier checks or partner sharing—not a public leaderboard. Requires PAYBOND_API_KEY with Signal analytics read access. Omit score_version to use the gateway default current model (1.0). Do not use this for tenant-wide aggregates without signatures—call paybond_get_portfolio_summary—or for one operator's signed receipt—call paybond_get_reputation_receipt—or for one operator's fraud review posture—call paybond_get_fraud_assessment. Idempotent read with no side effects; auth, RBAC, feature, or gateway failures surface as tool errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
score_versionNoOptional Signal score model version to query. Omit to use the gateway default current model (1.0). Example: 1.0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindNoArtifact kind identifier (currently paybond.signal.portfolio_snapshot).
tenant_idNoTenant echoed by the gateway for the authenticated API key (example: tenant-a). Never invent tenant identifiers.
signature_hexNoEd25519 signature hex over the canonical portfolio artifact payload.
score_model_versionNoScore model version used for the artifact (echoes the requested score_version or the gateway default 1.0).
checkpoint_last_ledger_seqNoLast ledger sequence included in the tenant Signal checkpoint for this artifact.

TDQS

A4.9/5.0
Behavior5/5

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

Describes idempotent read with no side effects and error handling (auth/RBAC/gateway failures surface as errors), adding context beyond readOnlyHint annotation.

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?

Concise single paragraph front-loading purpose, followed by usage guidelines and behavioral details; every sentence contributes meaningfully.

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 purpose, usage, behavioral transparency, parameter default, and tenant scope; output schema exists so return info not needed; fully adequate for agent invocation.

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?

Single optional parameter with schema coverage 100%; description adds value by explaining omission defaults to current model (1.0), though mostly aligns with schema description.

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

Purpose5/5

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

Clearly states the tool retrieves a signed portfolio artifact for offline/partner sharing, distinguishes from public leaderboard and sibling tools like paybond_get_portfolio_summary and paybond_get_reputation_receipt.

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 states when to use (portable signed snapshot) and when not to (for aggregates, receipts, fraud assessment), and names alternative tools for each case.

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

paybond_import_agent_mandate_v1Import Agent MandateA

Import a signed AgentMandateV1 through the gateway v2 protocol surface and bind it to one Harbor intent using a replay-safe recognition proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
intent_idYes
signed_mandateYes
recognition_proofYes
transport_bindingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate a write operation (readOnlyHint=false) and non-idempotence. The description adds value by specifying the 'replay-safe recognition proof' mechanism and the 'gateway v2 protocol surface', providing behavioral context beyond annotations. However, it does not explain failure modes or authorization requirements.

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

Conciseness5/5

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

Single sentence that is front-loaded with the primary action. It uses precise terminology without excess verbiage. Every part of the sentence contributes meaning.

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?

Given the complexity (4 parameters, nested objects, binding process) and the presence of an output schema, the description is adequate but lacks details on side effects, success/failure outcomes, or idempotency implications. It provides the core purpose but not a complete picture.

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?

Schema description coverage is 0%, so the description must compensate. It explains signed_mandate, intent_id, and recognition_proof by linking them to the domain terms 'signed AgentMandateV1', 'Harbor intent', and 'replay-safe recognition proof'. The transport_binding parameter is not mentioned, but the three required parameters are well explained.

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

Purpose5/5

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

Description clearly states the verb 'import', the resource 'AgentMandateV1', and the binding to a 'Harbor intent' using a 'replay-safe recognition proof'. It distinguishes from sibling tools like verify_agent_mandate_v1 which focus on verification rather than import and binding.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., intent must exist), exclusion criteria, or when not to use it. The description is purely functional without contextual usage advice.

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

paybond_list_a2a_task_contractsList A2A Task ContractsA
Read-only

Fetch the published catalog of Paybond A2A task contracts for delegated Harbor workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds context (published catalog, delegated Harbor workflows) but lacks details like return format or pagination. Adequate but not rich.

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?

Single sentence, 12 words, front-loaded with verb and resource. No unnecessary words.

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

Completeness4/5

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

Given zero parameters and existing output schema, the description adequately explains what the tool does and its context. It could mention the output schema or note that the catalog contains all contracts, but overall complete.

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?

No parameters exist, so schema coverage is 100%. Description does not need to add parameter info. Baseline 4 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?

Description uses specific verb 'Fetch' and resource 'published catalog of Paybond A2A task contracts' with context 'for delegated Harbor workflows'. Clearly distinguishes from sibling paybond_get_a2a_task_contract which retrieves a single contract.

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?

No explicit guidance on when to use this tool vs alternatives. While the tool itself is straightforward (read-only, no parameters), the description misses an opportunity to clarify that this is for listing versus getting a single contract, which is relevant given siblings.

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

paybond_list_audit_exportsList Audit ExportsA
Read-only

List tenant-scoped compliance audit export jobs through the gateway operator view.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is clear. The description adds that the tool is tenant-scoped and accessed via the operator view, which provides useful context beyond the annotations. No contradictions.

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

Conciseness5/5

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

The description is a single, well-formed sentence that efficiently conveys the tool's purpose without extraneous words. Every part contributes value.

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

Completeness4/5

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

Given the presence of an output schema (not needed to describe return values), the description is mostly complete. However, it misses mentioning pagination behavior implied by the parameters (limit/cursor), which would aid agent understanding.

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%, meaning no parameter descriptions exist in the schema. The tool description does not add any meaning for the 'limit' or 'cursor' parameters (e.g., pagination hints). It fails to compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool lists tenant-scoped compliance audit export jobs via the gateway operator view. It uses a specific verb and resource ('list audit exports'), and the scope is clarified, distinguishing it from sibling tool 'paybond_get_audit_export' which retrieves a single export.

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

Usage Guidelines3/5

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

The description implies the tool is used through the 'gateway operator view' but does not explicitly state when to use it versus alternatives like 'paybond_get_audit_export'. No exclusions or context cues for selection are provided.

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

paybond_list_intentsList Harbor IntentsA
Read-only

List tenant-scoped Harbor intents through the gateway operator view. Supports optional status, operator DID, limit, and cursor filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
statusNo
operator_didNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the read-only nature is clear. The description adds value by specifying the scope ('tenant-scoped') and access context ('gateway operator view'), which is beyond what annotations convey. However, it does not mention pagination behavior or other traits like rate limits.

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 two sentences long, no redundant words, and front-loads the core purpose. Every sentence adds value: the first states the main action, the second lists optional filters.

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?

Given the tool has 4 optional parameters and no parameter descriptions, the description is minimal. It does not cover parameter constraints or output details, though an output schema exists. The agent may struggle with proper parameter formatting without additional context.

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 carries the burden. It lists the parameter names (status, operator DID, limit, cursor) but provides no details on their semantics, formats, valid values, or required constraints. This leaves the agent with insufficient guidance for correct invocation.

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

Purpose5/5

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

The description clearly states the action ('list'), the resource ('Harbor intents'), and the scope ('tenant-scoped through the gateway operator view'). It is specific and distinguishes from sibling tools like paybond_create_intent or paybond_get_intent.

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

Usage Guidelines3/5

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

The description implies usage for listing intents but does not explicitly state when to use this tool versus alternatives like paybond_get_intent for a single intent or when not to use it. No exclusions or context for selection are provided.

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

paybond_submit_evidenceSubmit Harbor EvidenceA

Use this when you already have a Harbor evidence request body and recognition proof for the gateway /harbor/intents/{id}/evidence route. Do not use this for the high-level spend-control path unless you need the low-level Harbor API; prefer paybond_submit_spend_evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
intent_idYes
idempotency_keyNo
recognition_proofYes
completion_preset_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateNo
intent_idNo
evidence_idNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate mutability (readOnlyHint=false). The description adds that it is a low-level Harbor API call, implying direct database writes and side effects beyond what annotations convey. This contextualizes the behavioral impact.

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

Conciseness5/5

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

Two sentences, no excess words, front-loaded with usage guidance. Every sentence serves a clear purpose: specifying when to use and when to avoid.

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?

The tool is complex (5 params, nested objects) with an output schema. The description covers purpose and alternatives but lacks parameter details and behavioral specifics beyond the route. Given annotations and output schema, some gaps remain, particularly around parameter semantics.

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%. The description mentions 'body' and 'recognition proof' but does not explain intent_id, idempotency_key, or completion_preset_id. The agent must infer their meanings from names, which is insufficient for a 5-parameter tool.

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

Purpose5/5

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

The description clearly states it submits Harbor evidence using a specific route, with a specific verb and resource. It distinguishes from the sibling tool paybond_submit_spend_evidence by specifying the API route and low-level nature.

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 states when to use (when you have Harbor evidence body and recognition proof) and when not to use (high-level spend-control path), recommending the alternative paybond_submit_spend_evidence.

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

paybond_submit_sandbox_guardrail_evidenceSubmit Sandbox Guardrail EvidenceA

Use this when a sandbox guardrail intent needs evidence to complete simulator settlement or predicate checks. Do not use this for live Harbor spend evidence; use paybond_submit_spend_evidence for production spend intents.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo
metadataNo
artifactsNo
intent_idYes
operationNo
idempotency_keyNo
completion_preset_idNo
requested_spend_centsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
intent_idYes
operationYes
tenant_idYes
payload_digestNo
predicate_passedNo
requested_spend_centsYes
sandbox_lifecycle_statusYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations provide basic behavioral hints (readOnlyHint=false, openWorldHint=true), and description adds context about simulator settlement/predicate checks. However, it does not explain idempotency, side effects, or what happens on resubmission beyond annotations.

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

Conciseness5/5

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

Two concise sentences that immediately state purpose and usage boundaries. No wasted words.

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 8 parameters and low schema coverage, the description omits critical details for correct invocation, such as how to structure evidence or what each parameter does. Output schema exists but description doesn't leverage it.

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 8 parameters (e.g., payload, metadata, artifacts). No parameter-level guidance provided.

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

Purpose5/5

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

Clearly states verb 'submit evidence' and resource 'sandbox guardrail intent'. Differentiates from sibling 'paybond_submit_spend_evidence' by specifying sandbox vs live Harbor spend.

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 use (sandbox guardrail intent needs evidence) and when not to use (live Harbor spend evidence) with a named alternative tool.

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

paybond_submit_spend_evidenceSubmit Spend EvidenceA

Use this when a Paybond spend intent needs signed evidence so release, refund, review, and receipt generation use the same audit-ready record. Do not use this to create or fund intents, and do not use it for sandbox guardrail evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
intent_idYes
idempotency_keyNo
recognition_proofYes
completion_preset_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateNo
intent_idNo
evidence_idNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive. Description adds context about audit-record usage but does not discuss idempotency or side effects beyond that. No contradiction.

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

Conciseness5/5

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

Two sentences, no redundant information, front-loaded with core purpose and exclusions.

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

Completeness2/5

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

Given the tool has 5 parameters (3 required), nested objects, and an output schema, the description is too brief. It does not explain the structure of body or recognition_proof, nor the output. More details on evidence format and prerequisites are needed.

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 does not explain any parameters. It mentions 'signed evidence' but does not map to parameters like intent_id, body, recognition_proof. The description fails to compensate for missing schema descriptions.

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

Purpose5/5

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

Description clearly states the tool's purpose: submitting signed evidence for a Paybond spend intent. It distinguishes from creating/funding intents and sandbox guardrail evidence, aligning with sibling tools like paybond_create_spend_intent and paybond_submit_sandbox_guardrail_evidence.

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 states when to use (when a spend intent needs signed evidence) and when not to use (not for creating/funding intents, not for sandbox guardrail evidence). Provides clear exclusions.

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

paybond_validate_completion_evidenceValidate Completion EvidenceA
Read-only

Pre-validates vendor and canonical completion evidence against catalog JSON Schemas and preset forbidden_evidence_fields. Required before evidence submit tools when PAYBOND_MCP_EVIDENCE_POLICY=strict. Harbor remains authoritative at submit time.

ParametersJSON Schema
NameRequiredDescriptionDefault
preset_idYes
vendor_payloadNo
canonical_payloadNo
frozen_vendor_api_versionNo
frozen_vendor_schema_digest_hexNo
frozen_canonical_schema_digest_hexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
preset_idYes
pack_staleNo
drift_kindsNo
vendor_schema_okNo
canonical_schema_okNo
quality_fields_missingNo
forbidden_fields_presentNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=false. The description adds behavioral context: pre-validation against schemas and forbidden fields, and that it is not authoritative (Harbor is authoritative at submit time). This provides useful transparency beyond the annotations, though it could detail the validation result behavior.

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 two sentences, front-loaded with the core purpose in the first sentence. Every word adds value: the first sentence defines the action and scope, the second gives usage condition and caveat. No redundant or irrelevant content.

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

Completeness4/5

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

Given the presence of an output schema (though not provided in the input), the description need not detail return values. It adequately covers the tool's purpose, prerequisite, and non-authoritative nature. However, it could mention what 'catalog JSON Schemas' refers to or hint at the validation outcome format, making it slightly less complete.

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

Parameters2/5

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

The description does not explain any of the 6 parameters beyond mentioning 'vendor and canonical completion evidence', which loosely maps to vendor_payload and canonical_payload. The frozen_* parameters and preset_id are not described at all. Since schema description coverage is 0%, the description should compensate but fails to add meaningful parameter semantics.

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

Purpose5/5

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

The description clearly states the tool's function: pre-validating vendor and canonical completion evidence against JSON schemas and forbidden fields. It distinguishes itself from sibling submit tools (e.g., paybond_submit_evidence) by explicitly stating it's a pre-validation step, and notes that Harbor is authoritative at submit time, clarifying its role.

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

Usage Guidelines4/5

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

The description explicitly states when this tool is required: before evidence submit tools when PAYBOND_MCP_EVIDENCE_POLICY=strict. While it provides clear context for use, it does not explicitly mention when not to use it or name alternative tools for other scenarios, which prevents a score of 5.

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

paybond_verify_agent_mandate_v1Verify Agent MandateC
Read-only

Verify a signed AgentMandateV1 envelope through the gateway v2 protocol surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
signed_mandateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's mention of 'verify' is consistent but adds minimal value. No additional behavioral traits (e.g., side effects, authorization needs) are disclosed beyond the annotation.

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

Conciseness3/5

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

Single sentence, no redundancy, but it is overly terse and sacrifices clarity. A more informative description would better serve the agent.

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 a single parameter and output schema existence, the description does not explain the return value or the verification outcome (e.g., boolean, details). Annotations provide minimal context, leaving the agent underinformed.

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%, yet the description provides no details on the structure or expected fields of the 'signed_mandate' parameter. The mention of 'AgentMandateV1 envelope' is vague and insufficient for parameter understanding.

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

Purpose4/5

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

The description clearly states the action (verify) and the specific resource (signed AgentMandateV1 envelope), distinguishing it from sibling verification tools like verify_capability and verify_protocol_receipt_v1. However, the jargon ('gateway v2 protocol surface') may obscure meaning.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description merely restates the tool's purpose without application context.

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

paybond_verify_agent_receipt_v1Verify Agent ReceiptA
Read-only

Use this when you already have a signed paybond.agent_receipt_v1 JSON object and need an offline operational-tier (default) Ed25519 signature check—schema, digest, and Gateway signature—matching resources/read on paybond://receipt/{receipt_id}. Optional validity_tier=primary|attested raises the bar (payee digest / operator attestation). Do not use this for protocol authorization/settlement receipts—call paybond_verify_protocol_receipt_v1. Continuity-chain audits, inclusion proofs, owner disclosure, and ACTA/PEF/SCITT are Kit/CLI/Gateway auditor surfaces. Read-only and side-effect free: success returns valid=true with kind, receipt_id, tenant_id, and the normalized receipt; failures raise a clear verification error.

ParametersJSON Schema
NameRequiredDescriptionDefault
receiptYesComplete signed paybond.agent_receipt_v1 object (not a receipt_id string). Obtain from paybond_get_agent_receipt_v1, paybond://receipt/{receipt_id}, audit export (agent_receipts/{id}.json; PEF companions may also appear as *.pef.json), or partner handoff—do not invent digests or signatures.
validity_tierNoOptional validity bar: operational (default), primary, or attested. Higher tiers are auditor-oriented; MCP handoff only requires operational.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindNoVerified receipt kind (paybond.agent_receipt_v1).
validNoTrue when operational (or requested) validity checks passed. Example: true.
receiptNoNormalized verified paybond.agent_receipt_v1 object.
tenant_idNoTenant id embedded in the verified receipt (not invented by the caller).
receipt_idNoCanonical receipt identifier from the verified receipt.
validity_tierNoRequested validity tier used for this verify (operational, primary, or attested).

TDQS

A5/5.0
Behavior5/5

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

Annotations already state readOnlyHint=true and openWorldHint=false. The description adds behavioral details: side-effect free, success returns valid=true with specific fields (kind, receipt_id, tenant_id, normalized receipt), failures raise clear verification error. It also explains the optional validity_tier effect. No contradictions.

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

Conciseness5/5

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

Four sentences, each purposeful. First sentence states purpose and usage. Second adds optional tier. Third clarifies exclusion. Fourth summarizes return behavior. No fluff, efficiently front-loaded with key info.

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

Completeness5/5

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

Given the tool's complexity (nested object, optional validity tiers, multiple verification facets), the description is complete. It covers inputs, sources, exclusions, and outputs (success/failure). The presence of an output schema is noted but not shown; description still provides sufficient detail for agent selection.

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

Parameters5/5

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

Schema description coverage is 100% for both parameters. The description adds significant meaning: for 'receipt', it clarifies it must be a complete signed object (not just ID) and lists valid sources; for 'validity_tier', it explains default 'operational' and that higher tiers are auditor-oriented, not needed for MCP handoff. This goes well beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states the tool verifies a signed paybond.agent_receipt_v1 JSON object via offline Ed25519 signature check. It distinguishes itself from the sibling 'paybond_verify_protocol_receipt_v1' by specifying not to use it for protocol authorization/settlement receipts.

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?

Provides explicit when-to-use: 'when you already have a signed paybond.agent_receipt_v1 JSON object and need an offline Ed25519 signature check'. Also explicitly tells what not to use it for: 'Do not use this for protocol authorization/settlement receipts—call paybond_verify_protocol_receipt_v1', giving a clear alternative.

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

paybond_verify_agent_recognition_proof_v1Verify Agent Recognition ProofA
Read-only

Verify a replay-safe AgentRecognitionProofV1 against an expected purpose and request envelope. Verifier context (tenant_id, verifier_id) is derived from the authenticated MCP session only.

ParametersJSON Schema
NameRequiredDescriptionDefault
proofYes
expected_purposeYes
expected_requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

The description adds value beyond annotations by noting that the proof is 'replay-safe' and that verification is against expected purpose and request envelope. Annotations already indicate readOnlyHint=true, so the tool is safe. No contradiction observed.

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

Conciseness4/5

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

The description is concise with two sentences, front-loading the core action. No unnecessary words or repetition. Slightly more detail on parameters could be added without harming conciseness.

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

Completeness2/5

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

Although an output schema exists (not shown), the description does not mention return values or error conditions. For a verification tool with three required object parameters, more contextual information is needed to ensure correct invocation, such as what constitutes a valid proof or expected request format.

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?

With 0% schema description coverage, the description must compensate for parameter meaning, but it only mentions 'expected purpose' and 'request envelope' without explaining the 'proof' object or the structure of 'expected_request'. The term 'request envelope' is vague and does not clarify the parameter semantics.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Verify a replay-safe AgentRecognitionProofV1 against an expected purpose and request envelope.' It specifies the verb (Verify) and the resource (AgentRecognitionProofV1), and it differentiates from similar siblings like verify_agent_mandate_v1 and verify_capability.

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

Usage Guidelines3/5

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

The description provides some context by stating that verifier context is derived from the authenticated session, but it does not explicitly advise when to use this tool versus alternatives like verify_agent_mandate_v1 or verify_protocol_receipt_v1. No when-not-to-use or prerequisite guidance is given.

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

paybond_verify_capabilityVerify Paybond CapabilityA

Use this when you need raw capability-token verification for one tenant-bound Harbor intent. Do not use this to create, fund, or modify intents; use paybond_authorize_agent_spend as the clearer gate before side-effecting agent tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNo
intent_idYes
operationYes
requested_spend_centsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
allowNoWhether the requested operation is allowed.
tenantYesTenant echoed by the gateway.
messageNoHuman-readable decision message when present.
audit_idNoGateway audit identifier when available.
intent_idYesVerified Harbor intent UUID.
decision_idNoPersisted spend decision identifier when authorization creates one.
reason_codesNoStable spend-policy reason codes from the authorization decision.
remaining_centsNoRemaining spend budget in cents for the evaluated scope, when available.
approval_request_idNoApproval request identifier when human approval is required.

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, but the description describes a verification operation that likely does not mutate state. However, it does not explicitly confirm idempotency or lack of side effects. No contradiction, but behavioral details are minimal.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary purpose and usage boundaries. No redundant or filler content.

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?

With 4 parameters and 0% schema coverage, the description should provide more parameter context. While output schema exists (so return format is covered), the description omits guidance on token format, operation values, or spend semantics. It is adequate but incomplete.

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%. The description only mentions 'one tenant-bound Harbor intent' but does not explain the meaning of individual parameters (intent_id, operation, token, requested_spend_cents). The agent needs more context to select values correctly.

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

Purpose5/5

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

Description explicitly states the tool performs 'raw capability-token verification for one tenant-bound Harbor intent', using a specific verb and resource. It distinguishes from paybond_authorize_agent_spend by noting it as a 'clearer gate before side-effecting agent tools'.

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?

Provides clear guidance: 'Use this when you need raw capability-token verification' and explicitly states when not to use it: 'Do not use this to create, fund, or modify intents; use paybond_authorize_agent_spend as the clearer gate'. This includes an alternative tool.

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

paybond_verify_protocol_receipt_v1Verify Protocol ReceiptA
Read-only

Use this when you already have a signed protocol-v2 authorization or settlement receipt JSON object and need offline Ed25519 verification (structure, message digest, and signature) through the gateway. Do not use this to verify AgentMandateV1 envelopes—call paybond_verify_agent_mandate_v1—or to check a Harbor capability token before spend—call paybond_verify_capability or paybond_authorize_agent_spend. To load a settlement receipt by intent UUID first, call paybond_get_settlement_receipt_v1 then pass its body here. Read-only and side-effect free: success returns valid=true with kind, receipt_id, tenant_id, and the normalized receipt; unsupported kind, malformed JSON, digest mismatch, or bad signature fail with a gateway error (typically HTTP 400).

ParametersJSON Schema
NameRequiredDescriptionDefault
receiptYesComplete signed protocol receipt object posted as the verify request body (not a receipt_id string). Discriminate on kind: paybond.protocol_authorization_receipt_v1 requires schema_version=1, receipt_version="1", receipt_id, issued_at, status (authorized), intent_id, tenant_id, verifier_id, transport_binding, mandate_digest_sha256_hex, imported_mandate_signing_public_key_ed25519_hex, authorization, agent, allowed_actions, allowed_tools, spend_ceiling, settlement, constraint, expires_at, nonce, human_presence_mode, plus signing_algorithm=ed25519-sha256-json-v1, message_digest_sha256_hex, signing_public_key_ed25519_hex, and ed25519_signature_hex. paybond.protocol_settlement_receipt_v1 requires schema_version=1, receipt_version="1", receipt_id, issued_at, intent_id, tenant_id, verifier_id, transport_binding, authorization_receipt_id, mandate_digest_sha256_hex, harbor_state, settlement_rail, settlement_mode, principal_did, payee_did, currency, amount_cents, terminal_observed_at, optional predicate_passed, and the same Ed25519 signing fields. Obtain receipts from mandate import, paybond_get_settlement_receipt_v1, audit export, or partner handoff—do not invent digests or signatures.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindNoVerified receipt kind echoed from the normalized receipt. One of paybond.protocol_authorization_receipt_v1 or paybond.protocol_settlement_receipt_v1.
validNoTrue when the gateway accepted the receipt structure and Ed25519 signature. Example: true.
receiptNoNormalized verified receipt object matching the input kind (authorization or settlement fields plus signing material).
tenant_idNoTenant id embedded in the verified receipt (not invented by the caller).
receipt_idNoCanonical receipt identifier from the verified receipt.

TDQS

A4.7/5.0
Behavior4/5

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

The description states 'Read-only and side-effect free', aligning with readOnlyHint annotation. It details success conditions (valid=true with fields) and failure modes (HTTP 400 for errors), adding context beyond 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?

The description is front-loaded with purpose and usage, then behavioral details. Every sentence adds value, but it is slightly lengthy; however, the complexity justifies the length.

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

Completeness5/5

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

Given the complexity of the single object parameter and presence of output schema, the description fully covers purpose, usage, behavior, and parameter structure, leaving no gaps.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant meaning by discriminating between two receipt kinds (authorization vs settlement) with detailed required fields, beyond the schema's description.

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

Purpose5/5

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

The description clearly states the tool verifies a signed protocol-v2 receipt using Ed25519, with specific verb 'verify' and resource 'protocol receipt'. It distinguishes from siblings by explicitly naming alternatives for AgentMandateV1 and Harbor capability tokens.

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?

The description provides explicit when-to-use (already have signed receipt JSON) and when-not-to-use (not for AgentMandateV1 or Harbor capability). It also instructs to call paybond_get_settlement_receipt_v1 first if needed.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 18 tool updatesv0.12.12
    • Addedpaybond_authorize_agent_spend
    • Addedpaybond_bootstrap_sandbox_guardrail
    • Addedpaybond_explain_policy
    • Addedpaybond_get_a2a_agent_card
    • Addedpaybond_get_audit_export
    • Addedpaybond_get_budget_remaining
    • Addedpaybond_get_fraud_assessment
    • Addedpaybond_get_fraud_metrics
    • Addedpaybond_get_intent
    • Addedpaybond_get_portfolio_summary
    • Addedpaybond_get_principal
    • Addedpaybond_get_reputation_receipt
    • Addedpaybond_get_signed_portfolio_artifact
    • Addedpaybond_list_audit_exports
    • Addedpaybond_list_intents
    • Addedpaybond_submit_sandbox_guardrail_evidence
    • Addedpaybond_validate_completion_evidence
    • Addedpaybond_verify_capability
  2. 18 tool updatesv0.12.11
    • Removedpaybond_authorize_agent_spend
    • Removedpaybond_bootstrap_sandbox_guardrail
    • Removedpaybond_explain_policy
    • Removedpaybond_get_a2a_agent_card
    • Removedpaybond_get_audit_export
    • Removedpaybond_get_budget_remaining
    • Removedpaybond_get_fraud_assessment
    • Removedpaybond_get_fraud_metrics
    • Removedpaybond_get_intent
    • Removedpaybond_get_portfolio_summary
    • Removedpaybond_get_principal
    • Removedpaybond_get_reputation_receipt
    • Removedpaybond_get_signed_portfolio_artifact
    • Removedpaybond_list_audit_exports
    • Removedpaybond_list_intents
    • Removedpaybond_submit_sandbox_guardrail_evidence
    • Removedpaybond_validate_completion_evidence
    • Removedpaybond_verify_capability
  3. 2 tool updatesv0.1.2
    • Addedpaybond_get_agent_receipt_v1
    • Addedpaybond_verify_agent_receipt_v1
  4. 2 tool updatesv0.1.1
    • Changedpaybond_get_principal2 fields changed
      • addedOutput schema / properties
        Added value: +{
        +  "roles": {
        +    "description": "RBAC roles granted to this principal for the authenticated tenant (example: [\"operator\"]).",
        +    "examples": [
        +      [
        +        "operator"
        +      ]
        +    ],
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "subject": {
        +    "description": "Service-account subject identifier echoed by the gateway for the authenticated API key (example: service-account-1).",
        +    "examples": [
        +      "service-account-1"
        +    ],
        +    "type": "string"
        +  },
        +  "tenant_id": {
        +    "description": "Tenant bound to the configured Paybond API key.",
        +    "examples": [
        +      "tenant-a"
        +    ],
        +    "type": "string"
        +  }
        +}
      • removedOutput schema / title
        Removed value: -"paybond_get_principalDictOutput"
    • Changedpaybond_get_signed_portfolio_artifact4 fields changed
      • addedInput schema / properties / score_version / description
        Added value: +"Optional Signal score model version to query. Omit to use the gateway default current model (1.0). Example: 1.0."
      • addedInput schema / properties / score_version / examples
        Added value: +[
        +  "1.0"
        +]
      • addedOutput schema / properties
        Added value: +{
        +  "checkpoint_last_ledger_seq": {
        +    "description": "Last ledger sequence included in the tenant Signal checkpoint for this artifact.",
        +    "type": "integer"
        +  },
        +  "kind": {
        +    "description": "Artifact kind identifier (currently paybond.signal.portfolio_snapshot).",
        +    "examples": [
        +      "paybond.signal.portfolio_snapshot"
        +    ],
        +    "type": "string"
        +  },
        +  "score_model_version": {
        +    "description": "Score model version used for the artifact (echoes the requested score_version or the gateway default 1.0).",
        +    "examples": [
        +      "1.0"
        +    ],
        +    "type": "string"
        +  },
        +  "signature_hex": {
        +    "description": "Ed25519 signature hex over the canonical portfolio artifact payload.",
        +    "type": "string"
        +  },
        +  "tenant_id": {
        +    "description": "Tenant echoed by the gateway for the authenticated API key (example: tenant-a). Never invent tenant identifiers.",
        +    "examples": [
        +      "tenant-a"
        +    ],
        +    "type": "string"
        +  }
        +}
      • removedOutput schema / title
        Removed value: -"paybond_get_signed_portfolio_artifactDictOutput"
  5. 29 tool updatesv0.1.0
    • First observedpaybond_authorize_agent_spend
    • First observedpaybond_bootstrap_sandbox_guardrail
    • First observedpaybond_create_intent
    • First observedpaybond_create_spend_intent
    • First observedpaybond_explain_policy
    • First observedpaybond_get_a2a_agent_card
    • First observedpaybond_get_a2a_task_contract
    • First observedpaybond_get_audit_export
    • First observedpaybond_get_budget_remaining
    • First observedpaybond_get_fraud_assessment
    • First observedpaybond_get_fraud_metrics
    • First observedpaybond_get_intent
    • First observedpaybond_get_portfolio_summary
    • First observedpaybond_get_principal
    • First observedpaybond_get_reputation_receipt
    • First observedpaybond_get_settlement_receipt_v1
    • First observedpaybond_get_signed_portfolio_artifact
    • First observedpaybond_import_agent_mandate_v1
    • First observedpaybond_list_a2a_task_contracts
    • First observedpaybond_list_audit_exports
    • First observedpaybond_list_intents
    • First observedpaybond_submit_evidence
    • First observedpaybond_submit_sandbox_guardrail_evidence
    • First observedpaybond_submit_spend_evidence
    • First observedpaybond_validate_completion_evidence
    • First observedpaybond_verify_agent_mandate_v1
    • First observedpaybond_verify_agent_recognition_proof_v1
    • First observedpaybond_verify_capability
    • First observedpaybond_verify_protocol_receipt_v1

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a meticulously crafted description that clearly states its purpose and explicitly lists what NOT to use it for, eliminating ambiguity even across similar-looking tools like paybond_create_intent vs paybond_create_spend_intent.

Naming Consistency5/5

All tools follow a consistent 'paybond_verb_noun' pattern (e.g., get, verify, submit, list, create) with optional version suffixes, making the naming predictable and systematic.

Tool Count2/5

With 31 tools, the server is far beyond the typical 3-15 range. While the domain is complex, the large surface area can overwhelm agents and increase selection difficulty.

Completeness4/5

The tool set covers a broad range of fintech operations: identity, intents, capabilities, evidence, fraud, reputation, A2A, receipts, and mandates. Minor gaps like refunds or dispute resolution might exist, but core workflows are well-supported.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Connects AI agents to the PayBot payment infrastructure, enabling automated USDC transactions and payment status management. It provides tools for submitting payments, tracking transaction histories, and monitoring payment IDs via the Model Context Protocol.
    4
    13
    1
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Tenant-bound MCP server for agent spend authorization, policy guardrails, evidence, escrow settlement, and portable receipts. Works with Cursor and Claude Code via stdio; npm (@paybond/kit) and Python (paybond-kit).
    31
    122
    1
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides tools to look up providers, fetch receipts, and verify Ed25519 signatures for x402 payments on Base and Solana, with no API key needed for basic operations.
    4
    -

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nonameuserd/paybond-kit-python'

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