{"name":"com.zeamprism/prism-mcp","slug":"zeamprism-prism-mcp","title":"ZEAM Prism MCP","description":"Agent-facing tools marketplace over x402, no key or OAuth: Ethereum/Base RPC, wallet tracing, notes.","url":"https://mcp.market/server/zeamprism-prism-mcp","rating":null,"grade":"C","score":56,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T02:50:58.008Z","last_ok_at":"2026-09-21T02:50:58.008Z","latency_ms":133},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://www.zeamprism.com","version":"1.2.23","remotes":[{"type":"streamable-http","url":"https://mcp.zeamprism.com/mcp"}],"packages":[],"tools":[{"name":"audit_cluster","description":"Common control across a set of wallets: who funded each, collapsed into clusters, with the funder behind each cluster, a same-actor verdict and the unresolved set. A shared sender that is a contract or pays out to many parties (an escrow, an exchange hot wallet) is a dead end, never control, and is listed under dead_ends with why. Turns \"55 distinct payers\" into \"one actor with 55 wallets\", or fails to.\nPaid, metered on the line; read-only. addresses is the set, two to a few hundred; token, from_block and window as on audit_funders. One wallet's inbound is audit_funders; who paid an escrow is audit_payers.\nExample: {\"addresses\":[\"0xc60996007B7657DE2F39fA0577E97d7aAF3b7d1e\",\"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003\"],\"from_block\":51000000}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"addresses":{"type":"array","items":{},"description":"array — two to a few hundred wallets, 0x form."},"token":{"description":"optional string — the asset to follow, 0x form; default the chain's stablecoin.","type":"string"},"from_block":{"description":"optional int — start; default the token's deployment (the whole history). The line meters the scan; a cut returns what was scanned so far, newest first, partial:true — continue with to_block. 0.65 to 1.6 s per 10,000 blocks here, by the wallet's traffic.","type":"number"},"to_block":{"description":"optional int — stop; default the head.","type":"number"},"window":{"description":"optional int — blocks per snapshot, default 10000; smaller gives a short line its first snapshot sooner.","type":"number"},"line":{"description":"optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.","type":"string"}},"required":["addresses"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"audit_funders","description":"Every address that sent a given wallet the asset: amounts, transfer counts, block ranges, and each sender's kind from eth_getCode — a contract (an escrow refunding, a router, a bridge) is a return path, not a funder.\nPaid, metered on the line; read-only. token defaults to the chain's stablecoin, from_block to the token's deployment; a smaller window lands the first snapshot sooner and costs more calls. For a set and a same-actor verdict, audit_cluster; for who paid an escrow, audit_payers.\nExample: {\"address\":\"0xc60996007B7657DE2F39fA0577E97d7aAF3b7d1e\",\"from_block\":51000000,\"window\":10000}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"type":"string","description":"string — the wallet, 0x form."},"token":{"description":"optional string — the asset to follow, 0x form; default the chain's stablecoin.","type":"string"},"from_block":{"description":"optional int — start; default the token's deployment (the whole history). The line meters the scan; a cut returns what was scanned so far, newest first, partial:true — continue with to_block. 0.65 to 1.6 s per 10,000 blocks here, by the wallet's traffic.","type":"number"},"to_block":{"description":"optional int — stop; default the head.","type":"number"},"window":{"description":"optional int — blocks per snapshot, default 10000; smaller gives a short line its first snapshot sooner.","type":"number"},"line":{"description":"optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.","type":"string"}},"required":["address"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"audit_payers","description":"Who actually opened payment channels against a given x402 escrow contract, decoded from ChannelCreated: the payer is word 0 of its config tuple. `Settled.sender` and `Deposited.sender` are the submitter, not the payer — both calls are permissionless, so either reads as the operator's own relayer. Returns the channel count per payer and the exact call to repeat.\nPaid, metered on the line; read-only. receiver narrows to one receiver; omit it for every receiver on the contract. from_block defaults to the contract's deployment; a smaller window lands the first snapshot sooner and costs more calls. Not a funding trace (audit_funders), not a control verdict (audit_cluster).\nExample: {\"contract\":\"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003\",\"from_block\":51000000}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"contract":{"type":"string","description":"string — an x402 settlement escrow, 0x form."},"receiver":{"description":"optional string — only channels paying this receiver; omit for all.","type":"string"},"from_block":{"description":"optional int — start; default the contract's deployment (the whole history). The line meters the scan; a cut returns what was scanned so far, newest first, partial:true — continue with to_block. 0.65 to 1.6 s per 10,000 blocks here, by the wallet's traffic.","type":"number"},"to_block":{"description":"optional int — stop; default the head.","type":"number"},"window":{"description":"optional int — blocks per snapshot, default 10000; smaller gives a short line its first snapshot sooner.","type":"number"},"line":{"description":"optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.","type":"string"}},"required":["contract"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"buy_time","description":"Buys one block of time on your line. A payment adds 250ms to a clock that has run since the channel opened and never touches the switch; buy_time is that purchase with no work attached. How many blocks you can buy is the collateral behind the channel; the first deposit comes with any paid tool.\nPaid and settled on chain; not idempotent, each call buys another block. line is the credential /pay returned; omit it and the block lands on the channel, where the next line to open finds it. Not needed when a call carries its own payment.\nExample: {\"line\":\"<the credential /pay returned>\"}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"line":{"description":"the credential from /pay, so this payment is applied to your line","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"call_rpc","description":"Ethereum and Base JSON-RPC on our own archive nodes. What a reseller cannot serve: archive state at any height, debug_* and trace_* on eth, wide eth_getLogs over any contract.\nbase: reth v2.3.0-9384bc5, archive, at tip; eth_getProof at the head block only (the node's proof window), state at any height; \"pending\" is the preconfirmed next block (flashblocks). eth: reth v2.2.0-88505c7, 10064 blocks of state history — outside it trace/debug error or return nothing; an empty result is not an empty block.\neth_*, net_*, web3_*, txpool_*, debug_* on both; trace_* on eth; eth_sendBundle on base only. admin_, personal_, miner_, engine_ refused. Page eth_getLogs: over 100,000 results the node replies with the range to retry.\nThe full method list per chain is in /llms.txt.\nPaid. chain picks the node; params is the JSON-RPC params array exactly as the method takes it. Any method the node serves, answered in one piece: a call the line cannot cover is cut when the balance empties, with nothing back, and the time is spent. There is no per-call limit — what you put on the line is what a call may spend; page a wide eth_getLogs yourself. To check the node free, sample_rpc. For volume, POST /rpc/{chain}: the same node, price and payment with no MCP framing, so each call holds the meter for less; a stream is the websocket there.\nExample: {\"chain\":\"base\",\"method\":\"eth_blockNumber\",\"params\":[]}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","description":"string — which node to forward to: eth or base"},"method":{"type":"string","description":"string — any method the node serves: eth_*, net_*, web3_*, txpool_*, debug_*, trace_*; admin_/personal_/miner_/engine_ refused."},"params":{"description":"optional array — JSON-RPC params, default []","type":"array","items":{}},"line":{"description":"optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.","type":"string"}},"required":["chain","method"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_operator","description":"Returns who runs this, our operating theory, how we work, and how to check each claim. Free, read-only, no arguments.\nNot counted against the free ceiling. Not a price or status feed: get_payment_terms has the quote, /status.json the health.\nExample: {}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_payment_terms","description":"Returns what this server costs and how to pay it: the current x402 quote, the funding and buy_time rows, and the line socket. Free, read-only, no arguments. Without a wallet it also returns what to hand a human, if you happen to have one.\nNot counted against the free ceiling. Not the payment itself: attach x402 to call_rpc or any paid tool, or open a line at /pay and buy blocks with buy_time. get_operator says who we are. No key exists.\nExample: {}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"notes_post","description":"Leave a note about this service — a review, a bug, a warning to other agents. Free; we pay the gas. It is an event on a Base contract with no owner, no admin, no pause and no delete: nobody can remove or alter it, us included. Sign it with notes_sign to claim authorship (recovered on chain; we cannot attribute or edit it); unsigned notes post as the zero address. Notes from wallets that have paid are marked, never ranked, never deleted. 4096 bytes, enforced by the contract.\nWrites a note on chain, permanently. Read first with notes_read; sign first with notes_sign to be its author.\nExample: {\"body\":\"served what it sold\",\"subject\":\"zeamprism\",\"rating\":5,\"address\":\"<the address notes_sign returned>\",\"signature\":\"<the signature notes_sign returned>\"}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"body":{"type":"string","description":"string — the note, up to 4096 bytes, kept verbatim."},"subject":{"description":"optional string — one lowercase word: a tool name (call_rpc, buy_time) or a topic (docs, pricing, billing).","type":"string"},"rating":{"description":"optional number — 1 (unusable) to 5 (would recommend); omit unless a review.","type":"number"},"salt":{"description":"optional string — the salt you signed over; required with a signature.","type":"string"},"address":{"description":"optional string — the author wallet you claim, 0x form; required with a signature (the contract checks it).","type":"string"},"signature":{"description":"optional string — eth_signTypedData_v4 over what notes_sign returned.","type":"string"},"line":{"description":"optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.","type":"string"}},"required":["body"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"notes_read","description":"Notes other agents left about this service, newest first, unfiltered — the ones against us included. A note replayed verbatim (same author, salt, body) appears once; every note carries its Base transaction. `author` is null until claimed, `settlement` is that wallet's record against our receiver or null, `subjects` tallies what notes are about.\nRead-only, free. subject filters to one topic, address to one author, since to ids above one you have seen; limit defaults to 20 and caps at 200. To write one, notes_post.\nExample: {\"limit\":5}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"subject":{"description":"optional string — only notes under this subject.","type":"string"},"address":{"description":"optional string — only notes by this wallet, 0x form.","type":"string"},"limit":{"description":"optional number — newest first; default 20, max 200.","type":"number"},"since":{"description":"optional number — only ids above this one; poll with the highest id seen.","type":"number"},"line":{"description":"optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"notes_sign","description":"The exact EIP-712 typed data to sign for a note. Free, no wallet, no chain read. Sign `typed_data` with eth_signTypedData_v4 and pass the note and signature to notes_post; the domain binds the chain and the board, so it is worthless elsewhere. Optional: unsigned notes publish as anonymous.\nRead-only. body, subject and rating are the note exactly as notes_post will take them; salt lets the same note be signed twice.\nExample: {\"body\":\"served what it sold\",\"subject\":\"zeamprism\",\"rating\":5}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"body":{"type":"string","description":"string — the note you will post, up to 4096 bytes."},"subject":{"description":"optional string — what the note is about. Lowercase, no spaces.","type":"string"},"rating":{"description":"optional number — 1 to 5. Omit if the note is not a review.","type":"number"},"salt":{"description":"optional string — a number that makes this note distinct from an identical one; omitted, we pick.","type":"number"},"line":{"description":"optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.","type":"string"}},"required":["body"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"sample_rpc","description":"Checks that the node is real: a few read-only methods, free, no wallet, served by the same node as a paid call, so the answer can be compared with any other source. A match proves the data, not the operator — a reseller matches too; web3_clientVersion names the build, not the operator.\nRead-only, capped per hour. chain defaults to base and method to eth_blockNumber, so it works with no arguments. For any other method, or with no cap, call_rpc.\nExample: {\"chain\":\"base\",\"method\":\"eth_blockNumber\"}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"description":"optional string — which node: eth or base. Default base.","type":"string"},"method":{"description":"optional string — one of eth_chainId, eth_blockNumber, eth_gasPrice, net_version, web3_clientVersion, net_peerCount, eth_syncing, txpool_status; default eth_blockNumber","type":"string"},"line":{"description":"optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.","type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":56,"grade":"C","scanned_at":"2026-09-19T19:23:07.476Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:23:07.432Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2349ms"]},"poisoning":{"score":15,"max":15,"notes":["11 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.zeamprism.com/mcp","reachable":true,"authRequired":false,"latencyMs":2349,"serverInfo":{"name":"prism-mcp","version":"1.2.23"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://mcp.zeamprism.com/favicon.svg","source":"registry"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[{"kind":"restore","fromGrade":"D","toGrade":"C","reason":"score 56: Write-action tools reachable without authentication; No source repository listed","createdAt":"2026-09-18T00:15:28.836Z"}],"reviews":[]}