Skip to main content
Glama

Arbitova

Base 네트워크에서 에이전트 간 결제를 위한 비수탁형 USDC 에스크로 및 AI 중재 서비스입니다.

두 에이전트가 USDC를 컨트랙트에 예치하고, 한쪽이 전달하면 다른 쪽이 확인하거나 분쟁을 제기하며, 중립적인 AI 중재자가 이를 해결합니다. Arbitova는 자금을 보관하지 않으며, 컨트랙트가 이를 담당합니다.

API 키도, 등록도, 수탁도 필요 없습니다. 귀하의 이더리움 주소가 곧 귀하의 신원입니다.


왜 이 서비스가 필요한가

MCP, Google의 A2A, ERC-7683, Coinbase의 Agent Commerce 등 현재 존재하는 모든 A2A/에이전트 커머스 사양은 에이전트 간의 통신 방법만을 정의합니다. 하지만 에이전트들이 서로를 신뢰하지 않을 때 자금이 어떻게 이동하는지에 대해서는 정의하지 않습니다.

Arbitova는 누락된 결제 기본 요소를 제공합니다:

  • 결정론적 상태 머신. createEscrow → markDelivered → {confirmDelivery | dispute → resolve | cancel}. 숨겨진 분기나 관리자 오버라이드가 없습니다.

  • 타임아웃 후 자동 해제 없음. 검토 기간이 만료되면 판매자에게 지급되는 것이 아니라 DISPUTED(분쟁) 상태로 전환됩니다. 침묵은 잘못된 확인보다 안전합니다.

  • 온체인 콘텐츠 해시 고정. 구매자가 검사한 후 판매자가 전달 파일을 교체할 수 없습니다.

  • 사례별 판결 투명성. 모든 중재자 결정은 서명된 JSON 블록이며, 그 keccak256은 온체인에 저장됩니다. 전체 판결 내역은 /verdicts에서 쿼리할 수 있으며, 집계나 지연이 없습니다.

이것은 마켓플레이스가 아닙니다. Arbitova 계정, 리스팅 수수료, Pro 등급은 없습니다. 프로토콜 자체가 곧 제품입니다.


Related MCP server: cardzero-mcp

빠른 시작 — Node.js SDK

npm install @arbitova/sdk ethers
import { Arbitova } from '@arbitova/sdk';

const buyer = await Arbitova.fromPrivateKey({ privateKey: process.env.BUYER_PK });

const { escrowId, txHash } = await buyer.createEscrow({
  seller: process.env.SELLER_ADDRESS,
  amount: '5.00',
  deliveryHours: 24,
  reviewHours: 24,
  verificationURI: 'https://example.com/spec.json',
});

console.log(`Escrow #${escrowId} locked — ${buyer.explorerTx(txHash)}`);

판매자 측, 중재자 측, 브라우저 지갑 통합은 packages/sdk-js/README.md를 참조하세요.

빠른 시작 — Python SDK

pip install "arbitova[path_b]"
from arbitova import path_b

result = path_b.arbitova_create_escrow(
    seller="0x...",
    amount=5.00,
    verification_uri="https://example.com/spec.json",
)
print(result)

빠른 시작 — Claude / 모든 MCP 클라이언트

{
  "mcpServers": {
    "arbitova": {
      "command": "npx",
      "args": ["-y", "@arbitova/mcp-server"],
      "env": {
        "ARBITOVA_RPC_URL": "https://sepolia.base.org",
        "ARBITOVA_ESCROW_ADDRESS": "0xA8a031bcaD2f840b451c19db8e43CEAF86a088fC",
        "ARBITOVA_USDC_ADDRESS": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
        "ARBITOVA_AGENT_PRIVATE_KEY": "0x..."
      }
    }
  }
}

6가지 도구: arbitova_create_escrow, arbitova_mark_delivered, arbitova_confirm_delivery, arbitova_dispute, arbitova_cancel_if_not_delivered, arbitova_get_escrow. 모두 ethers v6를 통해 로컬에서 서명합니다. 개인 키는 프로세스를 절대 떠나지 않습니다.

읽기 전용 인트로스펙션 모드(관찰 가능성 확인용)를 사용하려면 ARBITOVA_AGENT_PRIVATE_KEY를 생략하세요.


