Skip to content

402Mob — Agent Commerce on Base

io.github.gggggggg424242/402mobgggggggg424242streamable-httpv0.1.0Scanned

Agent commerce on Base: discover merchants, buy artifacts, verify invoices, recover operations.

19 tools: 1 do something that can't be undone, 11 change things and 7 only read.

Tools: 0 delete, 1 irreversible, 11 write, 7 read.
  • Reads private data · 1
  • Reads text others write · 0
  • Can send data out · 0
  • No findings

Anlyon alternative

12 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

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.

19 tools

Can't be undone 1Claude Code: ask
  • complete_prepared_artifact_transferVerify a direct Base USDC artifact payment and the buyer's separate zero-USDC wallet-control proof, then deliver the retained artifact.No findings

    Why it is in this group

    • The name "complete_prepared_artifact_transfer" says "transfer": a word for a change that another call does not undo.
    Description, as the server wrote it
    Verify a direct Base USDC artifact payment and the buyer's separate zero-USDC wallet-control proof, then deliver the retained artifact. On timeout, retry the same challenge, transaction hashes, and idempotency key; do not send USDC again. The transaction hash alone is not enough to claim a purchase.
Changes things 11Claude Code: ask
  • buy_prepared_artifactBuy an active prepared artifact from a wallet-enrolled merchant with standard x402: the first call returns payment requirements; sign locally and retry the same arguments with _met…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 an active prepared artifact from a wallet-enrolled merchant with standard x402: the first call returns payment requirements; sign locally and retry the same arguments with _meta['x402/payment']. For a wallet tool without typed-data signing, use create_prepared_artifact_transfer_challenge, send the exact USDC amount, make the separate zero-USDC wallet proof, then call complete_prepared_artifact_transfer. Reuse the same identifiers and payment proof after timeouts.
  • complete_merchant_credential_rotation_signatureRotate a lost merchant API key by submitting the merchant wallet's EIP-191 signature of the exact message returned by create_merchant_credential_rotation_challenge.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
    Rotate a lost merchant API key by submitting the merchant wallet's EIP-191 signature of the exact message returned by create_merchant_credential_rotation_challenge. This method needs no transaction or gas. It returns the replacement key once and invalidates the old one; store the new key securely.
  • complete_merchant_credential_rotation_transactionRotate a merchant API key after the wallet tool submits and confirms a challenge-specific zero-USDC action.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
    Rotate a merchant API key after the wallet tool submits and confirms a challenge-specific zero-USDC action. Returns the replacement key once and invalidates the old one. Store the new key in the agent's secret manager immediately.
  • complete_merchant_enrollment_signatureComplete merchant enrollment using the EIP-191 signature of the exact message returned by create_merchant_enrollment_challenge.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
    Complete merchant enrollment using the EIP-191 signature of the exact message returned by create_merchant_enrollment_challenge. Accepts only a wallet signature, never a private key. Returns the merchant API key once; store it in the agent's secret manager immediately and do not log the result.
  • complete_merchant_enrollment_transactionComplete enrollment after the wallet tool submits and confirms the challenge-specific zero-USDC action.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
    Complete enrollment after the wallet tool submits and confirms the challenge-specific zero-USDC action. Accepts the transaction hash; never accepts or needs a private key. Returns the merchant API key once—store it in the agent's secret manager immediately.
  • create_delivery_receipt_challengeCreate a short-lived challenge for the payer wallet to sign accepted or disputed for a retained result.No findings

    Why it is in this group

    • The name "create_delivery_receipt_challenge" says "create": a word for a change.
    Description, as the server wrote it
    Create a short-lived challenge for the payer wallet to sign accepted or disputed for a retained result. This does not charge or sign for the wallet. The returned message must be signed with EIP-191 by the payer.
  • create_merchant_credential_rotation_challengeBegin recovery of a lost merchant API key.No findings

    Why it is in this group

    • The name "create_merchant_credential_rotation_challenge" says "create": a word for a change.
    Description, as the server wrote it
    Begin recovery of a lost merchant API key. Returns a five-minute wallet-bound challenge for either gas-free EIP-191 signing or a zero-USDC Base transaction proof. The wallet signs or submits the action; 402Mob never signs for it.
  • create_merchant_enrollment_challengeBegin headless merchant enrollment.No findings

    Why it is in this group

    • The name "create_merchant_enrollment_challenge" says "create": a word for a change.
    Description, as the server wrote it
    Begin headless merchant enrollment. Returns the exact five-minute EIP-191 message and a Base USDC approve-zero or transfer-zero alternative. Sign the exact message with the merchant wallet, then call complete_merchant_enrollment_signature; or use the wallet action and complete_merchant_enrollment_transaction. 402Mob never receives a private key. Store the returned merchant API key securely.
  • create_prepared_artifact_transfer_challengePrepare a noncustodial direct-USDC checkout for a prepared artifact.No findings

    Why it is in this group

    • The name "create_prepared_artifact_transfer_challenge" says "create": a word for a change.
    Description, as the server wrote it
    Prepare a noncustodial direct-USDC checkout for a prepared artifact. Returns the seller's payout address and exact amount, plus a separate challenge-bound zero-USDC approval that proves the buyer wallet controls the purchase. Both wallet actions are submitted by the buyer's own wallet tool; 402Mob never holds funds or signs transactions.
  • reconcile_assigned_operationCheck settlement evidence for a pending 402Mob operation using its x402 settlement transaction hash.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
    Check settlement evidence for a pending 402Mob operation using its x402 settlement transaction hash. Requires an assigned operation and both operations:read and operations:reconcile scopes. This does not submit payment.
  • submit_delivery_receiptSubmit the payer wallet's EIP-191 signature for a delivery receipt challenge.No findings

    Why it is in this group

    • The name "submit_delivery_receipt" says "submit": a word for a change.
    Description, as the server wrote it
    Submit the payer wallet's EIP-191 signature for a delivery receipt challenge. The signature must be created by the payer wallet, not by 402Mob.
Only reads 7Show 7 read-only tools
  • discover_merchant_offersList a merchant's active prepared-artifact offers, fixed prices, and checkout IDs.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List a merchant's active prepared-artifact offers, fixed prices, and checkout IDs. This is public and does not require a bearer key.
  • list_assigned_operationsList operations assigned to the calling coordinator agent.No findings

    Why it is in this group

    • The name "list_assigned_operations" says "list": a word for reading.
    Description, as the server wrote it
    List operations assigned to the calling coordinator agent. Requires an Authorization bearer key with operations:read scope.
  • read_assigned_delivery_receiptsRead signed delivery receipt proofs for an assigned operation.No findings

    Why it is in this group

    • The name "read_assigned_delivery_receipts" says "read": a word for reading.
    Description, as the server wrote it
    Read signed delivery receipt proofs for an assigned operation. Requires operations:read scope in the MCP Authorization header.
  • read_assigned_operation_evidenceRead redacted operation evidence, including result hash, settlement record, and delivery receipt summaries.No findings

    Why it is in this group

    • The name "read_assigned_operation_evidence" says "read": a word for reading.
    Description, as the server wrote it
    Read redacted operation evidence, including result hash, settlement record, and delivery receipt summaries. Requires an assigned operation and operations:read scope in the MCP Authorization header.
  • reconcile_base_invoiceCompare a Base transaction with an expected USDC invoice sender, recipient and amount.No findings

    Why it is in this group

    • The description's first verb is "compare": a word for reading.
    Description, as the server wrote it
    Compare a Base transaction with an expected USDC invoice sender, recipient and amount. Returns match only after 3 confirmations. Costs 0.02 USDC on Base. Supply and persist an idempotencyKey for safe retries.
  • resolve_latest_merchant_offerResolve any known offer ID to the currently published latest version in its immutable offer series.No findings

    Why it is in this group

    • The name "resolve_latest_merchant_offer" says "resolve": a word for reading.
    Description, as the server wrote it
    Resolve any known offer ID to the currently published latest version in its immutable offer series. Does not require a bearer key or payment.
  • search_merchantsSearch the public opt-in merchant directory by name or active offer text.Reads private dataNo findings

    Why it is in this group

    • The name "search_merchants" says "search": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "search" and "directory": it reads files.
    Description, as the server wrote it
    Search the public opt-in merchant directory by name or active offer text. Returns current published versions with prices and checkout references; does not require a merchant ID or bearer key.

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.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

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

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

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.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http 402mob https://evidence.contact/mcp
claude mcp add --transport http 402mob https://evidence.contact/mcp

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__402mob__reconcile_base_invoice",
      "mcp__402mob__search_merchants",
      "mcp__402mob__discover_merchant_offers",
      "mcp__402mob__resolve_latest_merchant_offer",
      "mcp__402mob__list_assigned_operations",
      "mcp__402mob__read_assigned_operation_evidence",
      "mcp__402mob__read_assigned_delivery_receipts"
    ],
    "ask": [
      "mcp__402mob__create_merchant_enrollment_challenge",
      "mcp__402mob__complete_merchant_enrollment_signature",
      "mcp__402mob__complete_merchant_enrollment_transaction",
      "mcp__402mob__create_merchant_credential_rotation_challenge",
      "mcp__402mob__complete_merchant_credential_rotation_signature",
      "mcp__402mob__complete_merchant_credential_rotation_transaction",
      "mcp__402mob__create_prepared_artifact_transfer_challenge",
      "mcp__402mob__complete_prepared_artifact_transfer",
      "mcp__402mob__buy_prepared_artifact",
      "mcp__402mob__create_delivery_receipt_challenge",
      "mcp__402mob__submit_delivery_receipt",
      "mcp__402mob__reconcile_assigned_operation"
    ],
    "deny": []
  }
}

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 402mob. Review it before you use it.

Capability tags behind 1 rule
  • mcp__402mob__search_merchants private-data

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/io.github.gggggggg424242/402mob/verify?hash=7eebdfa6d2b1db2e2cb564fdd77e7b814e99cb459ebbfd80fed19bca4c14c456" | jq -e '.changed == false'

Pinned hash 7eebdfa6d2b1, from Oct 28, 2026, 21:18 UTC.

Watch

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

https://anlyon.dev/servers/io.github.gggggggg424242/402mob/changes.xml

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

Badge

anlyon.dev badge for io.github.gggggggg424242/402mob
[![anlyon.dev](https://anlyon.dev/badge/io.github.gggggggg424242/402mob.svg)](https://anlyon.dev/servers/io.github.gggggggg424242/402mob)

Source: MCP Registry. Synced Oct 28, 2026, 21:17 UTC.