Back to Browse

Nightshift X402 MCP Server

Developer ToolsLow Risk8.3MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Paid x402 pre-checks for agents: phishing links, Base tokens, EIP-712 permits, calldata, DNS.

About

Paid x402 pre-checks for agents: phishing links, Base tokens, EIP-712 permits, calldata, DNS.

Remote endpoints: streamable-http: https://nightshift-x402.nightshift-labs.workers.dev/mcp

Security Report

8.3
Low Risk8.3Low Risk

This appears to be a legitimate pay-per-call x402 API and MCP server for on-chain and web-safety checks, with no hardcoded secrets, shell execution, or data-exfiltration patterns in the visible code. The main concerns are a DNS-rebinding gap in the SSRF guard used by the web extraction and link-check tools, and user-supplied domains and addresses being sent to third-party lookup services. The source is truncated, so the remainder of lib.mjs and the other modules could not be reviewed.

4 files analyzed · 5 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

Nightshift x402 API: paid pre-checks for AI agents (USDC on Base)

Pay-per-call HTTP API and remote MCP server for agents. No account or API key: each call is paid with an x402 micropayment ($0.003–$0.01 in USDC on Base). Run by Nightshift Labs, an autonomous AI-agent-run business (the code and docs were written by an AI agent).

  • Base URL: https://nightshift-x402.nightshift-labs.workers.dev (free index at /, /openapi.json, /.well-known/x402, /llms.txt)
  • Remote MCP server (streamable HTTP): https://nightshift-x402.nightshift-labs.workers.dev/mcp — tools are paid per call via x402 (@x402/mcp)
  • Free samples: /samples shows real example responses for every endpoint

Endpoints

RoutePriceWhat it does
GET /v1/base/token-check$0.01Base token safety pre-check: name/symbol/decimals/supply, owner and renounce status, proxy implementation, privileged functions found in bytecode (mint, blackli
GET /v1/base/token-price$0.005Live USD price of any ERC-20 token on Base from on-chain DEX quotes (Uniswap v3 0.05/0.3/1% pools and Aerodrome, against USDC and WETH; WETH converted with Chai
GET /v1/base/balance$0.005Base wallet balances: native ETH and USDC for any address, with the block number they were read at.
GET /v1/base/tx$0.005Decode a Base transaction: status, block time, from/to, ETH value, fee, method selector and every ERC-20 transfer with symbol and human amount
GET /v1/domain/email-check$0.005Domain DNS and email-security check: A/AAAA, NS, MX (incl
GET /v1/evm/decode-calldata$0.005Decode EVM transaction calldata before signing: finds the function signature (signature DB, verified by re-encoding to reject selector collisions), decodes all
POST /v1/evm/typed-data-check$0.01Check an EIP-712 signature request BEFORE signing (the JSON passed to eth_signTypedData_v4): detects ERC-2612 Permit, DAI permit, Uniswap Permit2 (allowance + t
GET /v1/base/gas$0.005Base gas snapshot: gas price, base fee, priority fee, 10-block base-fee trend, ETH/USD (Chainlink) and estimated USD cost of an ETH transfer, ERC-20 transfer, s
GET /v1/ens/resolve$0.005Resolve ENS and Basenames (name.eth, name.base.eth): name → address, or address → primary name with forward verification, plus text records (avatar, description
GET /v1/domain/whois$0.005Domain registration lookup (RDAP, the official WHOIS successor): registration date and age in days, expiry, registrar and its abuse email, EPP status, nameserve
GET /v1/domain/dns$0.003DNS lookup in one call: A, AAAA, CNAME, MX, TXT, NS and CAA records with TTLs (or just the types you ask for), NXDOMAIN status, DNSSEC validation, plus parsed h
GET /v1/web/security-headers$0.005Website security-headers audit: follows redirects (SSRF-guarded) and grades the final page A–F on HSTS, Content-Security-Policy (script-src unsafe-inline/eval/w
GET /v1/base/portfolio$0.01Base wallet portfolio: ETH plus 12 major Base tokens (USDC, USDbC, DAI, EURC, WETH, cbETH, wstETH, cbBTC, AERO, DEGEN, VIRTUAL, BRETT) with non-zero balances, U
GET /v1/x402/preflight$0.005x402 seller preflight: check a paid endpoint BEFORE paying it
GET /v1/wallet/screen$0.005Wallet / counterparty screen before you send funds or accept a payer: OFAC SDN sanctioned-address check (EVM list, refreshed from the 0xB10C OFAC dataset), addr
GET /v1/web/brand$0.01Brand kit from a website: site name, logo candidates (JSON-LD logo, header/home-link image, inline SVG logo, apple-touch-icon/favicons, og:image), theme-color,
GET /v1/web/link-check$0.01Link / URL phishing pre-check before an agent opens, clicks or forwards a link: brand look-alikes (typosquats, homoglyphs, brand in subdomain), punycode and mix
GET /v1/web/extract$0.005Fetch any public web page and return clean Markdown of the main content plus title, meta description, word count and absolute links

Use it

Any x402 client works. TypeScript with the official SDK:

import { x402Client, x402HTTPClient } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.AGENT_KEY) });
const http = new x402HTTPClient(client);

const url = "https://nightshift-x402.nightshift-labs.workers.dev/v1/base/gas";
const r1 = await fetch(url);                                   // 402 + payment requirements
const req = http.getPaymentRequiredResponse(n => r1.headers.get(n), await r1.json());
const headers = http.encodePaymentSignatureHeader(await http.createPaymentPayload(req));
console.log(await (await fetch(url, { headers })).json());       // paid response

The payer only needs USDC on Base (EIP-3009 authorization; the facilitator pays gas).

MCP clients: add the remote server URL above. It is listed in the official MCP Registry as dev.workers.nightshift-labs.nightshift-x402/agent-safety (see mcp-registry/server.json).

Self-host

npm ci
PAY_TO=0xYourAddress PORT=8402 node server.mjs          # Node (PayAI facilitator by default)
# or Cloudflare Workers: wrangler secret put PAY_TO ; npx wrangler deploy

Optional: CDP_API_KEY_ID / CDP_API_KEY_SECRET (Coinbase CDP facilitator), BASE_RPC_URL (keyed RPC; free public RPCs are used as fallback). Local testing without payments works only on testnet: NETWORK=eip155:84532 TEST_NO_PAY=1.

Code layout: app.mjs (Hono app + route table + x402 middleware), lib.mjs (chain/DNS/web logic, SSRF guard), mcp.mjs (MCP server), preflight.mjs, wallet.mjs, brand.mjs, server.mjs (Node), worker.mjs (Workers).

Limits

Heuristic checks (token risk, phishing, wallet screen) reduce risk but are not guarantees; responses state what was checked. Licence: MIT.

Reviews

No reviews yet

Be the first to review this server!