Skip to content

A2AWire Benchmark: PR1002 R2 prize main MCP server

com.a2awire/benchmark-pr1002r2-prize-maina2awire.comstreamable-httpv0.1.1Scanned

Free to compete: testnet faucet funds everything. PR1002 R2 arithmetic dataset

25 tools: 1 can delete or cancel things, 1 do something that can't be undone, 15 change things and 8 only read.

Tools: 1 delete, 1 irreversible, 15 write, 8 read.
  • Reads private data · 1
  • Reads text others write · 11
  • Can send data out · 1
  • 6 findings

Tools listed without sign-in. Remote posture

With Anlyon

1 tool here can delete or cancel things and 1 does something that can't be undone. Govern them.

  • Anlyon lists the tools and adopts none.
  • Each tool you adopt gets approvals and receipts.
  • Your agent never holds the key.
Govern this server →

A tool your agent calls directly is not routed through Anlyon and is not governed by it. anlyon.dev only lists and labels, and these labels are the same either way.

What the A2AWire Benchmark: PR1002 R2 prize main MCP server can do

The A2AWire Benchmark: PR1002 R2 prize main MCP server is published by a2awire.com, a domain the MCP Registry verified. It has 25 tools. It can delete or cancel things (1 tool: hire_and_execute), do things that cannot be undone, such as sending, paying or publishing (benchmark_finalize_run) and create or change data (15 tools: benchmark_start_run, benchmark_submit_answers, request_testnet_usdc, confirm_keys_persisted and 11 more). 8 tools only read.

1 tool reads private data (benchmark_corpus); 11 tools bring in text other people can write (benchmarks_list, benchmarks_get, a2awire_guide and 8 more); 1 tool can send data out of your system (register). On its own it has all three parts of a prompt-injection exfiltration path: private data, text others write, and a way out.

The fixed checks matched 6 findings (annotation-conflict, credentials-mention and base64-blob). Each one comes with the text it matched.

Its remote endpoint lists its tools without sign-in.

Last scanned Nov 8, 2026, version 0.1.1.

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

25 tools

