Xsignal

io.github.philpof102-svgPublished by GitHub account philpof102-svgv0.2.1Updated Nov 2, 2026

x402 pay-per-call data tools for Base agents. Flagship get_intent ABSTAINS instead of guessing.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingFinance

Overview

AI-generated overview

Pay-per-call x402 data tools for Base tokens: momentum verdicts, market intel, cited social signal, safety preflight and batch screening.

What you can do
  • Get an abstaining momentum verdict for a Base token, with a confidence bar you set
  • Fetch Base token market data from public DEX pools: liquidity, volume, price, pool age, buy/sell flow
  • Retrieve scored, cited real-time X/social signal for a topic or for posts you supply
  • Combine market intel and social signal into a single token brief
  • Run a safety-plus-momentum preflight on one token, or screen a watchlist of up to 10 tokens in one call
When to use it
Useful for agents that need on-demand Base token market, social and safety reads without building their own data pipeline, especially when a signal that can decline to answer is preferred over a forced guess. The batch screen suits watchlist triage.
Requirements
Remote streamable-HTTP endpoint, or a local npm package run with npx (plain Node 18 or newer). A Base wallet address in XSIGNAL_WALLET for the free calls per wallet; beyond that, USDC payment over x402 with a funded Base wallet and an X-PAYMENT header. Optional X_BEARER_TOKEN or XAI_API_KEY for live social data; without it a labelled demo seed is used.
Before you install
Calls beyond the free allowance cost USDC per request (prices vary by tool), so an agent can spend money. The server states it never signs or moves funds and payment is verify-only, but a funded wallet and payment client are still involved. Signals come from public X posts and DEX data and are described as not financial advice, with confidence a mechanical heuristic rather than a calibrated probability; verify before acting.

Installation

In SourceWeft

  1. Open Xsignal 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.philpof102-svg%2Fxsignal/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": {
    "xsignal": {
      "type": "http",
      "url": "https://xsignal-production.up.railway.app/mcp"
    }
  }
}

README

⚡ xsignal

Pay-per-call data ingredients for AI agents on Base, via x402 (USDC). The flagship is the one thing no other x402 signal does: get_intent abstains — it returns "no verdict" (and says so) when it isn't confident enough, instead of always answering and always charging. 3 free calls per wallet to try, then from $0.01. Verify-only: never signs or moves funds.

The tools (flagship first)

Tool / routePriceWhat you get
get_preflight · GET /preflight?addr=0x…$0.05The composed Base preflight: fuses on-chain safety (SAFE/WATCH/AVOID + rug flags, via MainStreet) with momentum into one verdict — GO / CAUTION / AVOID. Safety gates momentum, so it never green-lights a token that can rug.
get_intent · GET /intent?addr=0x…&min_confidence=0.7$0.01An outcome-priced momentum verdict (gaining/fading) only if confidence clears your bar, else a calibrated abstain. Paid answers carry a keyless tamper-evidence receipt.
get_token_brief · GET /brief?addr=0x…$0.05A meal: fuses market intel + cited social signal into a "what is happening with $TOKEN now" brief.
get_signal · GET /signal?q=<topic>$0.01A scored (virality + freshness) and cited real-time X/social signal.
get_token_intel · GET /token?addr=0x…$0.01Base token market data (liquidity/volume/price/age/flow + flags). Best as an input to the brief.
POST /mcp—MCP (streamable-http): tools/list discovers the 5 tools; a tools/call returns an x402 payment pointer.
GET /health · /.well-known/mcp.json · /.well-known/agent-card.json · /skill.mdfreehealth + agent discovery + the installable skill (no data).

Try it free (3 calls per wallet)

Add ?wallet=0xYourAddress to any route for 3 free full results, so you can evaluate quality before paying. After 3, that wallet pays via x402.

bash
curl "https://xsignal-production.up.railway.app/intent?addr=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed&min_confidence=0.5&wallet=0xYourAddr"

Then run the example — a watchlist alerter that surfaces only the tokens confidently moving (and stays quiet on the rest):

bash
WALLET=0xYourAddr node examples/watchlist-alerter.js

Pay with x402 (beyond the free probe)

The first post-probe request returns HTTP 402 with an accepts array (price in USDC, network base, payTo). Pay with x402-fetch/x402-axios and a funded Base wallet, resubmit with the X-PAYMENT header, get the result. /intent is pay-first: you pay, then get a verdict or an honest abstain.

