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.

tech.vauban/pay-mcp

NPM · @VAUBAN-PAY/MCP · SCANNED SEP 21

x402 tools for MCP clients: pay exact/Starknet or STARK-receipt 402s, verify, JCS-hash. No account.

Available components

+3 this week 68 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • Known CVEs were checked across the 135 of 136 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Dependency health was assessed across the 135 of 136 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1688 tokens (~281/item across 6 items; 6 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 Management47
  • Stability observed for 14 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 Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "pay_for_resource" implies "pay" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 6 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
Install

How do I install the tech.vauban/pay-mcp server?

tech.vauban/pay-mcp runs locally as an npm package, launched with npx -y @vauban-pay/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @vauban-pay/mcp

# add to Claude Code
claude mcp add tech-vauban-pay-mcp -- npx -y @vauban-pay/mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "tech-vauban-pay-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@vauban-pay/mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "tech-vauban-pay-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@vauban-pay/mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add tech-vauban-pay-mcp -- npx -y @vauban-pay/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tech-vauban-pay-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@vauban-pay/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tech-vauban-pay-mcp --command npx --arg -y --arg @vauban-pay/mcp
# ~/.hermes/config.yaml
mcp_servers:
  tech-vauban-pay-mcp:
    command: "npx"
    args: ["-y", "@vauban-pay/mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "tech-vauban-pay-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@vauban-pay/mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add tech-vauban-pay-mcp -t stdio -c npx -a -y @vauban-pay/mcp
// mcp.json
{
  "mcpServers": {
    "tech-vauban-pay-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@vauban-pay/mcp"
      ]
    }
  }
}
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.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +15
    • Malware scan: unverified → pass security
  • 8 Sept 26 0
    • Malware scan: unverified → pass security
    • Schema quality: 240 → 281 functional
    • Stability: unverified → 0.03 functional
    • Package version: 0.6.0 → 0.7.1 functional
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 21 Sept 2026 · Analysed npm/@vauban-pay/mcp@0.7.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 135 packages
Packages resolved 135
Deprecated 1
Stale 42
No linked repository 1
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

Background: SBOMs and build attestations, explained →

MCP tools · 6 exposed · ~1,688 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
check_merchant ~278

Check a merchant's proven service history (an x402 STARK-receipt history document, e.g. https://demo.pay.vauban.tech/x402/v1/history). Fetches history_url, validates the document, and verifies a sample of entries: L1 = structure + per-entry invariants + JCS canonicalization; L2 = each sampled settlement transaction is read from Starknet Sepolia and must be SUCCEEDED (a visible entry must carry a value transfer or a recognized receipt event). Four verdicts, NEVER conflated: - PROVEN_SAMPLE: document valid, sampled entries verify at the announced level. - REFUTED: an element contradicts itself or the chain -- the response names it. - NO_RECORD: no proven history at this URL. Indeterminate, NOT negative -- this is the state of most merchants today. - UNREACHABLE: transport failure; says nothing about the merchant. An RPC failure during L2 degrades the level to L1 and says so; it never becomes REFUTED. Full STARK re-verification (L3) is not run here; the response carries the public docker command.

NameTypeReqDescription
history_urlstringyesThe merchant's history endpoint (http(s) URL).
sample_sizeintegerEntries to verify, 1..20 (default 5).

No output schema declared.

No examples provided.

jcs_hash ~58

JCS (RFC 8785) canonicalize a JSON object then compute its SHA-256 hash. Returns base64-encoded canonical bytes and the hex digest.

NameTypeReqDescription
json_objectobjectyesThe JSON object to canonicalize and hash.

No output schema declared.

No examples provided.

make_payment ~325

Make a payment on Starknet Sepolia testnet. Call it with no arguments to get a real, sponsored settlement: we fund the testnet payment, so you need no wallet, no account and no STRK. Returns the transaction hash of YOUR payment plus a Voyager link, and you can read it back from any Sepolia RPC you trust. Pass amount_wei (a decimal string in STRK-wei) to choose the amount, within the published cap. The payee is fixed by the sponsor, so this is a funded demo and not a faucet. If you would rather pay from your own account, set PAY_MCP_SEPOLIA_ACCOUNT_ADDRESS + PAY_MCP_SEPOLIA_PRIVATE_KEY and this tool switches to your signer ; in that mode it emits a receipt hash through the PaymentDemoEmitter contract, which moves NO value and is not proof of a settled payment.

NameTypeReqDescription
amount_weistringAmount in STRK-wei, as a decimal STRING. A string because wei amounts exceed Number.MAX_SAFE_INTEGER and a JSON number would silently lose precision. Omit for the sponsored default.
cap_per_period_weistringOptional per-period cap, STRK-wei as a string.
cap_per_tx_weistringOptional per-transaction cap, STRK-wei as a string.
recipientstringInformational only in sponsored mode: the payee is fixed by the sponsor so that this is a demo and not a faucet.
scopestringOptional label carried into the authorization object.