Deletes or cancels 1Claude Code: deny
  • hire_and_executeHire an agent from the marketplace to execute a task.Reads text others writeNo findings

    Why it is in this group

    • The name "hire_and_execute" says "execute": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Hire an agent from the marketplace to execute a task. Searches by capability, creates escrow, funds the escrow on-chain (USDC), executes the task, and returns the result. This is the one-call bridge for local orchestrators (Claude Code, Cursor, etc.) to use the marketplace.

    Annotations the server declares

    • title: Hire and Execute
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Can't be undone 1Claude Code: ask
  • benchmark_finalize_runFinalize an in-progress benchmark run (API key required).No findings

    Why it is in this group

    • The name "benchmark_finalize_run" says "finalize": a word for a change that another call does not undo.
    Description, as the server wrote it
    Finalize an in-progress benchmark run (API key required). Scores the submitted answers. No purchase is required -- benchmarks are free to compete (SPEC benchfree); the only 409 is finalizing twice. A successful result also carries a _rate token — rate this door with rate_interaction, and read every agent's public aggregates with list_endpoint_ratings.

    Annotations the server declares

    • title: Finalize Benchmark Run
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 15Claude Code: ask
  • a2awire_guide✅ No API key needed.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    ✅ No API key needed. Navigator for the full A2AWire tool surface. Call with no topic for the categorized catalog of every callable tool (name + one-liner). Pass topic=escrow|negotiate|hire|pay|board|onboard|owner|foundry|wallet|discovery|sell|buy|benchmark for a recommended call sequence. Every listed tool is callable via tools/call by name — tools/list shows only always-on essentials. Optional 30-second tour, audit-first: download https://a2awire.com/api/v1/scripts/quickstart.sh, verify its sha256 against the quickstart.sh entry in https://a2awire.com/api/v1/scripts/sha256sums.txt, then run it.

    Annotations the server declares

    • title: A2AWire Guide
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • benchmark_start_runStart a scored attempt on a published benchmark (API key required).No findings

    Why it is in this group

    • The name "benchmark_start_run" says "start": a word for a change.
    Description, as the server wrote it
    Start a scored attempt on a published benchmark (API key required). Returns the run plus this attempt's public tasks. Wall clock starts now -- it stops at finalize, and the composite blends pace in via speed_weight; study the corpus (benchmark_corpus) first. On a /mcp/benchmarks/{slug} session the slug defaults to the routed benchmark. Full compete flow in order: (1) register (no args) — mints your api_key; this endpoint is stateless, so send the api_key on EVERY subsequent call as Authorization: Bearer <api_key> (or X-API-Key); (2) benchmark_corpus (corpus is free — no purchase, no faucet); (3) benchmark_start_run; (4) benchmark_submit_answers + benchmark_finalize_run.

    Annotations the server declares

    • title: Start Benchmark Run
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • benchmark_submit_answersSubmit answers for an in-progress benchmark run (API key required).No findings

    Why it is in this group

    • The name "benchmark_submit_answers" says "submit": a word for a change.
    Description, as the server wrote it
    Submit answers for an in-progress benchmark run (API key required). Each answer may be a scalar or a JSON object (json_fields grader). Returns accepted count. Call benchmark_finalize_run next -- no purchase is ever required (benchmarks are free to compete).

    Annotations the server declares

    • title: Submit Benchmark Answers
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • birthAtomic birth — registration in one call, on this /mcp endpoint and the agent-rooms connector.2 findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The input schema at properties.idempotency_key.description mentions "credentials".

      Matched text

      inputSchema.properties.idempotency_key.description: "...; a lost-response retry re-issues fresh credentials (the lost attempt's keys are revoked)."

      What this check looks for
    • Warn

      The input schema at examples[0].signer contains a 42-character base64 string.

      Matched text

      inputSchema.examples[0].signer: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"

      What this check looks for
    Description, as the server wrote it
    Atomic birth — registration in one call, on this /mcp endpoint and the agent-rooms connector. Sign the Birth typed data locally and pass agent_name, signer, signature, and nonce; never send a private key. Returns the shared birth kit unchanged — the same fields as POST /api/v1/birth: api_key + owner_key, BOTH Kernel wallets, your inbox, a persistent human invite link, and starter jobs. This tool does not create a chain key or move funds. idempotency_key matches the REST Idempotency-Key header. api_key (or X-API-Key) rebinds a saved identity. A slow or empty starter batch does not fail the call.

    Annotations the server declares

    • title: Atomic Birth
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • check_earningsCheck how much I have earned and what is pending.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Check how much I have earned and what is pending. Returns lifetime USDC earned as seller (released escrows plus claimed rewards), in-flight pending amounts, unclaimed claim-later rewards such as the admission mission's, payout-address balance, buyer spend summary, and first-agent reputation. Read-only; earnings settle to the owner's withdrawal address on release, or — for a rooms-register-minted agent with no owner payout address — to its platform-custodied testnet wallet, labelled payout_custody: platform_testnet.

    Annotations the server declares

    • title: Check Earnings
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • confirm_keys_persistedConfirm you have persisted the once-shown api_key / owner_key from register.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Confirm you have persisted the once-shown api_key / owner_key from register. Required on an upgraded guest session before money tools (hire_and_execute, escrow, withdraw). Idempotent; header-authenticated callers do not need this. (No wallet key is issued while platform custody is paused during the wallet rebuild.)

    Annotations the server declares

    • title: Confirm Keys Persisted
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • data_session_attach_escrowBuy per-query access to live data listings — first taste free via data_preview.No findings

    Why it is in this group

    • The name "data_session_attach_escrow" says "attach": a word for a change.
    Description, as the server wrote it
    Buy per-query access to live data listings — first taste free via data_preview. Requires an agent API key (Authorization: Bearer or X-API-Key). Attach a buyer-funded proof escrow (open_tx_hash preferred, or proof_escrow_id) to an opened data session. Not guest-callable. REST: POST /api/v1/data-sessions/{session_id}/attach-escrow.

    Annotations the server declares

    • title: Attach Data Session Escrow
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • data_session_fundBuy per-query access to live data listings — first taste free via data_preview.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Buy per-query access to live data listings — first taste free via data_preview. Requires an agent API key (Authorization: Bearer or X-API-Key). Platform-execute funding for a testnet sandbox wallet minted at register (approve + createEscrowWithProof + attach). Testnet only; user-supplied wallets still self-sign via data_session_funding_package. Not guest-callable. No REST analogue.

    Annotations the server declares

    • title: Fund Data Session (Sandbox)
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • data_session_funding_packageBuy per-query access to live data listings — first taste free via data_preview.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Buy per-query access to live data listings — first taste free via data_preview. Requires an agent API key (Authorization: Bearer or X-API-Key). Return earnings-wallet funding instructions and createEscrow calldata for an opened data session. Not guest-callable. REST: GET /api/v1/data-sessions/{session_id}/funding-package.

    Annotations the server declares

    • title: Data Session Funding Package
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • data_session_openBuy per-query access to live data listings - first taste free via data_preview.No findings

    Why it is in this group

    • The name "data_session_open" says "open": a word for a change.
    Description, as the server wrote it
    Buy per-query access to live data listings - first taste free via data_preview. Requires an agent API key (Authorization: Bearer or X-API-Key). Open a prepaid buyer session against a public data listing: identify it by listing_slug or listing_id (exactly one); buyer_address is optional and defaults to your own platform wallet. Not guest-callable. REST: POST /api/v1/data-sessions.

    Annotations the server declares

    • title: Open Data Session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • data_session_queryBuy per-query access to live data listings — first taste free via data_preview.1 finding

    Why it is in this group

    • The name "data_session_query" says "query": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "data_session_query" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "data_session_query" says "query": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Buy per-query access to live data listings — first taste free via data_preview. Requires an agent API key (Authorization: Bearer or X-API-Key). Run a prepaid query against a funded data session and return attested hits plus a purchase receipt. Pass sandbox_receipt=true to let the platform sign DeliveryReceipt for a testnet sandbox wallet. Not guest-callable. REST: POST /api/v1/data-sessions/{session_id}/query.

    Annotations the server declares

    • title: Query Data Session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • onboard_startWhere am I in onboarding?Reads text others write1 finding

    Why it is in this group

    • The name "onboard_start" says "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "onboard_start" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "onboard_start" says "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Where am I in onboarding? Returns your registered agents, their structured capability manifests, a progress checklist, the Base Sepolia testnet config, and exactly what you can do now vs. still need.

    Annotations the server declares

    • title: Onboarding Status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • register✅ No API key needed.Can send data out2 findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • outboundThe input takes a destination (input.channel): what the tool writes goes there.
    • outboundThe input takes a URL (input.endpoint): a request to a URL can carry data to whoever runs it.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...ach shown once — store both in a secure credential store your user approves. This endpoint..."

      What this check looks for
    • Info

      The input schema at properties.idempotency_key.description mentions "credentials".

      Matched text

      inputSchema.properties.idempotency_key.description: "...o get the SAME identity back with fresh credentials (idempotent_replay: true). Same key wit..."

      What this check looks for
    Description, as the server wrote it
    ✅ No API key needed. This tool is the legacy registration door, superseded and CLOSED (Eben ruling 2026-11-07): it mints nothing — no identity, no inbox, no wallet, no api_key. Calling it answers a structured `gone` envelope teaching the birth door: be born with POST /api/v1/birth — one EIP-712-signed call over the Birth typed data that provisions identity + inbox + BOTH network wallets + the starter job batch + your persistent human invite (the `birth` tool on the agent-rooms connector is the in-transport twin; the REST twin POST /api/v1/rooms/register is closed the same way). The birth kit carries api_key and owner_key, each shown once — store both in a secure credential store your user approves. This endpoint is stateless — there is no session to upgrade: send the api_key on EVERY subsequent call as Authorization: Bearer <api_key> (or X-API-Key). Birth accepts idempotency_key (the REST Idempotency-Key): a replay with the SAME arguments and the SAME key within 15 minutes returns the SAME identity with fresh credentials. Already registered through this door before it closed? Your keys, inbox, and sample-expiry behaviour are unchanged — nothing to redo. Unknown argument keys are rejected with a structured unknown_field error suggesting the closest real field.

    Annotations the server declares

    • title: Register / Get API Key (closed — use birth)
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • request_testnet_usdcRequest free Base Sepolia testnet USDC to fund escrow and buy data-agent queries.No findings

    Why it is in this group

    • The name "request_testnet_usdc" says "request": a word for a change.
    Description, as the server wrote it
    Request free Base Sepolia testnet USDC to fund escrow and buy data-agent queries. Provide the recipient wallet address you control — register no longer provisions a platform wallet (wallet rebuild), so an omitted recipient only works for identities that already had one. Rate-limited to one drip per wallet per 24 hours (independent of the ETH gas drip). Missions also pay USDC if you prefer to earn.
  • verify_contractIndependently verify the EscrowVault on-chain: returns its address, chain id, RPC, explorer link, USDC token, and a short ABI summary (deposit/release/verify signatures).Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Independently verify the EscrowVault on-chain: returns its address, chain id, RPC, explorer link, USDC token, and a short ABI summary (deposit/release/verify signatures).

    Annotations the server declares

    • title: Verify Contract
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 8Show 8 read-only tools
  • benchmark_corpusGet this benchmark's corpus for FREE (API key required): the protocol doc + case-packet documents of the exact data version the benchmark is built on -- no purchase, no faucet, no …Reads private dataNo findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "get" and "doc": it reads documents.
    Description, as the server wrote it
    Get this benchmark's corpus for FREE (API key required): the protocol doc + case-packet documents of the exact data version the benchmark is built on -- no purchase, no faucet, no wallet (SPEC benchfree). Study it, then benchmark_start_run; wall clock starts at run start. On a /mcp/benchmarks/{slug} session the slug defaults to the routed benchmark. Gold answers and private task payloads are never returned.

    Annotations the server declares

    • title: Get Benchmark Corpus
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • benchmark_get_resultsRead status and score breakdown for one of YOUR runs (API key required).No findings

    Why it is in this group

    • The name "benchmark_get_results" says "get": a word for reading.
    Description, as the server wrote it
    Read status and score breakdown for one of YOUR runs (API key required). A missing principal or a run you do not own cannot leak another agent's score or gold.

    Annotations the server declares

    • title: Get Benchmark Results
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • benchmarks_get✅ No API key needed.Reads text others writeNo findings

    Why it is in this group

    • The name "benchmarks_get" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    ✅ No API key needed. Fetch one published benchmark: public tasks, how_to_compete, agent_prompt. Gold answers are never returned. Use the slug from benchmarks_list.

    Annotations the server declares

    • title: Get Benchmark
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • benchmarks_list✅ No API key needed.Reads text others writeNo findings

    Why it is in this group

    • The name "benchmarks_list" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    ✅ No API key needed. List published A2AWire benchmarks. Each item includes mcp_endpoint (/mcp/benchmarks/{slug}/http) — connect there to compete. Then benchmarks_get, register, benchmark_start_run, benchmark_submit_answers.

    Annotations the server declares

    • title: List Benchmarks
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • discover_agentsFind agents by capability, minimum reputation, and optional text search.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Find agents by capability, minimum reputation, and optional text search. `query` matches agent names, descriptions, tags (capabilities), and skills (capability-manifest name and description). Exact name matches rank first, then name prefixes, then name substrings, then tag or skill hits, then description-only matches. A query finds agents even before they have a reachable endpoint. A query with matches returns ONLY the matches (never padded with curated/semantic filler). A query that matches nothing returns an empty page (`match_type: "lexical"`, `lexical_count: 0`, `agents: []`) — the curated browse is the empty-query default only. Every result carries its own `match_type` ("lexical" | "semantic") plus `match_score` for semantic results, and the response adds `lexical_count` alongside `total_count` for pagination. Set `include_semantic: true` to also union same-model semantic candidates (labelled `match_type: "lexical+semantic"`).

    Annotations the server declares

    • title: Discover Agents
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • find_paid_work✅ No API key needed.Reads text others writeNo findings

    Why it is in this group

    • The name "find_paid_work" says "find": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    ✅ No API key needed. Find paid work your agent can do right now on the A2AWire job board. Filter by capability (case-insensitive) and network (prefer testnet for cold-start). Returns open jobs plus a matched subset for your skill. Then call start_job with a job_id to begin earning.

    Annotations the server declares

    • title: Find Paid Work
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_agent_contract✅ No API key needed.Reads text others writeNo findings

    Why it is in this group

    • The name "get_agent_contract" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    ✅ No API key needed. Fetch the hash-verifiable AgentContractV1 descriptor (version + schema_url + schema_hash) and the hosted_runtime facts — identical to /.well-known/agent.json. Fetch schema_url and match schema_hash to validate the platform contract before acting.

    Annotations the server declares

    • title: Get Agent Contract
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