수명 주기

                      ┌──────────────────┐
                      │     CREATED      │ buyer locked USDC
                      └────────┬─────────┘
                               │
                               ▼ seller.markDelivered()
                      ┌──────────────────┐
                      │    DELIVERED     │ deliveryHash on-chain
                      └────────┬─────────┘
                               │
        buyer.confirmDelivery()│        │ buyer.dispute()
                               │        │ or seller.dispute()
                               ▼        ▼
                   ┌─────────────┐  ┌──────────┐
                   │  RELEASED   │  │ DISPUTED │ waiting for arbiter
                   └─────────────┘  └────┬─────┘
                                         │ arbiter.resolve(bps split + verdictHash)
                                         ▼
                                   ┌──────────┐
                                   │ RESOLVED │
                                   └──────────┘

그림에 표시되지 않은 두 가지 터미널 상태: CANCELLED(전달 기간 후 구매자가 cancelIfNotDelivered 호출) 및 검토 기간이 확인 없이 만료될 경우 DISPUTED로 자동 에스컬레이션.


프레임워크 참조 에이전트

라이브 AI 중재자가 포함된 Base Sepolia 기반의 3가지 엔드투엔드 A2A 데모:

  • Claude Agent SDK — 인프로세스 MCP 도구

  • LangGraph — ReAct 에이전트, 구매자 + 판매자 + 중재자

  • CrewAI — 에이전트 + 작업 + 크루

각 데모는 실제 온체인 트랜잭션을 통해 CREATED → DELIVERED → CONFIRMED (또는 DISPUTED → RESOLVED) 흐름을 완전히 실행합니다.


패키지

패키지

목적

@arbitova/sdk

Node.js / 브라우저 SDK (ethers v6)

arbitova

Python SDK, 온체인 지원을 위해 [path_b] 옵션으로 설치

@arbitova/mcp-server

Claude Desktop, Claude Code, 모든 MCP 클라이언트를 위한 MCP 서버 (6개 온체인 도구)

각 패키지는 동일한 6개의 진입점을 제공하므로 Python SDK를 사용하는 에이전트와 MCP 서버를 사용하는 에이전트가 동일한 컨트랙트를 통해 결제할 수 있습니다.


수수료

시점

수수료

부담 주체

confirmDelivery / 검토 기간 만료 자동 결제

0.5%

판매자 지급액에서 차감

중재자가 분쟁 해결 시

2%

중재자 판결에 따라 분할

수수료는 컨트랙트에 누적됩니다. 프로토콜은 이 수수료로 운영되며 구독료는 없습니다.


네트워크

네트워크

상태

컨트랙트

Base Sepolia

라이브, 실제 Circle USDC

0xA8a031bcaD2f840b451c19db8e43CEAF86a088fC

Base 메인넷

감사 및 멀티시그 중재자 대기 중

추후 공개

메인넷 출시 소식은 Dev Log를 확인하세요.


레거시 (경로 A)

SDK v2.x 및 MCP 서버 v3.4.0은 api.arbitova.com을 사용하는 수탁형 HTTP 클라이언트였습니다. 해당 아키텍처는 4가지 구조적 문제(DB와 온체인 간의 불일치, 수탁 지갑 가스비, 단일 ADMIN_KEY, 단일 WALLET_ENCRYPTION_KEY의 단일 실패 지점)가 있어, 위에서 설명한 비수탁형 온체인 설계인 경로 B로 대체되었습니다.

이전 패키지는 npm/PyPI에 남아 있지만 더 이상 지원되지 않습니다.


라이선스

MIT

Available Tools

7 tools
arbitova_cancel_if_not_deliveredA

Buyer cancels an escrow after the delivery deadline has passed and the seller has not marked delivery. Full USDC refund to buyer. Only callable by the buyer, only after deliveryDeadline has elapsed, and only when escrow is still in CREATED state. Call arbitova_get_escrow first to verify the deadline has passed and status is CREATED before calling this.

ParametersJSON Schema
NameRequiredDescriptionDefault
escrowIdYesThe escrow ID to cancel

TDQS

A4.5/5.0
Behavior4/5

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

Without annotations, the description fully discloses the action (cancellation with refund), preconditions (caller, time, state), and a recommendation to check status. It could mention error behavior if conditions not met, but overall transparency is strong.

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 with three sentences: action, conditions, and advice. It is front-loaded with the primary action, and every sentence adds necessary context without redundancy.

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

Completeness5/5

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

For a simple cancellation tool with one parameter and no output schema, the description provides all necessary context: behavior, preconditions, and a recommended prior step. No critical information is missing for an agent to use it correctly.

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

Parameters3/5

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

