Install
Connect the Heading MCP to Claude, Claude Code, ChatGPT, Cursor or VS Code, by signing in or with an API key
Every client points at the same address:
https://mcp.useheading.com/mcpSigning in is the simpler way wherever a client offers it: the client opens Heading in a browser, you approve it once, and there is no key to keep safe. Use an API key where a client cannot sign in, or for a program with no browser. Create keys under Settings → API in the dashboard; a key starts hdg_sk_live_ and is shown once. Keep it in your environment or your client's secret store, never in a file you commit. See Two ways to connect for what each can reach.
Your client decides which scopes it asks for, and the consent screen lists what it asked for: you approve or deny all of it. Write access needs a client that asks for mcp:write; without it, every change is refused. See Scopes and consent.
Client menus change often. The steps below were checked against each client's own documentation in November 2026; if a label has moved, look for the client's connector or MCP server settings.
| Client | Sign in | API key |
|---|---|---|
| Claude (claude.ai and Claude Desktop) | Yes | Yes, as a request header |
| Claude Code | Yes | Yes |
| ChatGPT | Yes, in developer mode | Use sign-in |
| Cursor | Yes | Yes |
| VS Code | Yes | Yes |
Claude (claude.ai and Claude Desktop)
Claude calls a remote MCP server a custom connector. One connector serves claude.ai and Claude Desktop alike.
- Open Customize → Connectors.
- Select + Add, then Add custom connector.
- Name it
Headingand enterhttps://mcp.useheading.com/mcpas the server URL. - Under Authentication, choose Sign in now. Under OAuth client, choose Register automatically: Heading supports dynamic client registration, so Claude registers itself with Heading and there is no client ID to ask us for.
- Select Add, sign in to Heading in the window that opens, and approve the access.
An owner adds the connector once for the organization:
- Open Organization settings → Connectors.
- Select Add, hover over Custom and choose Web.
- Name it
Headingand enterhttps://mcp.useheading.com/mcp. Choose sign-in, with the OAuth client registered automatically (Heading supports dynamic client registration).
Then each person connects their own account: open Customize → Connectors, find Heading and select Connect. Each person signs in as themselves, so each reaches only the brands they can open in Heading, and every change is made as them.
To use it, select + at the lower left of a chat, then Connectors, and turn Heading on for that conversation. Claude can ask you before it runs a tool that makes a change.
Claude also lets a connector send a fixed API key as a request header. On a Team or Enterprise plan everyone using that connector would share the key, and every change would be made as the person who created it. Use sign-in there.
Claude Code
claude mcp add --transport http heading https://mcp.useheading.com/mcpAdd --scope user to have it in every project, or --scope project to write it to the project's .mcp.json for your whole team. Then, inside Claude Code, run:
/mcpSelect heading, follow the sign-in in your browser, and approve the access. It then shows as connected, with its tools listed. Claude Code keeps the token and refreshes it on its own.
claude mcp add --transport http heading https://mcp.useheading.com/mcp \
--header "Authorization: Bearer $HEADING_API_KEY"Or commit a project-scoped .mcp.json and keep the key in each person's environment:
{
"mcpServers": {
"heading": {
"type": "http",
"url": "https://mcp.useheading.com/mcp",
"headers": {
"Authorization": "Bearer ${HEADING_API_KEY}"
}
}
}
}Run /mcp to check that heading is connected.
ChatGPT
ChatGPT connects to a remote MCP server as an app, in developer mode. Use sign-in. Developer mode depends on your plan, and in a Business, Enterprise or Edu workspace an admin may need to turn it on for you. ChatGPT's labels change often, so the names below may vary.
- Open Settings → Apps → Advanced settings and turn on Developer mode.
- Back in Settings → Apps, choose Create (in some workspaces, Add custom MCP server).
- Name it
Heading, enterhttps://mcp.useheading.com/mcp, and set the authentication to OAuth. - Create it, sign in to Heading in the window that opens, and approve the access.
To use it, open a new chat, choose Heading from the tools menu, and ask. ChatGPT may ask you to confirm before it runs a tool that makes a change.
Cursor
Add the server to ~/.cursor/mcp.json to have it everywhere, or to .cursor/mcp.json in a project.
{
"mcpServers": {
"heading": {
"url": "https://mcp.useheading.com/mcp"
}
}
}Enable heading from Customize in the sidebar, and complete the sign-in when Cursor asks.
{
"mcpServers": {
"heading": {
"url": "https://mcp.useheading.com/mcp",
"headers": {
"Authorization": "Bearer ${env:HEADING_API_KEY}"
}
}
}
}Set HEADING_API_KEY in the environment Cursor starts from, then enable heading from Customize in the sidebar.
VS Code
Run MCP: Add Server from the Command Palette, choose HTTP, and enter https://mcp.useheading.com/mcp. Or write the configuration yourself, in .vscode/mcp.json for a workspace or in your user profile's mcp.json.
{
"servers": {
"heading": {
"type": "http",
"url": "https://mcp.useheading.com/mcp"
}
}
}The first time the server starts, VS Code opens a browser to sign in to Heading. Approve the access, and the tools appear in chat.
VS Code asks for the key once and keeps it in its secret storage, so the key never sits in the file:
{
"inputs": [
{
"type": "promptString",
"id": "heading-api-key",
"description": "Heading API key",
"password": true
}
],
"servers": {
"heading": {
"type": "http",
"url": "https://mcp.useheading.com/mcp",
"headers": {
"Authorization": "Bearer ${input:heading-api-key}"
}
}
}
}Any other MCP client
Point it at https://mcp.useheading.com/mcp as a remote server over Streamable HTTP.
- To sign in, connect with no credential. Heading answers
401with aWWW-Authenticateheader naming its protected resource metadata, and a client that follows the MCP authorization spec takes it from there: it registers itself, sends you to sign in and receives a token. There is no client ID to request from us. - With a key, have the client send
Authorization: Bearer hdg_sk_live_…on every request. There is no session to set up.
A client that can only start a local command, and cannot reach a remote server, cannot connect to the Heading MCP.
Check it works
Ask your assistant: "List my Heading brands." It calls list_brands and names each brand you can reach. If the list is empty, see When something is wrong.