Cursor, VS Code and the Signl CLI authenticate with an API key rather than OAuth. Generate a key in the dashboard, add it as an Authorization: Bearer header in the client's MCP config, and reload. The key is shown exactly once, so copy it before you close the dialog.
Generate a key
- In your dashboard, open API Key and generate one. It begins with
sk_signl_. - Copy it immediately. Keys are stored only as a SHA-256 hash, so nobody, including us, can show it to you again.
- Generate one key per client. Revoking a shared key disconnects everything at once; a per-client key keeps revocation surgical.
Treat it like a password. Anyone holding it can spend your credits.
Cursor
Create .cursor/mcp.json in your project, or edit the global one at ~/.cursor/mcp.json via Settings, then MCP:
{
"mcpServers": {
"signl": {
"url": "YOUR_MCP_URL",
"headers": {
"Authorization": "Bearer sk_signl_YOUR_KEY"
}
}
}
}
Replace YOUR_MCP_URL with the server URL from the Connect page of your dashboard. Reload Cursor, then enable the server under Settings, MCP if prompted.
The project-level file is the convenient option and the one most likely to end up committed. If you use it, put the key in an environment variable or add the file to .gitignore.
VS Code
Open the Command Palette and run MCP: Add Server, or create .vscode/mcp.json directly:
{
"servers": {
"signl": {
"type": "http",
"url": "YOUR_MCP_URL",
"headers": {
"Authorization": "Bearer sk_signl_YOUR_KEY"
}
}
}
}
Click Start above the server entry, then enable Signl's tools in Copilot Chat's agent mode. Note the key is servers, not mcpServers, and the entry needs "type": "http". Both differ from Cursor's shape and copying one into the other is the most common mistake here.
The CLI
signl login sk_signl_YOUR_KEY
The CLI stores the key locally and uses it for every subsequent command.
Any other client
Signl speaks Streamable HTTP MCP at a single POST endpoint. Any client that can send a bearer token will work:
- URL: the server URL from your dashboard
- Transport: Streamable HTTP
- Header:
Authorization: Bearer sk_signl_YOUR_KEY
X-Api-Key is accepted as an alternative to the Authorization header if your client prefers it.
Confirm it worked
Ask the agent:
What Signl tools do you have access to?
It should list five: search_signals, get_weekly_drop, get_credit_balance, enrich_lead and refresh_person_signals.
If it lists none, in order of likelihood: the client has not reloaded, the server is added but not started, the key was pasted with a trailing space, or the header name is wrong. Check the client's MCP panel for the server's status before assuming the key is bad. See my agent cannot see Signl's tools.
Revoking
Revoke a key from the dashboard. It stops working immediately, and so does every client using it, which is the argument for one key per client.
If you connected over OAuth instead, revoking that grant affects only that client. See security and data handling.
Related
Connect your agent for the OAuth path, connect ChatGPT for that client specifically, and the MCP tool reference for what each tool takes.