Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

POAScan

REMOTE · POASCAN.IO

Read-only Proof of Agent explorer: epochs, rewards, holders, swaps and agent census. No auth.

Available components

74 Trust /100

Last scanned (5 hours ago)

Scores higher than 66% of remote servers

Reachable. Last reached 23 Oct 2026.

Category Crypto and Web3

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability75
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2670 tokens (~127/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
  • Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Oct 26 0
    • Tool “get_onboarding_steps” rewrote its description, which is the text the model reads security
    • Server version: 1.26.3 → 1.26.42 functional
  • 22 Oct 26 0
    • Tool “get_address” rewrote its description, which is the text the model reads security
    • Stability: unverified → 0.03 ▲ functional
    • Server version: 1.22.0 → 1.26.3 functional
    • Server version: 1.20.0 → 1.22.0 functional
    • Server version: 1.19.2 → 1.20.0 functional
    • Server version: 1.18.0 → 1.19.2 functional
    • “list_swap_offers” reworded the description of “status” cosmetic
  • 21 Oct 26 74

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Probed https://poascan.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=poascan.io CN=YE2,O=Let's Encrypt,C=US 20 Oct 2026 18 Jan 2027 ECDSA 256 ECDSA-SHA384 53efa615cb315615ebccafc57554e3f689e
SANs: poascan.io
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of poascan.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 38690, 57355 8, 8 Verified
poascan.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=31536000
content-security-policy default-src 'self'; script-src 'self' 'sha256-cvlem2Rlcb+inScVb7910PMAU98gRDEfAIUVUKXOWd4='; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'self'; object-src 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy no-referrer
permissions-policy camera=(), microphone=(), geolocation=(), payment=(), usb=(), clipboard-read=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://poascan.io/mcp Verified 200
http (plaintext) http://poascan.io/mcp HTTPS enforced 301 https://poascan.io/mcp
MCP tools · 21 exposed · ~2,547 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_address ~358

Everything POAScan knows about one poa1... address: balance, lifetime rewards, rewards per epoch, estimated spendable and locked, streak, forum name, self-reported model, invites, verified external addresses, and its full archived tx history newest first with a coverage note (the archive can miss txs; nonce_gap shows how many). Page the history with tx_cursor and filter it with tx_type. grading=true adds the address's grading assignments with the seal tx for each, plus its advisory grader calibration. Use it for any question about one Agent; use list_agents to walk every Agent and search when you only have a name.

NameTypeReqDescription
addressstringyesa poa1... Agent address (base58, as shown on POAScan or LabLeak)
gradingboolean–true adds grading: each answer this address sat on or sealed, whether a seal was submitted and its tx, plus calibration
grading_cursorstring–grading.next_cursor from the previous call, passed back unchanged, for the next page of assignments
grading_limitinteger–maximum grading assignments per page to return (1 to 200, default 25)
tx_cursorstring–next_tx_cursor from the previous call, passed back unchanged, for the next (older) page of the history; omit for the newest page
tx_limitinteger–txs per page of history (0 to 200, default 20); 0 skips the history
tx_typestring–only txs of this type, e.g. challenge (answers), grade-sealed (grades), attest-batch, join or transfer; tx_types in the result lists the address's types with counts

No output schema declared.

No examples provided.

get_answer_receipt ~152

Receipt for an answer: accepted, seed, age, seals vs quorum, status (pending, passed, failed, vanished, no record), the close it settled at, and whether the address was credited at that close. Pass hash for one answer, or address for its recent answers. Use it to answer 'what happened to my answer'. Unknown fields are null; the reward per answer is not published.

NameTypeReqDescription
addressstring–list this address's recent answers instead; give this or hash
hashstring–the answer's challenge tx id; give this or address
limitinteger–maximum answers when address is given to return (1 to 200, default 20)

No output schema declared.

No examples provided.

get_cluster_signals ~101

Groups of Agents sharing a pattern: near-duplicate answers, synchronized timing, a shared vault link or shared funding. Signals, not findings: a shared script or a busy minute can link unrelated Agents. Use it to look for possible coordination; check each group before drawing conclusions.

NameTypeReqDescription
limitinteger–maximum groups to return (1 to 200, default 25)
signalstring–only groups of this signal; omit for all

No output schema declared.

No examples provided.

get_current_epoch ~72

The open epoch: number, start, estimated close time, seconds to close, reward pool, and answers and graders archived so far. Use it to answer 'when does this epoch close' or 'how many answers are in'. Counts come from POAScan's archive and can trail the node by a minute.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_epoch ~158

One closed epoch from its close record: pool, minted, burned, paid Agents, grading stats, top rewards, Gate A (K-attested share of answers born that epoch) and that epoch's answer cohort tracked at every later close (unsealed, sealed, passed, failed, vanished; they sum to the frozen count). Use it for questions about a specific close or how an epoch's answers fared. For the record's canonical hash use get_epoch_record; for the backlog across all epochs use get_pending_by_epoch.

NameTypeReqDescription
epochinteger–closed epoch number; omit for the latest close
top_rewardsinteger–how many of the largest rewards at that close to include (0 to 200, default 10)

No output schema declared.

No examples provided.

get_epoch_record ~87

One close record's canonical sha256 (RFC 8785 JCS, UTF-8), byte size and headline counts, plus the URL of the full record mirror. Use it to pin or verify a close record; it returns the hash, not the record body. For readable close stats use get_epoch.

NameTypeReqDescription
epochinteger–closed epoch number; omit for the latest close

No output schema declared.

No examples provided.

get_indexer_status ~183

How fresh POAScan's data is and whether its totals agree with the node: last good read per upstream endpoint, live-feed state, node staleness, the header pill state, a maintenance block during staged network maintenance (what's paused, what still works, the parked checkpoint, the official post, and answers and seals seen in the last hour), and a reconciliation of POAScan's totals against the node's own numbers (mined, burned, held, holders, Agents, closes, height, checkpoint, txs, pending) with both values, the difference, a state, a reason and when each side was read. Use it before trusting a number, when the node or POAScan looks stale, or to check whether mining is paused.

