SingIt MCP

A remote Streamable HTTP server with JSON responses only. No local server installation is needed. Endpoint: https://app.singitai.app/mcp. Official MCP Registry name: app.singitai/singit. Server: singit, “SingIt x402”, version 0.1.3; protocol 2025-06-18.

Get a key

Open SingIt, then Settings → API keys. Free tools and tools/list work without a key. Export SINGIT_API_KEY in the environment that launches your client. Paid tools are paid per call within the key’s caps; get_limits shows what is spent and left today. See spending limits and developer setup.

Install

Claude Code

Verification: Command checked against Claude Code docs, 31 October 2026; not run here.

claude mcp add --transport http singit https://app.singitai.app/mcp --header "Authorization: Bearer $SINGIT_API_KEY"

Verification: Documented client checks; not run here.

claude mcp list
claude mcp get singit
# In Claude Code: /mcp

For a shared project, use this .mcp.json entry. Claude Code requires type: http for a URL entry.

Verification: From the Claude Code docs, 31 October 2026 (it expands ${VAR} in headers); not run here.

{
  "mcpServers": {
    "singit": {
      "type": "http",
      "url": "https://app.singitai.app/mcp",
      "headers": {
        "Authorization": "Bearer ${SINGIT_API_KEY}"
      }
    }
  }
}

Cursor

Edit ~/.cursor/mcp.json, then restart Cursor. The deeplink adds a keyless server; configure the header for paid tools.

Verification: Matches the repository installation guide; not run on Cursor.

{
  "mcpServers": {
    "singit": {
      "url": "https://app.singitai.app/mcp",
      "headers": {
        "Authorization": "Bearer ${env:SINGIT_API_KEY}"
      }
    }
  }
}

Add to Cursor

Codex

Verification: Run on 31 October 2026 with codex-cli 0.163.0: the flags match --help, and the command was run in a temporary CODEX_HOME.

codex mcp add singit --url https://app.singitai.app/mcp --bearer-token-env-var SINGIT_API_KEY

Verification: Exact config.toml written by that run. codex mcp list showed enabled with Auth “Bearer token”.

[mcp_servers.singit]
url = "https://app.singitai.app/mcp"
bearer_token_env_var = "SINGIT_API_KEY"

Windsurf / Devin Desktop

Windsurf was renamed Devin Desktop in June 2026. Use mcp_config.json: macOS/Linux ~/.config/devin/mcp_config.json; Windows %APPDATA%\devin\mcp_config.json. Open the config from the client to locate the active file. Remote entries accept serverUrl (or url), headers and ${env:NAME} interpolation.

Verification: From the vendor docs; not run on a Windsurf install.

{"mcpServers":{"singit":{"serverUrl":"https://app.singitai.app/mcp","headers":{"Authorization":"Bearer ${env:SINGIT_API_KEY}"}}}}

Generic HTTP client

Verification: Copied from llms-install.md; check your client’s variable interpolation support.

{
  "mcpServers": {
    "singit": {
      "url": "https://app.singitai.app/mcp",
      "headers": { "Authorization": "Bearer ${env:SINGIT_API_KEY}" }
    }
  }
}

Verify

Verification: run against the live server on 31 October 2026, no key.

curl -sS https://app.singitai.app/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"singit-docs-check","version":"1.0"}}}'

Verification: run against the live server on 31 October 2026, no key.

curl -sS https://app.singitai.app/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

Expected: initialize returns serverInfo.version 0.1.3; tools/list returns 16 tools. Both requests are free and need no key. A missing, empty or unexpanded-variable header behaves like no key. A wrong or revoked key gets HTTP 401 (verified 31 October 2026 with an invalid key).

Tools

Snapshot fetched 31 October 2026. Read-only and idempotent values below are server annotation hints. Read-only paid calls still charge; repeating a non-idempotent call charges again. Account-read tools require a key but no paid-tool scope.

