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
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
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 11 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
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
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
claude mcp add tech-vauban-pay-mcp -- npx -y @vauban-pay/mcp
{
"mcpServers": {
"tech-vauban-pay-mcp": {
"command": "npx",
"args": [
"-y",
"@vauban-pay/mcp"
]
}
}
} {
"servers": {
"tech-vauban-pay-mcp": {
"command": "npx",
"args": [
"-y",
"@vauban-pay/mcp"
]
}
}
} codex mcp add tech-vauban-pay-mcp -- npx -y @vauban-pay/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"tech-vauban-pay-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@vauban-pay/mcp"
],
"enabled": true
}
}
} openclaw mcp add tech-vauban-pay-mcp --command npx --arg -y --arg @vauban-pay/mcp
mcp_servers:
tech-vauban-pay-mcp:
command: "npx"
args: ["-y", "@vauban-pay/mcp"] {
"McpServers": {
"tech-vauban-pay-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@vauban-pay/mcp"
]
}
}
} assistant mcp add tech-vauban-pay-mcp -t stdio -c npx -a -y @vauban-pay/mcp
{
"mcpServers": {
"tech-vauban-pay-mcp": {
"command": "npx",
"args": [
"-y",
"@vauban-pay/mcp"
]
}
}
} 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
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 →
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 →
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.
| Name | Type | Req | Description |
|---|---|---|---|
| history_url | string | yes | The merchant's history endpoint (http(s) URL). |
| sample_size | integer | – | Entries 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.
| Name | Type | Req | Description |
|---|---|---|---|
| json_object | object | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount_wei | string | – | Amount 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_wei | string | – | Optional per-period cap, STRK-wei as a string. |
| cap_per_tx_wei | string | – | Optional per-transaction cap, STRK-wei as a string. |
| recipient | string | – | Informational only in sponsored mode: the payee is fixed by the sponsor so that this is a demo and not a faucet. |
| scope | string | – | Optional 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,…
| Name | Type | Req | Description |
|---|---|---|---|
| proof_url | string | – | Where 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. |
| url | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cap_per_period | integer | – | Optional per-period cap in centimes. |
| cap_per_tx | integer | – | Optional per-transaction cap in centimes. |
| delegatee | string | yes | Delegatee identifier (address or DID). |
| delegator | string | yes | Delegator identifier (address or DID). |
| expires_at | string | yes | ISO 8601 expiration timestamp. |
| scope | string | yes | Delegation 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.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_hash | string | – | Expected SHA-256 hex digest, optionally prefixed with 'sha256:' (local JCS mode). |
| receipt | object | – | The SettlementReceipt object to verify (local JCS mode). |
| tx_hash | string | – | Starknet tx hash to look up on-chain (on-chain mode). E.g. 0x<hex>. |
No output schema declared.
No examples provided.
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.