Provides pay-per-call access to UK vehicle MOT history and reliability analytics using automated USDC micropayments on Base.
Also known as mossforge/databroker, @mossforge/databroker-mcp
- Stars
- 0
- Tools
- 6
- Downloads, 30 days
- —
- Latest version
- 0.5.0
- Last commit
- Aug 30, 2026
- License
- MIT
What is databroker MCP?
databroker provides pay-per-call access to UK vehicle MOT history and reliability analytics using automated USDC micropayments on Base. It exposes 6 tools, such as databroker_discover, databroker_fetch, databroker_meta.
Summary generated from the project's README
About databroker MCP server
Accessing UK vehicle MOT history and reliability analytics through an AI agent is possible with this server. It provides pay-per-call intelligence for developers using clients like Claude Desktop, Claude Code, or Cursor. Instead of traditional subscriptions or API keys, the system uses automated USDC micropayments on the Base mainnet to pay for specific data points.
Users interact with the server through tools such as databroker_discover to see available datasets, databroker_fetch for single datapoints, and databroker_batch_create to retrieve up to 100 keys in one job. To prevent unexpected costs, the server requires a quote before any payment occurs and enforces a per-call limit defined by the DATABROKER_MAX_USDC environment variable.
Setup involves connecting a funded EOA wallet via a private key or using a Coinbase CDP-managed wallet. For added security, the server can use MCP elicitation to prompt a human for manual approval of every charge on supported clients. This ensures that the AI model cannot spend funds without direct user consent.
What you can do with it
- 1Verify vehicle MOT historyAsk an AI agent to check the MOT records and mileage authenticity of a specific car registration.
- 2Explore available datasetsList all enabled datasets and their specific pricing in USDC before requesting data.
- 3Perform bulk data retrievalRequest up to 100 different vehicle keys from a dataset using a single batch job and one payment.
- 4Check data freshnessInspect the source and staleness of a datapoint without incurring any costs.
Written from the project's README. Every use case is checked against a quote from it.
How to install databroker MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall databroker MCP in Claude Code
$ claude mcp add --env 'DATABROKER_BASE_URL=<DATABROKER_BASE_URL>' --env 'CDP_API_KEY_ID=<YOUR_CDP_API_KEY_ID>' --env 'CDP_API_KEY_SECRET=<YOUR_CDP_API_KEY_SECRET>' --env 'CDP_WALLET_SECRET=<YOUR_CDP_WALLET_SECRET>' --env 'DATABROKER_WALLET_KEY=<YOUR_DATABROKER_WALLET_KEY>' databroker -- npx -y @mossforge/databroker-mcpInstall databroker MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"databroker": {
"command": "npx",
"args": [
"-y",
"@mossforge/databroker-mcp"
],
"env": {
"DATABROKER_BASE_URL": "<DATABROKER_BASE_URL>",
"CDP_API_KEY_ID": "<YOUR_CDP_API_KEY_ID>",
"CDP_API_KEY_SECRET": "<YOUR_CDP_API_KEY_SECRET>",
"CDP_WALLET_SECRET": "<YOUR_CDP_WALLET_SECRET>",
"DATABROKER_WALLET_KEY": "<YOUR_DATABROKER_WALLET_KEY>"
}
}
}
}Install databroker MCP in VS Code
.vscode/mcp.json
{
"servers": {
"databroker": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mossforge/databroker-mcp"
],
"env": {
"DATABROKER_BASE_URL": "<DATABROKER_BASE_URL>",
"CDP_API_KEY_ID": "<YOUR_CDP_API_KEY_ID>",
"CDP_API_KEY_SECRET": "<YOUR_CDP_API_KEY_SECRET>",
"CDP_WALLET_SECRET": "<YOUR_CDP_WALLET_SECRET>",
"DATABROKER_WALLET_KEY": "<YOUR_DATABROKER_WALLET_KEY>"
}
}
}
}Install databroker MCP in VS Code CLI
$ code --add-mcp '{"name":"databroker","type":"stdio","command":"npx","args":["-y","@mossforge/databroker-mcp"],"env":{"DATABROKER_BASE_URL":"<DATABROKER_BASE_URL>","CDP_API_KEY_ID":"<YOUR_CDP_API_KEY_ID>","CDP_API_KEY_SECRET":"<YOUR_CDP_API_KEY_SECRET>","CDP_WALLET_SECRET":"<YOUR_CDP_WALLET_SECRET>","DATABROKER_WALLET_KEY":"<YOUR_DATABROKER_WALLET_KEY>"}}'Install databroker MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"databroker": {
"command": "npx",
"args": [
"-y",
"@mossforge/databroker-mcp"
],
"env": {
"DATABROKER_BASE_URL": "<DATABROKER_BASE_URL>",
"CDP_API_KEY_ID": "<YOUR_CDP_API_KEY_ID>",
"CDP_API_KEY_SECRET": "<YOUR_CDP_API_KEY_SECRET>",
"CDP_WALLET_SECRET": "<YOUR_CDP_WALLET_SECRET>",
"DATABROKER_WALLET_KEY": "<YOUR_DATABROKER_WALLET_KEY>"
}
}
}
}Install databroker MCP in Codex
$ codex mcp add databroker --env 'DATABROKER_BASE_URL=<DATABROKER_BASE_URL>' --env 'CDP_API_KEY_ID=<YOUR_CDP_API_KEY_ID>' --env 'CDP_API_KEY_SECRET=<YOUR_CDP_API_KEY_SECRET>' --env 'CDP_WALLET_SECRET=<YOUR_CDP_WALLET_SECRET>' --env 'DATABROKER_WALLET_KEY=<YOUR_DATABROKER_WALLET_KEY>' -- npx -y @mossforge/databroker-mcpInstall databroker MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.databroker] command = "npx" args = ["-y", "@mossforge/databroker-mcp"] [mcp_servers.databroker.env] DATABROKER_BASE_URL = "<DATABROKER_BASE_URL>" CDP_API_KEY_ID = "<YOUR_CDP_API_KEY_ID>" CDP_API_KEY_SECRET = "<YOUR_CDP_API_KEY_SECRET>" CDP_WALLET_SECRET = "<YOUR_CDP_WALLET_SECRET>" DATABROKER_WALLET_KEY = "<YOUR_DATABROKER_WALLET_KEY>"
Install databroker MCP in Gemini CLI
$ gemini mcp add -s user -e 'DATABROKER_BASE_URL=<DATABROKER_BASE_URL>' -e 'CDP_API_KEY_ID=<YOUR_CDP_API_KEY_ID>' -e 'CDP_API_KEY_SECRET=<YOUR_CDP_API_KEY_SECRET>' -e 'CDP_WALLET_SECRET=<YOUR_CDP_WALLET_SECRET>' -e 'DATABROKER_WALLET_KEY=<YOUR_DATABROKER_WALLET_KEY>' databroker npx -- -y @mossforge/databroker-mcpInstall databroker MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"databroker": {
"command": "npx",
"args": [
"-y",
"@mossforge/databroker-mcp"
],
"env": {
"DATABROKER_BASE_URL": "<DATABROKER_BASE_URL>",
"CDP_API_KEY_ID": "<YOUR_CDP_API_KEY_ID>",
"CDP_API_KEY_SECRET": "<YOUR_CDP_API_KEY_SECRET>",
"CDP_WALLET_SECRET": "<YOUR_CDP_WALLET_SECRET>",
"DATABROKER_WALLET_KEY": "<YOUR_DATABROKER_WALLET_KEY>"
}
}
}
}databroker MCP tools 6
Detected from the READMEdatabroker_discoverdatabroker_fetchdatabroker_metadatabroker_healthdatabroker_batch_createdatabroker_batch_status
| databroker_discover | — | |
| databroker_fetch | — | |
| databroker_meta | — | |
| databroker_health | — | |
| databroker_batch_create | — | |
| databroker_batch_status | — |
Configuration
DATABROKER_BASE_URLRequiredBase URL of the DataBroker API, e.g. https://api.databroker.mossforge.dev
CDP_API_KEY_IDSecretCoinbase CDP API key id. Required when DATABROKER_SIGNER=cdp.
CDP_API_KEY_SECRETSecretCoinbase CDP API key secret. Required when DATABROKER_SIGNER=cdp.
CDP_WALLET_SECRETSecretCoinbase CDP wallet secret. Required when DATABROKER_SIGNER=cdp.
DATABROKER_WALLET_KEYSecret0x-prefixed private key for the paying wallet. Required when DATABROKER_SIGNER=raw (the default).
DATABROKER_MAX_USDCPer-call spend cap in USDC. Calls priced above this are declined before payment.
DATABROKER_SIGNERSigner provider: "raw" (default, self-custodied private key) or "cdp" (Coinbase CDP-managed wallet)
| Name | Description | |
|---|---|---|
| DATABROKER_BASE_URL | Base URL of the DataBroker API, e.g. https://api.databroker.mossforge.dev | Required |
| CDP_API_KEY_ID | Coinbase CDP API key id. Required when DATABROKER_SIGNER=cdp. | Secret |
| CDP_API_KEY_SECRET | Coinbase CDP API key secret. Required when DATABROKER_SIGNER=cdp. | Secret |
| CDP_WALLET_SECRET | Coinbase CDP wallet secret. Required when DATABROKER_SIGNER=cdp. | Secret |
| DATABROKER_WALLET_KEY | 0x-prefixed private key for the paying wallet. Required when DATABROKER_SIGNER=raw (the default). | Secret |
| DATABROKER_MAX_USDC | Per-call spend cap in USDC. Calls priced above this are declined before payment. | |
| DATABROKER_SIGNER | Signer provider: "raw" (default, self-custodied private key) or "cdp" (Coinbase CDP-managed wallet) |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablemossforge/databroker is public and reachablegithub.com/mossforge/databroker ↗Pass
- Package names this repository as its source@mossforge/databroker-mcp names mossforge/databroker as sourcenpmjs.com/package/@mossforge/databroker-mcp ↗Pass
- Build provenance (Sigstore attestation)Sigstore attestation for @mossforge/databroker-mcpnpmjs.com/package/@mossforge/databroker-mcp/v/0.5.0#provenan ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-08-30github.com/mossforge/databroker ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from @mossforge/databroker-mcpPass
- No critical advisory in the package or its dependencies198 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model6 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNo tool named like delete, drop or execPass
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubdatabroker-mcp-server
Give any MCP-capable agent (Claude Desktop, Claude Code, Cursor, etc) pay-per-call access to MossForge DataBroker — UK vehicle MOT intelligence, UK-wide reliability analytics — with x402 USDC micropayments on Base mainnet handled automatically. No API keys, no subscription: fund a wallet, ask questions.
Tools
| Tool | Cost | Purpose |
|---|---|---|
databroker_discover |
free | List enabled datasets, their kind, and per-call USDC prices |
databroker_fetch |
free to quote, paid to confirm | Fetch a single datapoint for a dataset + key |
databroker_meta |
free | Staleness/TTL/source info for a datapoint, without paying for it |
databroker_health |
free | API uptime check |
databroker_batch_create |
free to quote, paid to confirm | Fetch up to 100 keys from one on-demand dataset in a single job, one payment total |
databroker_batch_status |
free | Poll a batch job created by databroker_batch_create |
Payments are never automatic. databroker_fetch and databroker_batch_create always quote the price first — nothing is paid until the tool is called again with confirm: true. Every paid call is also capped by DATABROKER_MAX_USDC (default 0.50); a call priced above the cap is declined before anything is paid.
Payment approval is enforced by the server, not by the calling model, on clients that support it. Immediately before any payment, this server sends an MCP elicitation request through the connected client, asking the human directly to approve or decline the exact charge — independent of whatever confirm value the model passed. Claude Code (CLI) supports this as of v2.1.76; other clients (Claude Desktop, Cursor, etc.) may not yet.
If the connected client doesn't advertise elicitation support, the server falls back to the pre-elicitation guarantee — confirm: true from the calling model, still capped by DATABROKER_MAX_USDC — rather than blocking every paid call. Set DATABROKER_REQUIRE_ELICITATION=true to instead hard-block paid calls on clients without elicitation support, if you know your client supports it and want the stricter guarantee. The server logs which mode is active on startup and the first time a non-elicitation client connects.
Setup
-
Create a fresh EOA wallet and fund it with a few USDC on Base mainnet (plus nothing else — no ETH needed; EIP-3009 transfers are gasless for the payer).
-
Add to Claude Desktop (
claude_desktop_config.json):
{
"mcpServers": {
"databroker": {
"command": "npx",
"args": ["-y", "@mossforge/databroker-mcp"],
"env": {
"DATABROKER_BASE_URL": "https://api.databroker.mossforge.dev",
"DATABROKER_WALLET_KEY": "0x...",
"DATABROKER_MAX_USDC": "0.50"
}
}
}
}
claude mcp add --transport stdio \
--env DATABROKER_BASE_URL=https://api.databroker.mossforge.dev \
--env DATABROKER_WALLET_KEY=0x... \
databroker -- npx -y @mossforge/databroker-mcp
- Ask: "Should I buy this 2018 Golf, reg AB18 CDE? Check its MOT history and whether the mileage looks genuine."
Who holds the wallet
Two signer providers are supported, set via DATABROKER_SIGNER:
raw(default) — a private key you hold, read fromDATABROKER_WALLET_KEY. Zero setup beyond a funded wallet, but the key material is only as safe as this process's environment, and the spend cap is enforced by this codebase alone.cdp— pays from a Coinbase CDP-managed wallet. No private key ever touches this process; CDP signs remotely and can enforce spend policies (session caps, allowed tokens) at the custodian layer. Requires a CDP account andCDP_API_KEY_ID/CDP_API_KEY_SECRET/CDP_WALLET_SECRET, plusnpm install @coinbase/cdp-sdk(it's an optional dependency, not installed by default).
Security notes
- Use a dedicated, low-balance wallet. In
rawmode the key never leaves your machine; payments are signed locally via the@x402/*v2 protocol stack (@x402/fetch+@x402/core/client+@x402/evm/exact/client), producing EIP-3009transferWithAuthorizationpayloads. - The per-call cap (
DATABROKER_MAX_USDC) is the blast radius for any single call and is checked before any payment is sent — a call priced above it is declined, not charged. Total exposure is otherwise the wallet balance — keep it small. - Every paid call goes through a quote first:
databroker_fetchanddatabroker_batch_createnever spend money unless called again withconfirm: true. - On top of that, when the connected client advertises MCP elicitation support, every payment also requires a human to explicitly accept a prompt sent by the server itself, naming the exact URL and USDC amount — enforced in code (
confirmWithHumaninlib.ts), not left to the calling model's judgement. On clients without elicitation support this extra check is skipped (seeDATABROKER_REQUIRE_ELICITATIONbelow if you'd rather it fail closed instead).
Env vars
| Var | Required | Default | Notes |
|---|---|---|---|
DATABROKER_BASE_URL |
yes | — | e.g. https://api.databroker.mossforge.dev |
DATABROKER_SIGNER |
no | raw |
raw or cdp — see Who holds the wallet |
DATABROKER_WALLET_KEY |
yes, if SIGNER=raw |
— | 0x-prefixed private key |
CDP_API_KEY_ID |
yes, if SIGNER=cdp |
— | Coinbase CDP API key id |
CDP_API_KEY_SECRET |
yes, if SIGNER=cdp |
— | Coinbase CDP API key secret |
CDP_WALLET_SECRET |
yes, if SIGNER=cdp |
— | Coinbase CDP wallet secret |
DATABROKER_MAX_USDC |
no | 0.50 |
Per-call spend cap, enforced regardless of signer |
DATABROKER_REQUIRE_ELICITATION |
no | false |
If true, block paid calls on clients that don't advertise MCP elicitation support, instead of falling back to confirm: true alone |
databroker MCP questions
How do I add databroker MCP to Claude Code?
Run claude mcp add --env 'DATABROKER_BASE_URL=<DATABROKER_BASE_URL>' --env 'CDP_API_KEY_ID=<YOUR_CDP_API_KEY_ID>' --env 'CDP_API_KEY_SECRET=<YOUR_CDP_API_KEY_SECRET>' --env 'CDP_WALLET_SECRET=<YOUR_CDP_WALLET_SECRET>' --env 'DATABROKER_WALLET_KEY=<YOUR_DATABROKER_WALLET_KEY>' databroker -- npx -y @mossforge/databroker-mcp in your terminal. Add --scope user to make it available in every project.
How do I add databroker MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does databroker MCP provide?
It exposes 6 tools, including databroker_discover, databroker_fetch, databroker_meta, databroker_health, databroker_batch_create.
Is there a limit on how much can be spent per call?
Yes, every paid call is capped by the DATABROKER_MAX_USDC environment variable, which defaults to 0.50 USDC.
Do I need ETH to pay for transactions?
No, you only need to fund your wallet with USDC on Base mainnet because EIP-3009 transfers are gasless for the payer.