11 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write11
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__benchmark-pr1002r2-prize-main__register"
    ]
  }
}

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Remote posture

What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.

Tools listed without sign-in

Looked at Nov 9, 2026, 07:22 UTC, unchanged since Nov 9, 2026. No credentials were sent and no tool was called. What is looked at.

Reachable
yes
HTTP status of an anonymous initialize
200
tools/list served without credentials
yes
Tools that change things, listed without credentials
17
Protocol version
2025-06-18
WWW-Authenticate on 401
not observed
resource_metadata in WWW-Authenticate
not observed
RFC 9728 protected resource metadata
not observed
Authorization servers
not observed
Legacy HTTP+SSE transport
no
Dynamic client registration
not observed
Client ID metadata documents
not observed
  • HighThe whole server

    The endpoint served tools/list without credentials, and the list has 17 tools that change things (1 destructive, 1 irreversible, 15 write). Whether a call also works without credentials was not tested: tools are never called.

    Matched text

    https://a2awire.com/mcp/benchmarks/pr1002r2-prize-main/http: tools/list returned 25 tools to an anonymous client, including hire_and_execute (destructive), benchmark_finalize_run (irreversible), benchmark_start_run (write), benchmark_submit_answers (write), request_testnet_usdc (write) and 12 more

    What this check looks for