The input schema already covers the single parameter (escrowId) with a clear description. The tool description adds no additional parameter-level detail, so baseline score of 3 is appropriate given 100% schema coverage.

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 cancels an escrow when delivery is not marked after the deadline, refunding the buyer in USDC. It uses specific verbs and resources, distinguishing it from sibling tools like dispute or escalate.

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 specifies when to use the tool: only by the buyer, after deliveryDeadline has passed, and when escrow is in CREATED state. It also advises to verify conditions via get_escrow first, providing practical guidance.

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

arbitova_confirm_deliveryA

Confirm that the seller has delivered and the output meets ALL criteria in the escrow's verificationURI. ONLY call after you have: (1) fetched the delivery payload, (2) fetched and parsed the verificationURI criteria document, (3) compared the payload against EVERY criterion, (4) are fully confident every criterion is satisfied. If anything is missing, wrong, ambiguous, incomplete, or the seller did not deliver the agreed output — DO NOT call this. Call arbitova_dispute instead with a specific reason citing the failed criterion. Silence is safer than a wrong confirmation: if you do not confirm within the review window, funds auto-escalate to AI arbitration, which protects the buyer by independently evaluating delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault
escrowIdYesThe escrow ID to confirm delivery for

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses consequence of wrong confirmation (funds auto-escalate to arbitration) and that silence is safer. Lacks explicit mention of idempotency or reversibility, but sufficient for safety-critical action.

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 longer than average but each sentence adds value: purpose, prerequisites, alternatives, consequences. Front-loaded with main action. Could condense the list of prerequisites slightly, but no wordiness.

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 (high-stakes confirmation with verification criteria), the description thoroughly covers preconditions, alternatives, and consequences of misuse. No output schema, but return value is not critical for decision-making.

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

Parameters3/5

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

Only one parameter (escrowId) with schema description. Description adds context (confirms delivery for that escrow) but does not materially extend beyond schema. Schema coverage is 100%, so baseline 3 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?

Specific verb ('confirm') and resource ('delivery') with clear condition (output meets verificationURI criteria). Distinguishes from sibling arbitova_dispute by stating when not to call.

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 lists 4 prerequisites before calling, provides clear when-not-to-use (any missing/wrong), and names alternative tool (arbitova_dispute). Also advises on escalation path if uncertain.

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

arbitova_create_escrowA

Buyer locks USDC into the Arbitova EscrowV1 smart contract. Calls USDC.approve() then createEscrow() on-chain. Requires USDC balance >= amount. deliveryWindowHours = how long the seller has to deliver (default 24). reviewWindowHours = how long the buyer has to verify after delivery is marked (default 24). verificationURI must point to a publicly fetchable JSON document listing every criterion the delivery will be checked against. If the review window expires without confirmation or dispute, funds auto-escalate to arbitration. Silence protects the buyer — you do NOT need to confirm promptly.

ParametersJSON Schema
NameRequiredDescriptionDefault
sellerYesSeller Ethereum address (0x-prefixed)
amountYesUSDC amount to lock (human-readable, e.g. 50 for 50 USDC)
deliveryWindowHoursNoHours the seller has to deliver (default 24)
reviewWindowHoursNoHours the buyer has to review after delivery (default 24)
verificationURIYesPublicly fetchable URL of a JSON document listing every delivery criterion (e.g. {"criteria": ["word count >= 1000", "includes executive summary"]})

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description bears full responsibility. It details on-chain steps (approve, createEscrow), prerequisites (USDC balance), and consequences (auto-escalation on review expiry). It also clarifies that silence protects the buyer, which is a non-obvious behavioral trait.

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 one coherent paragraph without wasted words. It front-loads the purpose and flows logically through parameters and consequences. Could be slightly more structured (e.g., bullet points) but remains efficient.

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 (on-chain escrow creation) and lack of output schema, the description completely covers the process, prerequisites, and outcomes. Sibling tools handle subsequent actions, so this tool's context is sufficiently self-contained.

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 value by explaining the practical impact of deliveryWindowHours and reviewWindowHours (auto-escalation), and emphasizes that verificationURI must be publicly fetchable, which is not fully captured in 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's verb ('locks USDC') and resource ('Arbitova EscrowV1 smart contract'), and it distinguishes itself from sibling tools that handle cancellation, confirmation, dispute, etc. It is specific about the buyer's action.

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 explains when to use (buyer initiating escrow) and provides default values for windows. However, it does not explicitly exclude other scenarios or mention alternatives among siblings, though the action is unique enough.

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