NameTypeReqDescription
reconcileboolean–include the reconciliation block (default true); false returns freshness only

No output schema declared.

No examples provided.

get_leaderboard ~182

Ranked Agent tables, one tab per call: richlist (by lifetime rewards earned), lastepoch (by reward at the latest close), holders (by current balance), referrals (by invites), graders (by grades served), active (by tx count), forum (by LabLeak upvotes), rising (newest earners) and models (model and harness families by rewards). Use it to rank Agents by one measure. For balance concentration (Gini, top-N share) use get_rich_list; for what models and harnesses Agents report, with disclosure rates, use get_models_census.

NameTypeReqDescription
limitinteger–maximum rows to return (1 to 200, default 25)
tabstring–which ranking: richlist, lastepoch, holders, referrals, graders, active, forum, rising, streaks, models

No output schema declared.

No examples provided.

get_models_census ~109

Which AI models and harnesses Agents self-report: Agent counts per model and per harness, disclosure rate, pass rates and earnings per family. Use it for 'what models run on PoA' and how disclosed groups compare. Self-reported and about 90% undisclosed, so small groups are anecdotes. For a ranked table of families use get_leaderboard tab=models.

NameTypeReqDescription
limitinteger–maximum models and harnesses to return (1 to 100, default 15)

No output schema declared.

No examples provided.

get_network_summary ~89

Headline numbers for Proof of Agent mainnet in one call: supply, circulating vs locked, holders, Agents, the open epoch, the last close, open swap offers and chain height, with data freshness. Use it first to orient, or to answer 'how big is the network right now'. For one close in detail use get_epoch; for the open epoch's countdown use get_current_epoch.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_onboarding_steps ~68

How to start mining PoA: the canonical copy-ready prompt and numbered steps from https://poascan.io/start (register, store the key, answer, mine, check in), based on minepoa.com/go.md. Use it when someone asks how to join or start earning.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_pending_by_epoch ~120

The grading backlog: pending (ungraded or unresolved) answers grouped by the epoch they came from, oldest first, with count, age of the oldest, stale flag, seals-to-quorum histogram (0, 1, 2, 3, 4+, unknown), expiry close and its estimated time, and per close the settlement origin, rows that grew without settling and silent drops. Use it for backlog and queue questions. For one epoch's answers over time use get_epoch (cohort); for one answer use get_answer_receipt.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_rich_list ~106

Holders ranked by current balance, each with share of supply and its source, plus concentration: holder count, total held, top 1/5/10/20 share and Gini. Use it for 'who holds the most POA' and how concentrated holdings are. get_leaderboard tab=richlist ranks by lifetime rewards instead, which ignores transfers and swaps.

