Every server has one MCP URL, https://…/mcp/<server id>, served over Streamable HTTP. Clients
authenticate with an API key in the Authorization header, or with OAuth by signing in with your
SourceMCP account (see API keys and OAuth). Your server's Connect tab has these
snippets with the URL filled in.
Menu names change between client versions; if a step doesn't match, check the client's own MCP docs.
Add the server to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project):
{
"mcpServers": {
"acme-api": {
"url": "https://…/mcp/proj_ab12Cd34Ef56Gh78",
"headers": { "Authorization": "Bearer mcpk_live_…" }
}
}
}
For OAuth, leave out headers. Cursor then shows Needs login next to the server; choose it and sign in.
claude mcp add --transport http acme-api https://…/mcp/proj_ab12Cd34Ef56Gh78 \
--header "Authorization: Bearer mcpk_live_…"
For OAuth, leave out --header, then run /mcp in Claude Code, pick the server and choose
Authenticate.
Claude's custom connectors use OAuth only:
A connector added on claude.ai is available in Claude Desktop and the mobile apps too.
Add .vscode/mcp.json to the workspace:
{
"servers": {
"acme-api": {
"type": "http",
"url": "https://…/mcp/proj_ab12Cd34Ef56Gh78",
"headers": { "Authorization": "Bearer mcpk_live_…" }
}
}
}
For OAuth, leave out headers; VS Code asks you to sign in when the server starts.
ChatGPT connects to remote MCP servers as connectors, with OAuth. Turn on developer mode (Settings → Apps & Connectors → Advanced settings), create a connector with your MCP URL and OAuth as the authentication, then sign in with your SourceMCP account. Connector availability depends on your ChatGPT plan.
Clients that only start local (stdio) servers can reach SourceMCP through
mcp-remote, which runs locally and forwards to the URL:
{
"mcpServers": {
"acme-api": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://…/mcp/proj_ab12Cd34Ef56Gh78",
"--header",
"Authorization:${SOURCEMCP_AUTH}"
],
"env": { "SOURCEMCP_AUTH": "Bearer mcpk_live_…" }
}
}
}
The key goes in env, not in args, because some clients mangle spaces inside arguments. Without
--header, mcp-remote opens a browser for the OAuth sign-in instead.