arbitova_disputeA

Open a dispute when delivery is missing, incorrect, incomplete, or violates the verification criteria. Disputes trigger AI arbitration which independently evaluates the delivery and can split funds fairly. Call this whenever arbitova_confirm_delivery feels uncertain — when in doubt, dispute. The reason field MUST cite specific criteria from verificationURI that were not met, e.g. "Delivery at [URI] is missing criterion 3: word count is 400 but spec requires >= 1000." Either the buyer OR the seller can open a dispute.

ParametersJSON Schema
NameRequiredDescriptionDefault
escrowIdYesThe escrow ID to dispute
reasonYesSpecific reason citing which verification criteria were not met. Include the criterion text and what was observed.

TDQS

A4.7/5.0
Behavior4/5

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

Despite no annotations, description adds valuable context: disputes trigger AI arbitration that evaluates delivery and can split funds, and reason must cite criteria. Lacks details on side effects like reversibility.

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, front-loaded with purpose, no unnecessary words, efficient communication.

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 parameters and no output schema, description covers purpose, usage, parameter behavior, and the AI arbitration mechanism, leaving no major gaps.

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?

Adds meaning beyond schema: reason must cite specific criteria from verificationURI with an example, clarifying format and requirements.

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 opens a dispute for delivery issues, specifies triggers like missing or incorrect delivery, and distinguishes from siblings like confirm_delivery.

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 advises calling when arbitova_confirm_delivery feels uncertain, and mentions both buyer or seller can open, providing clear when-to-use guidance.

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

arbitova_escalate_if_expiredA

Permissionlessly escalate a DELIVERED escrow to DISPUTED after the review window has expired. Any address can call this — buyer, seller, or an independent watcher. Use when the buyer went silent past reviewDeadline: this unblocks the seller and routes the escrow into arbitration instead of leaving funds stuck. Only valid when status is DELIVERED and block.timestamp > reviewDeadline. Call arbitova_get_escrow first to verify status and deadline before calling this.

ParametersJSON Schema
NameRequiredDescriptionDefault
escrowIdYesThe escrow ID to escalate

TDQS

A4.9/5.0
Behavior5/5

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

No annotations provided, so description fully carries the burden. It discloses permissionless access, required status (DELIVERED), time condition (block.timestamp > reviewDeadline), and effect (status change to DISPUTED). 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, front-loaded with action and constraints, every sentence adds value. No redundancy or unnecessary words.

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 tool (on-chain state change), the description covers preconditions, permissible callers, consequences, and a prerequisite check. No output schema, but the state change is clearly explained.

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?

Input schema has 100% coverage with one parameter described. The description adds context about the parameter's role (escalate escrow) and suggests verifying with another function, but the meaning is already clear from the 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 the action: escalate a DELIVERED escrow to DISPUTED after the review window expires. It distinguishes from siblings by specifying the condition of expiration, separating it from other operations like cancel, confirm, or dispute.

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 (buyer went silent past reviewDeadline), who can call (any address), and what it achieves (unblocks seller, routes to arbitration). Also advises calling arbitova_get_escrow first to verify status and deadline.

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

arbitova_get_escrowA

Fetch the current on-chain state of an escrow: buyer, seller, amount, deadlines, status, verificationURI, and deliveryHash. Use this to check whether delivery has been marked before fetching the payload, and to verify the reviewDeadline before deciding to confirm or dispute. Status values: CREATED (awaiting delivery), DELIVERED (seller marked done, review window open), RELEASED (funds released to seller), DISPUTED (in arbitration), RESOLVED (arbiter resolved), CANCELLED.

ParametersJSON Schema
NameRequiredDescriptionDefault
escrowIdYesThe escrow ID to query

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, but the description fully describes the returned data and its meaning. It implies a read-only operation without side effects. A higher score would require explicit statement of read-only nature.

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 plus a list of statuses. Front-loaded with purpose, no redundant information. Every 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?

For a simple fetch tool with one parameter and no output schema, the description provides all necessary context: what fields are returned, status meanings, and usage guidance. It is complete.

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

Parameters3/5

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

Input schema has 100% coverage with one parameter. The description does not add extra meaning beyond what the schema provides, meeting the baseline for high coverage.

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 specifies the verb 'Fetch' and resource 'on-chain state of an escrow' with a clear list of fields. It distinguishes itself from sibling action tools (cancel, confirm, dispute) by being a read-only query.

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: 'check whether delivery has been marked before fetching the payload' and 'verify the reviewDeadline before deciding to confirm or dispute'. Provides decision-making context and references sibling tools implicitly.

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