Safety

We never sign or move funds. x402 means we receive USDC to payTo; payment is verify-only via a facilitator. Signals are scored from public X posts + public DEX data — verify before acting; not financial advice. Confidence is a mechanical heuristic, not a calibrated probability or a prediction.

Config (env)

VarPurpose
XSIGNAL_PAYTOaddress that receives USDC (public; no key). Default = the operator address.
XSIGNAL_PRICE_USD / XSIGNAL_BRIEF_PRICE_USD / XSIGNAL_INTENT_PRICE_USDper-call prices (default 0.01 / 0.05 / 0.01)
XSIGNAL_PROBE_FREEfree probe calls per wallet (default 3)
X402_NETWORK / FACILITATOR_URLbase (mainnet CDP, needs CDP_API_KEY_ID/CDP_API_KEY_SECRET) or base-sepolia (keyless x402.org)
X_BEARER_TOKEN or XAI_API_KEYlive X/Grok source for get_signal (token intel + intent are keyless via DexScreener). No key → a labelled DEMO seed.

Run

bash
npm start      # :4520npm test       # full self-test suite (signal · tokenintel · brief · intent · x402 · sources · server)

Zero runtime deps for the core (plain Node >=18); @coinbase/x402 is used only for CDP-facilitator auth on mainnet.

Source: README.md at commit 677cde9

Tools

6

get_intent

FLAGSHIP. An outcome-priced momentum verdict that ABSTAINS below your confidence bar - the only x402 signal that refuses to answer (honestly) when it is not sure. Post {addr, min_confidence 0-1} then pay $0.01, and get a mechanical momentum verdict "gaining" or "fading" IF the signal agreement clears your bar, else a calibrated "abstain". Paid answers carry a keyless tamper-evidence receipt. confidence is a transparent heuristic, NOT a prediction; not financial advice. x402-paid at GET/POST /intent (3 free calls per wallet via ?wallet=0x…). Example: GET /intent?addr=0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed&min_confidence=0.7

Parametersaddrrequiredquestionmin_confidence

get_token_brief

A fused MEAL: one call combines Base token market intel + real-time social signal into a single "what is happening with $TOKEN right now" brief - market flags + top CITED social posts + a plain-language, non-advisory summary. Saves an agent the fetch-and-fuse work. x402-paid at GET/POST /brief ($0.05; 3 free per wallet via ?wallet=0x…). Example: GET /brief?addr=0x4ed4…&q=degen

Parametersaddrrequiredquery

get_signal

Real-time X/social signal for a topic: scored (virality + freshness) and CITED (source urls), deduped and ranked. Input: query (topic) OR candidates[] (bring your own posts to score). x402-paid at GET/POST /signal ($0.01; 3 free per wallet via ?wallet=0x…). Example: GET /signal?q=base+memecoin

Parameterslimitquerytermssourcecandidates

get_token_intel

Base token MARKET data (liquidity, 24h volume, price + change, pool age, buy/sell flow, mechanical flags) from public DEX pools. Market data, NOT a trust/safety rating. Best used as an input to get_token_brief. x402-paid at GET/POST /token ($0.01; 3 free per wallet via ?wallet=0x…).

Parametersaddrrequired

get_preflight

The Base PREFLIGHT: one call fuses MainStreet on-chain SAFETY (SAFE/WATCH/AVOID + rug flags) with xsignal MOMENTUM (the abstaining read) into a single recommendation (GO / CAUTION / AVOID / AVOID_ENTRY / NEUTRAL / UNVERIFIED) answering "is this token safe to touch AND moving?". Safety GATES momentum - never green-lights a token that can rug. x402-paid at GET/POST /preflight ($0.05; 3 free per wallet via ?wallet=0x…). Input: addr (0x Base token). Not financial advice.

Parametersaddrrequired

get_screen

BATCH watchlist screen: run the preflight (safety ⊕ momentum) over up to 10 Base tokens in one call → which are GO (safe + moving), plus a per-token verdict + a summary count. For an agent screening a watchlist. x402-paid at GET/POST /screen ($0.10; 3 free per wallet via ?wallet=0x…). Input: addrs (array or comma-separated 0x addresses). Not financial advice.

Parametersaddrsrequired

Version history

1
  1. v0.2.1LatestSep 16, 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