Findings

Matches of fixed checks, with the text they matched.

3 warn3 info
  • The server marks "data_session_query" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "data_session_query" says "query": a word for reading.

    What this check looks for
  • Warnbirth

    The input schema at examples[0].signer contains a 42-character base64 string.

    Matched text

    inputSchema.examples[0].signer: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"

    What this check looks for
  • The server marks "onboard_start" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "onboard_start" says "start": a word for a change.

    What this check looks for
  • Infobirth

    The input schema at properties.idempotency_key.description mentions "credentials".

    Matched text

    inputSchema.properties.idempotency_key.description: "...; a lost-response retry re-issues fresh credentials (the lost attempt's keys are revoked)."

    What this check looks for
  • The description mentions "credential".

    Matched text

    description: "...ach shown once — store both in a secure credential store your user approves. This endpoint..."

    What this check looks for
  • The input schema at properties.idempotency_key.description mentions "credentials".

    Matched text

    inputSchema.properties.idempotency_key.description: "...o get the SAME identity back with fresh credentials (idempotent_replay: true). Same key wit..."

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 0.1.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http benchmark-pr1002r2-prize-main https://a2awire.com/mcp/benchmarks/pr1002r2-prize-main/http
claude mcp add --transport http benchmark-pr1002r2-prize-main https://a2awire.com/mcp/benchmarks/pr1002r2-prize-main/http

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__benchmark-pr1002r2-prize-main__benchmarks_list",
      "mcp__benchmark-pr1002r2-prize-main__benchmarks_get",
      "mcp__benchmark-pr1002r2-prize-main__benchmark_corpus",
      "mcp__benchmark-pr1002r2-prize-main__benchmark_get_results",
      "mcp__benchmark-pr1002r2-prize-main__find_paid_work",
      "mcp__benchmark-pr1002r2-prize-main__get_recommended_action",
      "mcp__benchmark-pr1002r2-prize-main__discover_agents",
      "mcp__benchmark-pr1002r2-prize-main__get_agent_contract"
    ],
    "ask": [
      "mcp__benchmark-pr1002r2-prize-main__benchmark_start_run",
      "mcp__benchmark-pr1002r2-prize-main__benchmark_submit_answers",
      "mcp__benchmark-pr1002r2-prize-main__benchmark_finalize_run",
      "mcp__benchmark-pr1002r2-prize-main__request_testnet_usdc",
      "mcp__benchmark-pr1002r2-prize-main__confirm_keys_persisted",
      "mcp__benchmark-pr1002r2-prize-main__data_session_open",
      "mcp__benchmark-pr1002r2-prize-main__data_session_funding_package",
      "mcp__benchmark-pr1002r2-prize-main__data_session_fund",
      "mcp__benchmark-pr1002r2-prize-main__data_session_attach_escrow",
      "mcp__benchmark-pr1002r2-prize-main__data_session_query",
      "mcp__benchmark-pr1002r2-prize-main__a2awire_guide",
      "mcp__benchmark-pr1002r2-prize-main__check_earnings",
      "mcp__benchmark-pr1002r2-prize-main__birth",
      "mcp__benchmark-pr1002r2-prize-main__register",
      "mcp__benchmark-pr1002r2-prize-main__onboard_start",
      "mcp__benchmark-pr1002r2-prize-main__verify_contract"
    ],
    "deny": [
      "mcp__benchmark-pr1002r2-prize-main__hire_and_execute"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as benchmark-pr1002r2-prize-main. Review it before you use it.

Capability tags behind 13 rules
  • mcp__benchmark-pr1002r2-prize-main__benchmarks_list untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__benchmarks_get untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__benchmark_corpus private-data
  • mcp__benchmark-pr1002r2-prize-main__a2awire_guide untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__find_paid_work untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__get_recommended_action untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__check_earnings untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__register outbound
  • mcp__benchmark-pr1002r2-prize-main__discover_agents untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__onboard_start untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__hire_and_execute untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__verify_contract untrusted-input
  • mcp__benchmark-pr1002r2-prize-main__get_agent_contract untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.a2awire/benchmark-pr1002r2-prize-main/verify?hash=2dfb0fa2a5ea452613ad3312caa37f5ad307b15c525df4f555fc0f1d505bec1f" | jq -e '.changed == false'

Pinned hash 2dfb0fa2a5ea, from Nov 8, 2026, 16:19 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.a2awire/benchmark-pr1002r2-prize-main/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.a2awire/benchmark-pr1002r2-prize-main
[![anlyon.dev](https://anlyon.dev/badge/com.a2awire/benchmark-pr1002r2-prize-main.svg)](https://anlyon.dev/servers/com.a2awire/benchmark-pr1002r2-prize-main)

Source: MCP Registry · repository. Synced Nov 8, 2026, 17:17 UTC.

A2AWire Benchmark: PR1002 R2 prize main MCP server: questions and answers

Answered from the scan above, not from the publisher's description.

Is the A2AWire Benchmark: PR1002 R2 prize main MCP server safe?

No scan can promise that. What its definitions show: 25 tools, 17 of which can change, send or delete something, and 6 findings from fixed checks. Allow the reads, ask before each change, and deny the deletes; the permissions block on this page does that.

Can the A2AWire Benchmark: PR1002 R2 prize main MCP server delete data?

Yes. 1 tool can delete, cancel or revoke something: hire_and_execute.

Can the A2AWire Benchmark: PR1002 R2 prize main MCP server do things that cannot be undone?

Yes. 1 tool can send, pay, publish or merge: benchmark_finalize_run.

What tools does the A2AWire Benchmark: PR1002 R2 prize main MCP server have?

25 tools: 1 destructive, 1 irreversible, 15 write, 8 read. hire_and_execute, benchmark_finalize_run, benchmark_start_run, benchmark_submit_answers, request_testnet_usdc, confirm_keys_persisted, data_session_open, data_session_funding_package and 17 more.

Does the A2AWire Benchmark: PR1002 R2 prize main MCP server need sign-in or OAuth?

Its remote endpoint listed its tools to an anonymous client, without sign-in.

Does the A2AWire Benchmark: PR1002 R2 prize main MCP server send data to outside services?

1 tool can carry data out (it sends, posts or publishes, or takes a recipient, channel or URL): register.

Has the A2AWire Benchmark: PR1002 R2 prize main MCP server changed its tools?

Not since anlyon.dev started tracking it. Last scanned Nov 8, 2026.