arbitova_mark_deliveredA

Called by the SELLER after completing the work and uploading the deliverable to a stable URL. deliveryPayloadURI must point to the completed, publicly fetchable deliverable — the contract hashes this URI on-chain. Do NOT call before work is actually done. Do NOT use a temporary or expiring URL. The arbiter will fetch this URI during dispute resolution — a broken or mismatched URL counts as non-delivery. Before calling: complete all work to spec, upload to a stable URL (IPFS or persistent storage), and verify the content matches every criterion in verificationURI.

ParametersJSON Schema
NameRequiredDescriptionDefault
escrowIdYesThe escrow ID returned by arbitova_create_escrow
deliveryPayloadURIYesStable public URL pointing to the completed deliverable

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses that contract hashes URI on-chain and arbiter fetches it during disputes. Warns about broken URL counting as non-delivery. Missing details on return value or permissions beyond seller.

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?

Concise but slightly long; every sentence adds value. Well-structured: purpose first, then constraints and prerequisites. No fluff, but could be slightly tighter.

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?

Complete for a simple action tool. Covers preconditions, stability, and dispute resolution. Missing return behavior or confirmation after calling, but no output schema exists to explain. References sibling tool create_escrow.

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?

Adds significant meaning beyond schema: explains deliveryPayloadURI must be stable, publicly fetchable, and on-chain hashed. Describes escrowId as from create_escrow. Schema coverage is 100%, but description enriches each parameter.

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 is called by the seller after completing work and uploading a deliverable. Identifies the actor (seller) and context, distinguishing from sibling tools like confirm_delivery (buyer action).

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 call (after work done, upload stable URL) and when NOT to call (before work done, temporary URL). Provides prerequisites and warns about consequences of broken URL.

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

Tool Schema Changelog

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

  1. 7 tool updatesv0.1.0
    • First observedarbitova_cancel_if_not_delivered
    • First observedarbitova_confirm_delivery
    • First observedarbitova_create_escrow
    • First observedarbitova_dispute
    • First observedarbitova_escalate_if_expired
    • First observedarbitova_get_escrow
    • First observedarbitova_mark_delivered

TDQS

A4.7/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a unique action in the escrow lifecycle (create, get, mark delivered, confirm, cancel, dispute, escalate). No two tools have overlapping purposes, and descriptions clarify exactly when each should be used.

Naming Consistency5/5

All tools follow the pattern 'arbitova_<verb>_<condition>', using snake_case consistently. The names are descriptive and predictable, making it easy to infer the tool's action from its name.

Tool Count5/5

7 tools is an ideal size for an escrow management server. Each tool serves a necessary function in the lifecycle without unnecessary redundancy or bloat.

Completeness5/5

The tool set covers the full escrow lifecycle: creation, status retrieval, delivery marking, confirmation/cancellation, dispute opening, and escalation. There are no obvious gaps that would hinder an agent from managing an escrow end-to-end.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    Not graded
    maintenance
    Trust infrastructure for AI agents on Base. DEX Spread Oracle (live Uniswap V3 prices), on-chain escrow, insurance pool, and collective knowledge base. 7 smart contracts. Pay-per-query via x402 micropayments in USDC.
    6
    -
  • A
    license
    A
    quality
    D
    maintenance
    Gives AI agents a smart-contract wallet on Base (USDC) with 10 stdio tools: create wallets, send USDC payments, pay x402-protected HTTP resources, and run ERC-8183 escrow Jobs for A2A service delivery.
    10
    12 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Settlement rails for AI labor — USDC escrow on Base Mainnet, 1% protocol fee, designed for autonomous agents. 10 MCP tools covering the full escrow lifecycle: * Quoting calldata for create-intent, submit-proof, release-funds (broadcast gated) * Single-call x402 payment binding (replaces the 5-step x402 dance with one HMAC-signed POST) * Server-side reputation from on-chain event scan * Li
    -
  • A
    license
    A
    quality
    A
    maintenance
    Private escrow for AI agent work on Beam mainnet an agent locks payment, the worker locks collateral, and delivery settles on hash match or review, with M of N arbitrator voting and slashable worker bonds as the dispute backstop. 22 tools cover the full contract lifecycle, and dispute voting is deliberately not an agent tool, so an agent can never rule in its own favour.
    26
    MIT