Connect · Other tools
Cursor, Claude Desktop, and other tools
SignalPilot is a standard MCP server, so any tool that can reach an MCP endpoint over HTTP can use it. Every config on this page uses the same address and the same key.
Create the key once under Settings → API Keys in SignalPilot. It starts with sp_ and is shown only when created. Settings → MCP Connect can generate these configs for you with the right values filled in.
- Endpoint
- https://gateway.signalpilot.ai/mcp
- Header
- x-api-key: sp_your_key_hereBearer tokens work too: Authorization: Bearer sp_…
Using ChatGPT, Codex, or the OpenAI Agents SDK? Those have their own page: Use SignalPilot with ChatGPT and OpenAI.
Cursor
Add this to .cursor/mcp.json in your project root, or to ~/.cursor/mcp.json to make it available in every project. Cursor picks it up without a restart; open Settings → MCP to confirm the server shows as connected.
{"mcpServers": {"signalpilot": {"url": "https://gateway.signalpilot.ai/mcp","headers": {"x-api-key": "sp_your_key_here"}}}}
Claude Desktop
The simplest route is the Connectors screen, which needs no config file at all: follow Use SignalPilot in Claude. The same steps work in the desktop app and in the browser.
If you manage claude_desktop_config.json by hand (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), the file only launches local commands, so a small bridge called mcp-remote forwards to the cloud endpoint:
{"mcpServers": {"signalpilot": {"command": "npx","args": ["-y","mcp-remote","https://gateway.signalpilot.ai/mcp","--header","x-api-key:${SP_API_KEY}"],"env": {"SP_API_KEY": "sp_your_key_here"}}}}
Restart Claude Desktop after saving. The key is passed through an environment variable because the desktop app splits arguments on spaces.
Windsurf
Add this to ~/.codeium/windsurf/mcp_config.json, or open Cascade → MCP servers → Configure to edit the same file from the app. Windsurf uses serverUrl rather than url for remote servers.
{"mcpServers": {"signalpilot": {"serverUrl": "https://gateway.signalpilot.ai/mcp","headers": {"x-api-key": "sp_your_key_here"}}}}
To keep the key out of the file, Windsurf can read it from an environment variable: "x-api-key": "${env:SP_API_KEY}".
Any other MCP client
Anything that implements the MCP streamable HTTP transport can connect. Most tools use a config shaped like this, sometimes with "type": "http" added:
{"mcpServers": {"signalpilot": {"type": "http","url": "https://gateway.signalpilot.ai/mcp","headers": {"x-api-key": "sp_your_key_here"}}}}
If your tool asks for a bearer token instead of a named header, use Authorization: Bearer sp_your_key_here. Both formats reach the same key.
Self-hosted gateway
If you run SignalPilot yourself, swap the endpoint for your own gateway, typically http://localhost:3300/mcp. A fresh self-hosted gateway accepts requests without a key until the first API key is created; after that, add the same x-api-key header.
{"mcpServers": {"signalpilot": {"type": "http","url": "http://localhost:3300/mcp"}}}
If something does not work
| What you see | What to do |
|---|---|
| The server never shows as connected | Check the address is exactly https://gateway.signalpilot.ai/mcp with no trailing slash, then restart the tool. |
| "Authentication required" or "Unauthorized" | The header name must be x-api-key and the value must include the sp_ prefix. Create a new key if you are unsure the old one is valid. |
| The tool lists servers but no tools | Some tools cache the tool list. Turn the server off and on again in the tool's MCP settings, or restart. |
| Queries run but the numbers look wrong | Add the missing definition to the knowledge base so every client gets the same answer. |
Next
- API keys and permissions for scopes, rotation, and rate limits.
- Connect a database if the workspace has none yet.
- Use SignalPilot in Claude and Claude Code if your team uses those too.