Signal Desk
Provides current trending topics from Google Trends (US), including scores, velocity, and headlines, and matches recent pump.fun token names to live Google Trends topics.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Signal Desk
Pay-per-call tools for AI agents, paid in USDC on Base through x402. No account and no API key: the first call answers 402 Payment Required with the price, the agent's wallet signs a transfer for exactly that amount, and the second call gets the result plus a receipt. Settlement happens only after the work succeeded, so a call the service refuses is never charged.
tool | HTTP route | price | what the agent gets |
|
| $0.01 | a public page opened in a real headless Chrome, returned as clean Markdown, a PNG screenshot or a PDF |
|
| $0.01 | up to 10 MB stored at a public link for 1 to 168 hours, free to download |
|
| $0.005 | a URL called 60 seconds to 7 days from now (GET, or POST with a JSON body), plus a free status page |
|
| $0.005 | every pump.fun token created in the last N minutes, with its creator, the creator's 7-day launch count, and the live Google Trends or Polymarket topic its name matches |
|
| $0.01 | what is trending now across Google Trends (US) and Polymarket, merged by topic, strongest first, with score, velocity, a type label and the headlines behind it |
endpoint | URL |
HTTP routes |
|
MCP, all five tools |
|
MCP, the two feeds only |
|
Every route's fields, limits and an example are in its 402 answer and in GET / on the HTTP host. Every refusal (bad input, private address, executable upload) carries the same usage object, free.
Try it before paying. /radar shows the launch feed and trend radar 30 minutes late, free (JSON). For free calls to the live routes, open an issue and ask for a voucher. Send it as an X-Voucher header on any HTTP route, or as a header on the MCP connection: the call's price comes off the voucher instead of a wallet, and a failed call is refunded.
Use it
Use a throwaway wallet holding a few cents of USDC on Base, never a main wallet.
Any HTTP client
import { x402Client } from "@x402/core/client";
import { toClientEvmSigner } from "@x402/evm";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, {
signer: toClientEvmSigner(privateKeyToAccount(process.env.X402_PRIVATE_KEY)),
});
const payingFetch = wrapFetchWithPayment(fetch, client);
const res = await payingFetch("https://x402-paywall.huntercarver24.workers.dev/render", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ url: "https://example.com", format: "markdown" }),
});
console.log(res.status, await res.text());npm install @x402/core @x402/evm @x402/fetch viem, Node 20 or later, saved as an .mjs file.
Claude Code
claude plugin marketplace add huntercarver24/signal-desk
claude plugin install x402-pay@signal-desk
export X402_PRIVATE_KEY=0x...The x402-pay skill teaches Claude the five routes and pays them with scripts/pay.mjs. Claude says the price before the first paid call, and each payment runs as a command you approve.
MCP clients that pay x402
An MCP client needs x402 support to pay; any other client still lists the tools and sees each price in a payment-required result. With @x402/mcp:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
import { x402Client } from "@x402/core/client";
import { toClientEvmSigner } from "@x402/evm";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapMCPClientWithPayment } from "@x402/mcp";
import { privateKeyToAccount } from "viem/accounts";
const mcp = new Client({ name: "my-agent", version: "1.0.0" });
await mcp.connect(
new StreamableHTTPClientTransport(new URL("https://x402-mcp.huntercarver24.workers.dev/feeds/mcp"))
);
const payment = new x402Client();
registerExactEvmScheme(payment, {
signer: toClientEvmSigner(privateKeyToAccount(process.env.X402_PRIVATE_KEY)),
});
const paying = wrapMCPClientWithPayment(mcp, payment);
const result = await paying.callTool("trending_topics", { hours: 6, limit: 10 });
console.log(result.content[0].text);npm install @modelcontextprotocol/sdk @x402/core @x402/evm @x402/mcp viem.
OpenCode
mkdir -p .opencode/plugins && curl -fsSL https://raw.githubusercontent.com/huntercarver24/signal-desk/main/opencode/x402-tools.ts -o .opencode/plugins/x402-tools.tsThen add the dependencies listed in opencode/package.json to .opencode/package.json; OpenCode installs them at startup. The agent gets the five tools.
ElizaOS
eliza/ is an ElizaOS 1.7 plugin for the two feeds. It adds two paid actions, SIGNAL_DESK_TRENDS and SIGNAL_DESK_LAUNCHES, and a free provider, SIGNAL_DESK_RADAR, with the 30-minute-late preview. It pays with SIGNAL_DESK_VOUCHER or with SIGNAL_DESK_PRIVATE_KEY (USDC on Base). SIGNAL_DESK_MAX_USD_PER_CALL caps the price, default $0.01, and is checked before anything is signed. Build and install steps are in eliza/README.md.
Related MCP server: Ausca
House rules
A refused call costs nothing. Neither does a feed that has fallen behind its source: it answers 503 with
retry-afterinstead of charging for stale data.The launch feed and the trend radar are data only. Nothing in them rates, recommends or trades a token. Sports topics and markets are filtered out, by keywords in the title and headlines and by a model check on each topic before it is shown. The free preview also hides vulgar coin names; the paid data is as launched.
No caller has an account, so nothing is stored about you beyond the payment on chain. Hosted files expire at the time you choose.
Status
monitor/check.mjs probes every surface a paying agent touches, for free, every 15 minutes: the paywall's health and configuration, a live 402 with its terms, the trend sources' freshness, the launch feed's lag, and both MCP endpoints. The badge above is its latest result.
The launch feed was down from October 29 to November 1, 2026, when its only data provider cut the project off. It now reads Solana through Shyft's free tier, with public endpoints as fallbacks. If it falls behind again, launch calls refuse for free and this monitor fails.
License
MIT. The services themselves are run by Hunter Carver; this repository holds the clients, the uptime check and these docs.
This server cannot be deployed
Maintenance
Related MCP Connectors
Pay-per-call tools for autonomous agents, settled in USDC on Base via x402.
x402 pay-per-call APIs over MCP, settled in USDC on Base for autonomous agents and developers.
Let an AI agent find and pay for x402 APIs and products in USDC on Base, within owner-set limits.
x402 toolkit for AI agents: paid web, AI, and Base chain tools per call in USDC. Free tools too.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to use pay-per-use web scraping, Base blockchain analytics, and PDF text extraction tools, monetized via x402 USDC micropayments.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to discover, pay for, and invoke x402-priced services such as document OCR, document analysis, media transcription, remote browser sessions, and receive-only email inboxes using USDC on Base, with no API keys and receipt-backed results.38MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to call pay-per-request AI and web tools—including web-to-Markdown reading, PDF extraction, translation, compliance lookups, domain/email/Solana data, and prediction-market intelligence—without accounts or API keys, settling each call in USDC via x402 on Base, Solana, or Arc.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to call 33 pay-per-call tools for onchain data, ECB exchange rates, text utilities, and more, using USDC on Base over x402 with optional prepaid credit or wallet-based payments.3484 npmMIT