LinkedIn MCP config generator
Paste a gtm-api.com API key, pick your AI client, and copy the exact config or command, where it goes, and a prompt to test it. Everything is built in this tab: the key never leaves your browser.
How the client signs in
Mint one in the app under Settings, API keys. Left empty, the blocks show a placeholder.
Your key stays in this tab: no request carries it, nothing stores it, and it never goes into the URL or analytics.
Your client
Claude Desktop, with an API key
- In Claude Desktop open Settings, then Developer, and click Edit Config. That opens claude_desktop_config.json.
- Paste the block. If the file already has an mcpServers object, add the gtm-api entry inside it rather than a second object.
- Save and restart Claude Desktop. The launcher runs through npx, so the machine needs Node.js 18 or newer.
Where it goes
- macOS
~/Library/Application Support/Claude/claude_desktop_config.json- Windows
%APPDATA%\Claude\claude_desktop_config.json
Copy this
{
"mcpServers": {
"gtm-api": {
"command": "npx",
"args": ["-y", "@gtm-api/linkedin-mcp"],
"env": { "GTM_API_KEY": "gtm_live_..." }
}
}
}
- Open Settings, then Connectors, and click Add custom connector.
- Paste the server URL below and add it.
- Approve the consent screen that opens in your browser. Nothing else to paste, and the same connector works on claude.ai and in Claude Desktop.
Copy this
https://mcp.gtm-api.com/mcp
- Run the command in a terminal. With the key attached, the browser sign-in never starts.
Copy this
claude mcp add --transport http gtm-api https://mcp.gtm-api.com/mcp --header "Authorization: Bearer gtm_live_..."
Check from a terminal
claude mcp list
Shows gtm-api as connected.
- Run the command in a terminal.
- Start a Claude Code session, run /mcp and authenticate when prompted.
Copy this
claude mcp add --transport http gtm-api https://mcp.gtm-api.com/mcp
Check from a terminal
claude mcp list
Shows gtm-api as connected once the consent is done.
claude.ai connectors have no field for a header, so they always sign in through the browser. Your key is not used here.
- Open Settings, then Connectors, and click Add custom connector.
- Paste the server URL below and add it.
- Approve the consent screen that opens in your browser. Nothing else to paste, and the same connector works on claude.ai and in Claude Desktop.
Copy this
https://mcp.gtm-api.com/mcp
ChatGPT connectors sign in through the browser, so your key is not used here.
- In ChatGPT open Plugins, select the plus button, then Add custom MCP server. Developer mode does not need to be on.
- Give it a name, paste the server URL below under Connection and choose OAuth as the authentication.
- Tick the risk acknowledgement, select Create as a plugin and complete the sign-in on the consent screen. On Business and Enterprise workspaces an admin may have to allow custom MCP servers first.
Copy this
https://mcp.gtm-api.com/mcp
- Open mcp.json and paste the block. If the file already has an mcpServers object, add the gtm-api entry inside it.
- Cursor starts the launcher through npx, so the machine needs Node.js 18 or newer.
Where it goes
- All projects
~/.cursor/mcp.json- One project
.cursor/mcp.json
Copy this
{
"mcpServers": {
"gtm-api": {
"command": "npx",
"args": ["-y", "@gtm-api/linkedin-mcp"],
"env": { "GTM_API_KEY": "gtm_live_..." }
}
}
}
- Press Add to Cursor. It opens Cursor and adds the server.
- Sign in on the consent page that follows.
- Rather edit the file? The block is the same entry the button adds.
Where it goes
- All projects
~/.cursor/mcp.json- One project
.cursor/mcp.json
Copy this
{
"mcpServers": {
"gtm-api": {
"url": "https://mcp.gtm-api.com/mcp"
}
}
}
Our docs connect VS Code through the one-click install, which signs in through the browser. Your key is not used here.
- Press Install in VS Code. It opens VS Code and adds the server.
- Sign in on the consent page that follows.
Copy this
https://mcp.gtm-api.com/mcp
Our docs connect Codex with codex mcp login, a browser sign-in. Your key is not used here.
- The first line registers the server in ~/.codex/config.toml.
- The second runs the sign-in and opens the consent page. No client id to pass.
Copy this
codex mcp add gtm-api --url https://mcp.gtm-api.com/mcp
codex mcp login gtm-api
- A client that takes a URL: give it the server URL over the streamable HTTP transport, and the header below. No browser, no consent screen.
- A client that can only start a command: give it the launcher, which reads the key from GTM_API_KEY.
Copy this
https://mcp.gtm-api.com/mcp
Authorization: Bearer gtm_live_...
{
"mcpServers": {
"gtm-api": {
"command": "npx",
"args": ["-y", "@gtm-api/linkedin-mcp"],
"env": { "GTM_API_KEY": "gtm_live_..." }
}
}
}
- A client that takes a URL: give it the server URL over the streamable HTTP transport. It discovers the OAuth flow on its own, and dynamic client registration means nothing has to be registered with us first.
- A client that can only start a command: give it the launcher. It opens the consent page on first use and caches the tokens under ~/.mcp-auth.
Copy this
https://mcp.gtm-api.com/mcp
{
"mcpServers": {
"gtm-api": {
"command": "npx",
"args": ["-y", "@gtm-api/linkedin-mcp"]
}
}
}
Check from a terminal
npx @modelcontextprotocol/inspector
Choose the streamable HTTP transport, enter the server URL, connect and approve the consent screen. The tool list appears once you are signed in.
Test it: paste this into a chat with the agent
Use the gtm-api tools to list the toolsets you can call.
The agent calls list_toolsets and names toolsets such as linkedin.messaging. If it says it has no such tools, the client has not loaded the server yet: restart it after editing a config file, and check the file is valid JSON.
Every block on this page is the one our docs publish at https://docs.gtm-api.com/mcp/connect, with your key in place of the placeholder. The server is https://mcp.gtm-api.com/mcp over streamable HTTP. It signs in with OAuth in the browser, or takes an API key as a bearer token.
No key yet? The free plan comes with the API and the MCP server
Sign up, connect one LinkedIn account and mint a key under Settings, API keys. No card.
API key or browser sign-in
Both reach the same server and the same server-side limits. They differ in who holds the credential.
Browser sign-in leaves no secret to keep
The client calls the server, gets a challenge pointing at its OAuth metadata, registers itself and opens a consent screen. You approve it once, and there is no key to store or rotate. It works in every client on this page, and it is the only route on claude.ai and ChatGPT.
A key is for machines without a browser
The same gtm_live_ key that authenticates REST calls works here as a bearer token: CI, servers, a headless agent. It acts on its own workspace with its own permissions, it can be revoked in the app, and it belongs in a secret store, not in a repository.
One mode per connection
With a key attached, the OAuth flow never starts. To switch, replace the gtm-api entry rather than adding a second one next to it.
Questions about connecting
Do I need an API key to connect LinkedIn to Claude?
No. In Claude Desktop and on claude.ai you add https://mcp.gtm-api.com/mcp under Settings, Connectors and approve a consent screen in the browser. No key is involved. A key is for a client that cannot open that screen: a headless agent, CI or a server. Pick Browser sign-in above for the connector steps.
Where do I get a gtm-api.com API key?
In the app, under Settings, API keys. The full key is shown once, when it is created, and has the form gtm_live_ plus 40 characters. It acts on one workspace with the permissions it was given, and you can rotate or revoke it at any time (authentication in our docs). The free plan includes the REST API and the MCP server on one connected account.
Does this page send my key anywhere?
No. The config is assembled in your browser from what you paste. No request carries the key, nothing stores it, and it never goes into the page address, so a link you copy carries only the client and the sign-in mode you picked. Close the tab and it is gone. The file you paste it into is another matter: it holds the key in plain text, so keep it out of a repository.
Why does Claude Desktop use the npx launcher for a key?
Claude Desktop's config file is for servers it starts as a local command, and its connectors, where a remote URL goes, have no header field. So with a key, the file starts @gtm-api/linkedin-mcp, a small launcher that reads GTM_API_KEY and sends it as the bearer token to https://mcp.gtm-api.com/mcp. Key auth works from launcher 1.3.0 on, and a config pinned to an older version fails on the first call.
Which clients does the generator cover?
The ones our docs document: Claude Desktop, Claude Code, claude.ai, ChatGPT, Cursor, VS Code and Codex, plus any client that speaks MCP over streamable HTTP or can only start a command. Each block is the one published at connect a client, with your key in place of the placeholder.
Can I connect n8n or Zapier this way?
Not through this page. n8n and Zapier connect to gtm-api.com through integrations of their own rather than through MCP: the n8n node and the Zapier integration, each with its own setup page.
What can the agent do once it is connected?
It sees three tools: list_toolsets, get_toolset_tools and call_tool, which open 250+ typed tools as the agent needs them, so the catalogue never fills its context. Anything that sends (a message, an invitation, a bulk run) returns a preview and waits for confirmation, and the server checks the account's daily limits before it dispatches. More on how it works: LinkedIn MCP server.
The agent says it has no gtm-api tools. What now?
Restart the client after editing its config file, and check the file is valid JSON with a single mcpServers object. In Claude Code, claude mcp list shows the server's status. A 401 means the token is missing, expired, revoked or mistyped: copy the key again, or mint a new one.
Give the agent a LinkedIn account to work with
Connect an account you own and the agent works through it, under smart limits and an isolated cloud browser, with a preview before anything is sent. 20,000+ LinkedIn accounts run on this stack, and under 1% of them have ever been restricted. Free plan, no card.
Connect an account