16 tools from the keyless tools/list snapshot. Paid tools are paid per call within the key's caps; get_limits shows spent and remaining today.
ToolWhat it doesParametersNeeds a key?ScopeNetworkAnnotation hints
get_priceCurrent price of a major cryptocurrency, gold or silver (Chainlink on Base), or an exchange rate between two currencies.kind: string, required
symbol: string, optional
base: string, optional
quote: string, optional
NoFree; noneNo paymentreadOnlyHint: true; idempotentHint: true
list_price_symbolsEvery crypto, metal and currency symbol get_price supports.NoneNoFree; noneNo paymentreadOnlyHint: true; idempotentHint: true
list_modelsThe AI models (chat, images or audio) available through SingIt, with their prices.kind: string, optionalNoFree; noneNo paymentreadOnlyHint: true; idempotentHint: true
get_balanceYour SingIt API balance: available and held USDC, auto top-up and pending top-ups.NoneYes; free, read-onlyAccount read; no paid-tool scopeAccount datareadOnlyHint: true; idempotentHint: true
get_limitsWhat your API key may still spend: its daily and per-request caps, spent and remaining today, scopes and expiry, plus your account's balance and, on Base, your allowance limiter (caps, left today, approved from your wallet, paused = emergency stop, expired).NoneYes; free, read-onlyAccount read; no paid-tool scopeAccount datareadOnlyHint: true; idempotentHint: true
get_receiptsYour recent receipts, newest first: for each, its id, time, model, USDC charged, tokens and the upstream reference (kind charge, this key only), or the account's top-ups and refunds with their transaction and network.limit: integer, optional
kind: string, optional
before: integer, optional
Yes; free, read-onlyAccount read; no paid-tool scopeAccount datareadOnlyHint: true; idempotentHint: true
web_searchSearches the web through Exa and returns titles, URLs and snippets of matching pages.query: string, required
numResults: integer, optional
type: string, optional
Yes; paidsearchUSDC on Base or SolanareadOnlyHint: true; idempotentHint: false
read_pageThe readable text of one web page (up to 8000 characters), through Exa.url: string, requiredYes; paidsearchUSDC on Base or SolanareadOnlyHint: true; idempotentHint: false
get_weatherA sample weather forecast from GoPlausible's x402 demo service on Algorand.NoneYes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false
get_singit_risk_checkSingIt's risk check on Bankr x402 Cloud, run on a fixed sample payment request (no input).NoneYes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false
get_x_profilePublic profile data for an X (Twitter) account by username, from twit.sh's x402 API.username: string, requiredYes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false
get_crypto_newsLatest crypto market headlines with sentiment, from Otto AI.NoneYes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false
get_hyperliquid_marketOne Hyperliquid perpetual market (e.g. BTC): price, funding, open interest, max leverage and size rules, from Otto AI.asset: string, requiredYes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false
get_funding_ratesFunding rates for one symbol across exchanges, with open interest, long/short ratio, large positions and liquidations, from Otto AI.symbol: string, requiredYes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false
resolve_ensTurns an ENS name (e.g. vitalik.eth) into its address, or an address into its primary ENS name.input: string, required
network: string, optional
Yes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false
get_token_priceUSD price of a major token by symbol from a paid x402 price API.symbol: string, requiredYes; paidtoolsUSDC on Base only for nowreadOnlyHint: true; idempotentHint: false

Troubleshooting

SymptomCauseFix
HTTP 401Bad or revoked key.Create a valid key and replace the header.
Paid tool asks for a key after configurationThe header contains a literal ${env:...}, or the variable was not exported to the launching process.Export SINGIT_API_KEY in the client’s launch environment; check its interpolation syntax and restart.
Scope missingThe key lacks search for web_search/read_page, or tools for market data.Create a key with the needed scope; older keys may lack tools.
Daily or per-request limit reachedThe call exceeds the key’s caps.Inspect get_limits for remaining spend and caps. The wallet signs a key’s limits; adjust them through the app.
Solana account refused by a market toolMarket-data tools are Base-only for now.Use a Base account for these tools. web_search and read_page support Base or Solana.
SSE/stdio-only client cannot connectThe server uses Streamable HTTP with JSON responses only.Use a client with remote HTTP support.
Tool list empty or cached after a config changeClient configuration or discovery needs refreshing.Restart the client after editing; in Claude Code use /mcp to reconnect.
Claude Code reports a URL without a typeThe shared .mcp.json entry lacks type.Set "type": "http" in the singit entry.