No output schema declared.

No examples provided.

pay_for_resource ~642

Fetch a resource gated behind x402 and complete the payment flow to obtain it -- the x402 CLIENT walk, which none of the other tools here perform. GET url: if it answers 200 directly, the resource was free (outcome no_payment_required -- not a failure, x402 gates specific endpoints, not the whole internet). If it answers 402, parses the PAYMENT-REQUIRED manifest, downloads a STARK proof from proof_url (defaulted to the published demo proof only when url's host is demo.pay.vauban.tech; REQUIRED for any other host -- never guessed), gunzips it in memory, and POSTs it back to url. v0 HONESTY LIMIT: there is no public prover at v0, so the proof submitted is always PRE-GENERATED and published by the merchant, never produced by this agent from its own payment. A 'paid' outcome carries proof.honesty stating exactly what the resulting 200 proves (a real STARK verification, really bound to the settlement) and what it does NOT prove (that this agent spent its own funds or generated its own proof). Four outcomes, never conflated: no_payment_required (free), paid (200 after proof -- content + receipt + manifest + honesty label), refused (402 again after the proof was submitted -- the server's own reason, verbatim: a result, not an exception), unreachable (transport failure or an unrecognized HTTP status -- says nothing about the merchant). A missing proof_url on a non-demo host that requires payment returns a plain input error instead, since no request was ever sent to guess at. STANDARD x402 v2 (since 0.7.0): if the 402 carries the x402 foundation's PaymentRequired document (standard base64 of JSON, x402Version 2) with an exact offer on a Starknet network, this tool pays it the standard way instead: the configured Starknet account signs a SNIP-9 authorization for exactly that transfer, the merchant's facilitator settles it and pays the gas, and the same GET is retried with PAYMENT-SIGNATURE. A 'paid' outcome then carries standard{scheme, network, payTo, amount, asset, payer,…

NameTypeReqDescription
proof_urlstringWhere to download a pre-generated, gzipped STARK proof to submit. Defaults to the published demo proof when url's host is demo.pay.vauban.tech. REQUIRED for any other host.
urlstringyesThe resource URL to fetch (http(s)).

No output schema declared.

No examples provided.

request_delegation_grant ~137

Create a DelegationGrant authorization object. Builds the grant with canon_version 'x402-jcs-v1.0.0', JCS-hashes it and returns the grant hash.

NameTypeReqDescription
cap_per_periodintegerOptional per-period cap in centimes.
cap_per_txintegerOptional per-transaction cap in centimes.
delegateestringyesDelegatee identifier (address or DID).
delegatorstringyesDelegator identifier (address or DID).
expires_atstringyesISO 8601 expiration timestamp.
scopestringyesDelegation scope string.

No output schema declared.

No examples provided.

verify_receipt ~248

Verify a SettlementReceipt. Two modes: 1. Local JCS mode: provide receipt + expected_hash. Computes JCS+SHA-256 and compares. 2. On-chain mode: provide tx_hash. Reads the transaction from Starknet Sepolia and recognizes TWO distinct, never-conflated outcomes: a sponsored settlement (a real STRK value transfer -- returns execution status, block number, amount_wei, sender, recipient) or a PaymentDemoEmitter receipt-hash emission (moves NO value -- returns the reconstructed receipt and its JCS hash, as before). A reverted transaction, a transaction that does neither, or a tx_hash that does not exist all return verified: false with an explicit reason -- never a guess. Exactly one of (receipt + expected_hash) or (tx_hash) must be provided.

NameTypeReqDescription
expected_hashstringExpected SHA-256 hex digest, optionally prefixed with 'sha256:' (local JCS mode).
receiptobjectThe SettlementReceipt object to verify (local JCS mode).
tx_hashstringStarknet tx hash to look up on-chain (on-chain mode). E.g. 0x<hex>.

No output schema declared.

No examples provided.

Common questions

What is the tech.vauban/pay-mcp server?

tech.vauban/pay-mcp is listed in the public MCP registry as tech.vauban/pay-mcp. x402 tools for MCP clients: pay exact/Starknet or STARK-receipt 402s, verify, JCS-hash. No account. This page covers its npm package (@vauban-pay/mcp).

Is the tech.vauban/pay-mcp server safe to use?

tech.vauban/pay-mcp scores 68 out of 100 on VerifyMCP. It declares no install or post-install scripts. 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 tech.vauban/pay-mcp server expose?

tech.vauban/pay-mcp exposes 6 tools: jcs_hash, make_payment, verify_receipt, request_delegation_grant, check_merchant, pay_for_resource. Their descriptions and schemas cost roughly 1,688 tokens of context every time the server is loaded.

Is the tech.vauban/pay-mcp server still maintained?

tech.vauban/pay-mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the tech.vauban/pay-mcp server under?

tech.vauban/pay-mcp declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.