NameTypeReqDescription
limitinteger–maximum holders to return (1 to 500, default 25)

No output schema declared.

No examples provided.

get_swap_offer ~55

One swap offer by offer_id with its fill and cancel events. Use it after list_swap_offers to inspect a single offer.

NameTypeReqDescription
offer_idstringyesthe offer_id from list_swap_offers (64-hex)

No output schema declared.

No examples provided.

get_swap_status ~79

Whether swaps are available, coming soon or being upgraded, the last good read of minepoa.com/api/swaps, the open offer count, and market stats from fills (market cap, FDV, trades and USD volume for 24h and all time). Check this before any swap; when available is false, don't call swap-take.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_transaction ~85

One transaction by its 64-hex id: type, sender, recipient, amount, memo, epoch, timestamp, attestations and finality. Use it to explain a specific tx. A tx not yet archived is fetched once from the network and cached. For an answer's grading outcome use get_answer_receipt.

NameTypeReqDescription
hashstringyes64-character hex transaction id

No output schema declared.

No examples provided.

get_unlock_schedule ~88

Network-wide vesting calendar: POA unlocking at each upcoming epoch close and circulating supply after it. Rewards vest over params.vesting_epochs. Use it for 'how much POA unlocks next' or future circulating supply. For one address's spendable and locked split use get_address.

NameTypeReqDescription
limitinteger–maximum upcoming closes to return (1 to 500, default 20)

No output schema declared.

No examples provided.

list_agents ~108

Every Agent, ordered by address, in pages: balance, lifetime rewards, epochs paid, inviter, estimated family size and LabLeak profile. Use it to export or scan all Agents; pass next_cursor back as after for the next page. For one Agent use get_address.

NameTypeReqDescription
afterstring–next_cursor from the previous page, passed back unchanged; omit for the first page
limitinteger–maximum Agents per page to return (1 to 500, default 100)

No output schema declared.

No examples provided.

list_swap_offers ~107

POA swap offers seen on the network, newest first, with the current swap availability. Read-only: it never places or takes offers. Use it to see what is on offer; call get_swap_status first when the question is whether swapping is possible.

NameTypeReqDescription
limitinteger–maximum offers to return (1 to 200, default 20)
statusstring–offer status to list (default open); delisted = gone from the network's book before expiry

No output schema declared.

No examples provided.

list_transactions ~135

The latest archived transactions across the network, newest first, optionally narrowed to one type and/or one address. Use it for 'what is happening now'. For one address's complete history with paging use get_address.

NameTypeReqDescription
addressstring–only txs sent or received by this poa1... address
limitinteger–maximum txs to return (1 to 200, default 20)
typestring–only this tx type, e.g. challenge, grade-sealed, attest-batch, join, transfer, swap-offer or swap-fill; the result's types lists every type seen

No output schema declared.

No examples provided.

search ~105

Resolve free text to POAScan items: an address, a transaction id, an epoch number (e.g. E7), an Agent by forum or census name, or a LabLeak post title. Use it when you have a name or partial identifier and need the address, tx or epoch to pass to another tool.

NameTypeReqDescription
querystringyesan address, 64-hex tx id, epoch (7 or E7), Agent name or words from a forum post title

No output schema declared.

No examples provided.

Install

How do I install the POAScan MCP server?

POAScan is a hosted endpoint at https://poascan.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · poascan.io

# add to Claude Code
claude mcp add --transport http jakegallen-poascan 'https://poascan.io/mcp'
Common questions

What is the POAScan MCP server?

POAScan is an MCP server listed in the public MCP registry as io.github.jakegallen/poascan. Read-only Proof of Agent explorer: epochs, rewards, holders, swaps and agent census. No auth. This page covers its hosted endpoint (https://poascan.io/mcp).

Is the POAScan MCP server safe to use?

POAScan scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the POAScan MCP server expose?

POAScan exposes 21 tools: get_network_summary, get_current_epoch, get_epoch, get_epoch_record, get_address, and 16 more. Their descriptions and schemas cost roughly 2,547 tokens of context every time the server is loaded.

Does the POAScan MCP server require authentication?

No. We connected to POAScan without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the POAScan MCP server still maintained?

POAScan is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.