A two-minute setup guide for the ContentIn MCP server. Paste one URL into Claude.ai, Claude Desktop, Claude Code, ChatGPT, Cursor or VS Code, sign in with ContentIn, and your assistant can write in your voice, pull your analytics, schedule and publish — without leaving the conversation. No key to copy.
The MCP server is part of the ContentIn Growth and Pro plans. Everything below assumes you have a Growth or Pro account.
Two things need to be in place. Both live inside ContentIn.
The MCP server is included from the Growth plan; the list_leads and list_my_comments tools need Pro. Every tool checks your plan live on each call, so an account that drops below Growth loses access straight away, with nothing to reconnect or rotate.
Publishing, scheduling and analytics all run through the LinkedIn account connected to the ContentIn profile you pick when you connect. Connect it in ContentIn before you start, or the write tools have nowhere to publish and analytics will come back empty.
One remote server, the same URL for every client. There's no key to copy and no header to set: you paste the URL, sign in with ContentIn, and you're connected.
In Claude.ai, open Settings → Connectors → Add custom connector, paste the URL below and leave the advanced settings empty. Click Connect, sign in with ContentIn, pick your profile and approve.
https://mcp.contentin.io/mcp-server Copy it exactly. The path is /mcp-server, not /mcp, and there's nothing to add after it.
Added the connector earlier with a key in the URL? It keeps working until you remove it and reconnect with the plain URL above.
Same as Claude.ai: open Settings → Connectors → Add custom connector, paste https://mcp.contentin.io/mcp-server, click Connect and sign in with ContentIn. A connector you add on Claude.ai shows up in Claude Desktop too, so if you've done it once, you're done. No config file to edit.
Add the server with one command in your terminal:
claude mcp add --transport http contentin https://mcp.contentin.io/mcp-server Then start Claude Code, run /mcp, select contentin and choose Authenticate. Your browser opens the ContentIn sign-in page; approve, and contentin shows as connected with its tools.
ChatGPT connects to custom MCP servers in developer mode. Turn on developer mode in ChatGPT's settings under Apps, then create a new app or connector, paste https://mcp.contentin.io/mcp-server as the server URL and choose OAuth as the authentication. ChatGPT sends you to the ContentIn sign-in page; approve, and the tools are available in your chats.
Add the entry below to ~/.cursor/mcp.json to make it available everywhere, or to .cursor/mcp.json inside a project to scope it to that project. Just the URL, no headers.
{
"mcpServers": {
"contentin": {
"url": "https://mcp.contentin.io/mcp-server"
}
}
}Open Cursor's MCP settings: the contentin server asks you to sign in. Click it, approve on the ContentIn page, and the server shows as connected.
Add the server to .vscode/mcp.json in your workspace (or run MCP: Add Server from the command palette and paste the URL):
{
"servers": {
"contentin": {
"type": "http",
"url": "https://mcp.contentin.io/mcp-server"
}
}
}Start the server when VS Code offers to. It asks to sign in with ContentIn; approve, and the tools are available to Copilot's agent mode.
ContentIn speaks the Model Context Protocol over Streamable HTTP, with standard MCP OAuth sign-in. Point any compliant client at https://mcp.contentin.io/mcp-server and it discovers the ContentIn sign-in on its own. There's nothing to install — no local process, no bridge, no plugin per app. If the client can't open a browser, use an API key instead.
Scripts, CLIs and headless agents that can't open a browser to sign in can use an API key instead. The key goes in the X-MCP-Key header on every request.
To create one, open app.contentin.io/profiles, then in the Connections tab find "Connect AI clients" under your connected LinkedIn profile and create a key. It starts with cimcp_ and is scoped to a single profile. You can hold up to five active keys per profile and revoke any of them at any time.
Claude Code with a key:
claude mcp add --transport http contentin https://mcp.contentin.io/mcp-server --header "X-MCP-Key: YOUR_KEY"Any client that takes a JSON config with headers:
{
"mcpServers": {
"contentin": {
"type": "http",
"url": "https://mcp.contentin.io/mcp-server",
"headers": {
"X-MCP-Key": "YOUR_KEY"
}
}
}
}When you create an MCP key, ContentIn shows it a single time. Copy it straight into your client config or a password manager. Treat it like a password: anyone holding it can act on that profile. If you lose it or suspect it leaked, revoke it from the same Connections tab and create a new one. Revoking takes effect immediately.
Keys only go in the header. Putting a key in the URL is no longer documented, because credentials in URLs end up in logs and browser history; connectors already set up that way keep working until you reconnect.
Eleven tools. Your assistant picks the right one from what you ask — you never call them by name.
list_postsDrafts, scheduled posts, published posts and saved ideas — filtered by status, date or a search term.
get_post_analyticsImpressions, members reached, reactions, comments, shares and engagement rate for a published post.
list_my_commentsThe comments you wrote on other people's posts, newest first — with the comment's URN and a direct link, the likes and replies it got, and the post it sits under with its author. Filter by date range or a search term, up to 100 at a time. Read from a daily sync, so the last day can still be missing; history starts when your profile became a paying account with a LinkedIn URL on file. Who reacted to a comment isn't available — only the counts.
list_leadsEveryone who reacted to, commented on or shared your own posts: name, headline, profile URL, ContentIn's ICP fit score, lead status, their recent comments and the posts that pulled them in. Filter by lead status, minimum score or last interaction, sort by any of the three, up to 100 at a time. A single reaction is enough to create a lead; an unscored lead means ContentIn hasn't scored it yet, not that they're a poor fit.
write_post_in_my_voiceBrain-dump the raw material and get back a draft built on the voice model trained on your own posts.
repurpose_postTake a post that landed and rework it from a fresh angle instead of repeating yourself.
generate_ideasPost ideas drawn from your topics, your audience and what has already resonated for you.
capture_substanceSave a story, an opinion or a number from any conversation into your substance bank, so future drafts inherit it.
attach_imagesAdd up to 5 images to a draft — pass a public image URL or the file itself — then publish or schedule it as usual. JPG, PNG or WEBP, 8 MB each; one image goes out as a single image, two or more as a LinkedIn multi-image post. GIFs, video and PDFs aren't supported. Fair use: 30 images an hour and 100 a day per key.
schedule_postQueue a post for a specific time. Shows you the exact text and waits for your confirmation first.
publish_postPublish immediately. Shows you the exact text and waits for your confirmation — always.
Paste any of these into your client once the server is connected.
Both write tools are two-step by design. Your assistant calls the tool once and gets back the exact text plus a short-lived confirmation token; it has to show you that text and get your explicit go-ahead before the second call actually does anything. The token expires after five minutes, works once, and stops working if the post changed in between — so an assistant can't quietly queue something behind your back.
Each connected app (and each API key) acts for one ContentIn profile and carries no access to anything else on your account. Your LinkedIn password is never involved. Publishing is a separate permission your client asks for the first time it publishes. Revoke a connection or key from the Connections tab on the Profiles page at any time and it stops working immediately.
Each connection has a daily ceiling on tool calls, which resets at 00:00 UTC. It's generous enough for normal work and exists to stop a runaway assistant from looping through your quota. If you hit it, the tools tell you so rather than failing silently.
The server re-reads your plan on each request rather than trusting a snapshot from when you connected. That means access is always accurate — and if you upgrade, the tools start working without you doing anything.
A connected app can only reach the one ContentIn profile you picked when you approved it: that profile's posts, drafts, ideas, analytics, comments and leads, within the permissions you granted. It can't see your other profiles, your billing details or your LinkedIn password. What the app does with the data it reads is governed by that app's own terms. You can see every connected app and revoke its access at any time in ContentIn under Profiles → Connections; revoking takes effect immediately. For how ContentIn handles your data, read our privacy policy.
The MCP server is included from the ContentIn Growth plan — nothing to buy separately. Start a trial, connect your AI client with one click, and your assistant is writing in your voice a couple of minutes later.
New to the Model Context Protocol? Read the LinkedIn MCP definition in our glossary, or try the free AI LinkedIn post generator first — no login required.