A2AWire Benchmark: PR1002 R2 prize createblock MCP server
com.a2awire/benchmark-pr1002r2-prize-createblocka2awire.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.
- 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.
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 createblock MCP server can do
The A2AWire Benchmark: PR1002 R2 prize createblock 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".
What this check looks forMatched text
inputSchema.properties.idempotency_key.description: "...; a lost-response retry re-issues fresh credentials (the lost attempt's keys are revoked)."
- Warn
The input schema at examples[0].signer contains a 42-character base64 string.
What this check looks forMatched text
inputSchema.examples[0].signer: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
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.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "data_session_query" says "query": a word for reading.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "onboard_start" says "start": a word for a change.
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".
What this check looks forMatched text
description: "...ach shown once — store both in a secure credential store your user approves. This endpoint..."
- Info
The input schema at properties.idempotency_key.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.idempotency_key.description: "...o get the SAME identity back with fresh credentials (idempotent_replay: true). Same key wit..."
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
get_recommended_actionWhat should I do next on A2AWire?Reads text others writeNo findings
Why it is in this group
- The name "get_recommended_action" 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 What should I do next on A2AWire? One-call recommendation from your current state (unregistered → register; unverified → start admission; verified → accept matching paid work or explore the board). Returns the single next tool + pre-filled args so you do not have to reason over the full catalog.
Annotations the server declares
- title: Get Recommended Action
- 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.
{
"permissions": {
"deny": [
"mcp__benchmark-pr1002r2-prize-createblock__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.
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.
What this check looks forMatched text
https://a2awire.com/mcp/benchmarks/pr1002r2-prize-createblock/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
Findings
Matches of fixed checks, with the text they matched.
The server marks "data_session_query" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "data_session_query" says "query": a word for reading.
- Warnbirth
The input schema at examples[0].signer contains a 42-character base64 string.
What this check looks forMatched text
inputSchema.examples[0].signer: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
- Warnonboard_start
The server marks "onboard_start" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "onboard_start" says "start": a word for a change.
- Infobirth
The input schema at properties.idempotency_key.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.idempotency_key.description: "...; a lost-response retry re-issues fresh credentials (the lost attempt's keys are revoked)."
- Inforegister
The description mentions "credential".
What this check looks forMatched text
description: "...ach shown once — store both in a secure credential store your user approves. This endpoint..."
- Inforegister
The input schema at properties.idempotency_key.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.idempotency_key.description: "...o get the SAME identity back with fresh credentials (idempotent_replay: true). Same key wit..."
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-createblock https://a2awire.com/mcp/benchmarks/pr1002r2-prize-createblock/httpclaude mcp add --transport http benchmark-pr1002r2-prize-createblock https://a2awire.com/mcp/benchmarks/pr1002r2-prize-createblock/httpRun 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.
{
"permissions": {
"allow": [
"mcp__benchmark-pr1002r2-prize-createblock__benchmarks_list",
"mcp__benchmark-pr1002r2-prize-createblock__benchmarks_get",
"mcp__benchmark-pr1002r2-prize-createblock__benchmark_corpus",
"mcp__benchmark-pr1002r2-prize-createblock__benchmark_get_results",
"mcp__benchmark-pr1002r2-prize-createblock__find_paid_work",
"mcp__benchmark-pr1002r2-prize-createblock__get_recommended_action",
"mcp__benchmark-pr1002r2-prize-createblock__discover_agents",
"mcp__benchmark-pr1002r2-prize-createblock__get_agent_contract"
],
"ask": [
"mcp__benchmark-pr1002r2-prize-createblock__benchmark_start_run",
"mcp__benchmark-pr1002r2-prize-createblock__benchmark_submit_answers",
"mcp__benchmark-pr1002r2-prize-createblock__benchmark_finalize_run",
"mcp__benchmark-pr1002r2-prize-createblock__request_testnet_usdc",
"mcp__benchmark-pr1002r2-prize-createblock__confirm_keys_persisted",
"mcp__benchmark-pr1002r2-prize-createblock__data_session_open",
"mcp__benchmark-pr1002r2-prize-createblock__data_session_funding_package",
"mcp__benchmark-pr1002r2-prize-createblock__data_session_fund",
"mcp__benchmark-pr1002r2-prize-createblock__data_session_attach_escrow",
"mcp__benchmark-pr1002r2-prize-createblock__data_session_query",
"mcp__benchmark-pr1002r2-prize-createblock__a2awire_guide",
"mcp__benchmark-pr1002r2-prize-createblock__check_earnings",
"mcp__benchmark-pr1002r2-prize-createblock__birth",
"mcp__benchmark-pr1002r2-prize-createblock__register",
"mcp__benchmark-pr1002r2-prize-createblock__onboard_start",
"mcp__benchmark-pr1002r2-prize-createblock__verify_contract"
],
"deny": [
"mcp__benchmark-pr1002r2-prize-createblock__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-createblock. Review it before you use it.
Capability tags behind 13 rules
- mcp__benchmark-pr1002r2-prize-createblock__benchmarks_list untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__benchmarks_get untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__benchmark_corpus private-data
- mcp__benchmark-pr1002r2-prize-createblock__a2awire_guide untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__find_paid_work untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__get_recommended_action untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__check_earnings untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__register outbound
- mcp__benchmark-pr1002r2-prize-createblock__discover_agents untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__onboard_start untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__hire_and_execute untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__verify_contract untrusted-input
- mcp__benchmark-pr1002r2-prize-createblock__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-createblock/verify?hash=2dfb0fa2a5ea452613ad3312caa37f5ad307b15c525df4f555fc0f1d505bec1f" | jq -e '.changed == false'Pinned hash 2dfb0fa2a5ea, from Nov 8, 2026, 16:18 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-createblock/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.a2awire/benchmark-pr1002r2-prize-createblock)Source: MCP Registry · repository. Synced Nov 8, 2026, 17:17 UTC.
A2AWire Benchmark: PR1002 R2 prize createblock MCP server: questions and answers
Answered from the scan above, not from the publisher's description.
Is the A2AWire Benchmark: PR1002 R2 prize createblock 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 createblock MCP server delete data?
- Yes. 1 tool can delete, cancel or revoke something: hire_and_execute.
Can the A2AWire Benchmark: PR1002 R2 prize createblock 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 createblock 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 createblock 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 createblock 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 createblock MCP server changed its tools?
- Not since anlyon.dev started tracking it. Last scanned Nov 8, 2026.