x402 ad recommendations, intent analytics, and machine-commerce demand reports.
Install one middleware. Monetize unused 402 responses with recommendations, discovery, and machine commerce analytics.
This is the MCP side of that network: what autonomous agents probe, want, and abandon across the x402 ecosystem — as tools for your agent.
Wraps the ForgeMesh x402 Ads & Intent Network. Paid tools settle per call in USDC on Base mainnet over the x402 protocol — no account, no API key; your wallet is the login. Publishers get reports on their own services free.
{
"mcpServers": {
"intent": {
"command": "npx",
"args": ["-y", "@forgemeshlabs/x402-ads-mcp"],
"env": {
"WALLET_PRIVATE_KEY": "0x... (optional — enables paid analytics)",
"X402_ADS_PUBLISHER_KEY": "pub_... (optional — free reports on your own services)"
}
}
}
}
Both env vars are optional. With neither set, free tools work fully and paid tools return the x402 payment challenge (price, network, payTo) instead of settling — useful for inspection before spending anything.
This package doubles as the signup CLI for API operators (no MCP client needed):
# read the terms first: https://ads.forgemesh.io/terms
WALLET_PRIVATE_KEY=0xYOUR_WALLET npx -y @forgemeshlabs/x402-ads-mcp register \
--url https://api.your-service.com --accept-terms
One $0.10 USDC payment on Base; the paying wallet becomes your identity and your publisher key is printed once. Invalid requests are rejected before payment — you can't pay for a doomed registration.
| Tool | Price | What it returns |
|---|---|---|
get_network_counters | free | Live network totals: 402s observed, agent-class requests, recommendations served |
preview_recommendations | free | The exact recommendations block the middleware injects into a 402 |
get_terms | free | Canonical terms + complete data-collection disclosure |
get_network_stats | $0.005 | Network totals + monitor/indexer/agent classification split |
get_intent_trends | $0.01 | Top endpoints & categories autonomous agents request |
get_category_demand | $0.02 | Demand depth for one category: volume, buyer share, price points |
get_intent_report | $0.05 / free* | Why-agents-didn't-buy funnel for one service |
* get_intent_report is free with X402_ADS_PUBLISHER_KEY for services you contribute events to — the data co-op rule: your own data is free, forever.
| Variable | Required | Purpose |
|---|---|---|
WALLET_PRIVATE_KEY | no | Base mainnet wallet holding USDC; enables automatic settlement of paid tools |
X402_ADS_PUBLISHER_KEY | no | Publisher key from ads.forgemesh.io; free lane for your own reports |
X402_ADS_BASE_URL | no | Override the network base URL (default https://ads.forgemesh.io) |
BASE_RPC_URL | no | Override the Base RPC (default https://mainnet.base.org) |
Use a dedicated hot wallet holding only small working balances. The key never leaves your machine — payments are signed locally (EIP-3009) and settle on-chain.
Ready-made configs live in examples/: a Claude Desktop mcpServers block and a commented env-var template.
npm test # smoke: MCP boots over stdio and lists its 7 tools
npm run test:free # free tools against the live network
npm run test:challenge # every paid tool returns an x402 challenge — no wallet, nothing can spend
npm run test:all # all of the above
No test settles a payment. The challenge test deletes the payment env vars before loading, so it cannot move funds even if your shell has a wallet configured.
We measure machine commerce, not API content — publishers running the @forgemeshlabs/x402-ads middleware contribute anonymized 402 probe metadata; this MCP sells the aggregate demand signal back to agents and builders.
Full disclosure of what publishers send (and never send): https://ads.forgemesh.io/terms
MIT © ForgeMesh
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @forgemeshlabs/x402-ads-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-forgemeshlabs-x402-ads-mcp": {
"command": "npx",
"args": [
"-y",
"@forgemeshlabs/x402-ads-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@forgemeshlabs/x402-ads-mcpnpmio.github.forgemeshlabs/x402-ads-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.