Signal Desk paid tools

io.github.huntercarver24Published by GitHub account huntercarver24v1.1.2Updated Nov 1, 2026

x402-paid tools: render pages, host files, delayed callbacks, pump.fun launch feed, trend radar

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingFiles & StorageFinance

Overview

AI-generated overview

Pay-per-call remote MCP server that renders web pages, hosts files, schedules delayed callbacks, and returns pump.fun launch and trending-topic feeds, paid in…

What you can do
  • Render a public page in a headless browser and get clean Markdown, a PNG screenshot or a PDF
  • Upload a file up to 10 MB and get a public download link valid for 1 to 168 hours
  • Schedule a delayed HTTP callback to a public URL, with optional JSON body and headers, 60 seconds to 7 days out
  • List recent pump.fun token launches with creator wallet and matched trend topics
  • List topics trending across Google Trends and Polymarket, merged and ranked with score and velocity
When to use it
Useful when an agent needs a page rendered as Markdown, screenshot or PDF, a temporary public file link, a delayed webhook, or a quick read on token launches and trending topics, and can pay a few cents per call in USDC without an account.
Requirements
Remote streamable HTTP endpoint; no account or API key. Payment needs an x402-capable client with a Base wallet holding USDC, signing a transfer per call (for example a private key supplied via X402_PRIVATE_KEY in the documented setups). Node 20 or later for the JavaScript client examples. The launch feed is currently refusing calls with a free 503.
Before you install
Every call spends real USDC on Base, so use a throwaway wallet with a few cents rather than a main wallet; the client signs a transfer for the quoted terms. Uploaded files become publicly downloadable until they expire, and callbacks send requests to URLs you supply. The launch and trend feeds are data only and do not rate or recommend tokens. No account exists, so payment is on chain.

Installation

In SourceWeft

  1. Open Signal Desk paid tools in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.huntercarver24%2Fsignal-desk/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "signal-desk-paid-tools": {
      "type": "http",
      "url": "https://x402-mcp.huntercarver24.workers.dev/mcp"
    }
  }
}

README

Signal Desk

[monitor]

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.

toolHTTP routepricewhat the agent gets
render_pagePOST /render$0.01a public page opened in a real headless Chrome, returned as clean Markdown, a PNG screenshot or a PDF
host_filePOST /files$0.01up to 10 MB stored at a public link for 1 to 168 hours, free to download
schedule_callbackPOST /later$0.005a URL called 60 seconds to 7 days from now (GET, or POST with a JSON body), plus a free status page
recent_launchesPOST /launches$0.005every 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
trending_topicsPOST /trends$0.01what 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
endpointURL
HTTP routeshttps://x402-paywall.huntercarver24.workers.dev
MCP, all five toolshttps://x402-mcp.huntercarver24.workers.dev/mcp (registry: io.github.huntercarver24/signal-desk)
MCP, the two feeds onlyhttps://x402-mcp.huntercarver24.workers.dev/feeds/mcp (registry: io.github.huntercarver24/pumpfun-trends)

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.

Use it

Use a throwaway wallet holding a few cents of USDC on Base, never a main wallet.

Any HTTP client

js
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

bash
claude plugin marketplace add huntercarver24/signal-deskclaude plugin install x402-pay@signal-deskexport 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:

js
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

bash
mkdir -p .opencode/plugins && curl -fsSL https://raw.githubusercontent.com/huntercarver24/signal-desk/main/opencode/x402-tools.ts -o .opencode/plugins/x402-tools.ts

Then add the dependencies listed in opencode/package.json to .opencode/package.json; OpenCode installs them at startup. The agent gets the five tools.

House rules

  • A refused call costs nothing. Neither does a feed that has fallen behind its source: it answers 503 with retry-after instead 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 and by a model check on each topic before it is shown.
  • 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.

Known issue: the launch feed's Solana data provider has blocked the project since October 29, 2026. Until that clears, POST /launches and recent_launches refuse with a free 503; the other four tools are unaffected.

License

MIT. The services themselves are run by Hunter Carver; this repository holds the clients, the uptime check and these docs.

Source: README.md at commit 06943b6

Tools

5

render_page

Render a web page

Renders a public web page in a real headless browser (JavaScript runs, redirects are followed) and returns it as clean markdown, a PNG screenshot or a PDF. One call, one payment, no account. A render that fails is not charged. Price: $0.01 per call in USDC (x402).

ParametersurlrequiredwidthformatheightfullPageselectorpdfFormattimeoutMswaitUntilwaitForSelector

host_file

Host a file

Hosts a file: upload up to 10 MB as base64 with its content type and get back a public download URL that serves the bytes with that content type for 1 to 168 hours (default 24). Downloads are free, readable at once where uploaded and everywhere within about a minute. Executables are refused; HTML and SVG are served as attachments. A failed upload is not charged. Price: $0.01 per call in USDC (x402).

ParametersdatarequiredfilenamettlHourscontentTyperequired

schedule_callback

Schedule a callback

Schedules a delayed HTTP callback: give a public URL, an optional JSON body, optional headers and a delay of 60 seconds to 7 days (or an absolute time), and the URL is called at that time (POST when a body was given, otherwise GET), with one retry and a 10-second timeout. The answer carries a free status URL that reports whether it fired and what the callee answered. A request that is refused is not charged. Price: $0.005 per call in USDC (x402).

ParametersaturlrequiredbodyheadersdelaySeconds

recent_launches

Recent pump.fun launches, trend-matched

Lists pump.fun token launches from the last N minutes (decoded from Solana mainnet within about a minute), each with its creator wallet, that wallet's seven-day launch count, and, when the coin's name matches a topic currently trending on Google Trends or moving on Polymarket, the matched trend with its source and score. Launch data only; it does not rate, recommend or trade anything. Price: $0.005 per call in USDC (x402).

ParameterslimitcreatorminutestrendOnly

Version history

2
  1. v1.1.2LatestNov 1, 2026
  2. v1.1.1Oct 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts