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: /mcpFor 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}"
}
}
}
}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_KEYVerification: 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.
| Tool | What it does | Parameters | Needs a key? | Scope | Network | Annotation hints |
|---|---|---|---|---|---|---|
get_price | Current price of a major cryptocurrency, gold or silver (Chainlink on Base), or an exchange rate between two currencies. | kind: string, requiredsymbol: string, optionalbase: string, optionalquote: string, optional | No | Free; none | No payment | readOnlyHint: true; idempotentHint: true |
list_price_symbols | Every crypto, metal and currency symbol get_price supports. | None | No | Free; none | No payment | readOnlyHint: true; idempotentHint: true |
list_models | The AI models (chat, images or audio) available through SingIt, with their prices. | kind: string, optional | No | Free; none | No payment | readOnlyHint: true; idempotentHint: true |
get_balance | Your SingIt API balance: available and held USDC, auto top-up and pending top-ups. | None | Yes; free, read-only | Account read; no paid-tool scope | Account data | readOnlyHint: true; idempotentHint: true |
get_limits | What 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). | None | Yes; free, read-only | Account read; no paid-tool scope | Account data | readOnlyHint: true; idempotentHint: true |
get_receipts | Your 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, optionalkind: string, optionalbefore: integer, optional | Yes; free, read-only | Account read; no paid-tool scope | Account data | readOnlyHint: true; idempotentHint: true |
web_search | Searches the web through Exa and returns titles, URLs and snippets of matching pages. | query: string, requirednumResults: integer, optionaltype: string, optional | Yes; paid | search | USDC on Base or Solana | readOnlyHint: true; idempotentHint: false |
read_page | The readable text of one web page (up to 8000 characters), through Exa. | url: string, required | Yes; paid | search | USDC on Base or Solana | readOnlyHint: true; idempotentHint: false |
get_weather | A sample weather forecast from GoPlausible's x402 demo service on Algorand. | None | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
get_singit_risk_check | SingIt's risk check on Bankr x402 Cloud, run on a fixed sample payment request (no input). | None | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
get_x_profile | Public profile data for an X (Twitter) account by username, from twit.sh's x402 API. | username: string, required | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
get_crypto_news | Latest crypto market headlines with sentiment, from Otto AI. | None | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
get_hyperliquid_market | One Hyperliquid perpetual market (e.g. BTC): price, funding, open interest, max leverage and size rules, from Otto AI. | asset: string, required | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
get_funding_rates | Funding rates for one symbol across exchanges, with open interest, long/short ratio, large positions and liquidations, from Otto AI. | symbol: string, required | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
resolve_ens | Turns an ENS name (e.g. vitalik.eth) into its address, or an address into its primary ENS name. | input: string, requirednetwork: string, optional | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
get_token_price | USD price of a major token by symbol from a paid x402 price API. | symbol: string, required | Yes; paid | tools | USDC on Base only for now | readOnlyHint: true; idempotentHint: false |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| HTTP 401 | Bad or revoked key. | Create a valid key and replace the header. |
| Paid tool asks for a key after configuration | The 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 missing | The 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 reached | The 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 tool | Market-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 connect | The server uses Streamable HTTP with JSON responses only. | Use a client with remote HTTP support. |
| Tool list empty or cached after a config change | Client configuration or discovery needs refreshing. | Restart the client after editing; in Claude Code use /mcp to reconnect. |
| Claude Code reports a URL without a type | The shared .mcp.json entry lacks type. | Set "type": "http" in the singit entry. |