Connect ContentIn to your AI tools

A two-minute setup guide for the ContentIn MCP server. Create a key, paste one line into Claude Code, Claude Desktop or Cursor, and your assistant can write in your voice, pull your analytics, schedule and publish — without leaving the conversation.

The MCP server is part of the ContentIn Pro plan. Everything below assumes you have a Pro account.

1. Before you start

Three things need to be in place. All of them live inside ContentIn.

  1. 1

    A ContentIn Pro account

    The MCP server is part of the Pro plan. Every tool checks your plan live on each call, so an account that drops off Pro loses access straight away — no key rotation needed.

  2. 2

    A connected LinkedIn profile

    Publishing, scheduling and analytics all run through the LinkedIn account connected to that ContentIn profile. Connect it in ContentIn before you start, or the write tools have nowhere to publish and analytics will come back empty.

  3. 3

    An MCP key

    In ContentIn, open Settings → "Connect AI clients" and create a key. It starts with cimcp_ and is scoped to a single profile: the assistant you connect always works with that profile's voice, substance bank and calendar. You can hold up to five active keys per profile and revoke any of them at any time.

Your key is shown once

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 in settings and create a new one — revoking takes effect immediately.

2. Add the server to your client

One remote server, the same for every client. Replace YOUR_KEY with the key you just created.

Server URL
https://cms.contentin.io/mcp-server
Transport
Streamable HTTP
Auth header
X-MCP-Key: YOUR_KEY
Key format
cimcp_…

Claude Code

One command in your terminal. Claude Code stores the server and picks it up on the next session.

claude mcp add contentin --transport http https://cms.contentin.io/mcp-server --header "X-MCP-Key: YOUR_KEY"

Check it worked by running /mcp inside Claude Code — you should see contentin listed with its tools.

Claude Desktop

Edit the config file, add the entry below, then quit and reopen Claude Desktop.

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "contentin": {
      "type": "http",
      "url": "https://cms.contentin.io/mcp-server",
      "headers": {
        "X-MCP-Key": "YOUR_KEY"
      }
    }
  }
}

If the file doesn't exist yet, create it with exactly the content above. If it already has an mcpServers block, add the contentin entry alongside your existing servers rather than replacing it.

Cursor

Same JSON, different file. Use ~/.cursor/mcp.json to make it available everywhere, or .cursor/mcp.json inside a project to scope it to that project. You can also add it through Cursor's settings under MCP.

{
  "mcpServers": {
    "contentin": {
      "url": "https://cms.contentin.io/mcp-server",
      "headers": {
        "X-MCP-Key": "YOUR_KEY"
      }
    }
  }
}

Reload Cursor afterwards. The server shows up as contentin in the MCP panel once it connects.

Any other MCP client

ContentIn speaks the Model Context Protocol over Streamable HTTP. Point any compliant client at https://cms.contentin.io/mcp-server and send your key in the X-MCP-Key header. There's nothing to install — no local process, no bridge, no plugin per app.

3. What you can do

Eight tools. Your assistant picks the right one from what you ask — you never call them by name.

list_posts

See your posts

Drafts, scheduled posts, published posts and saved ideas — filtered by status, date or a search term.

get_post_analytics

Pull post analytics

Impressions, members reached, reactions, comments, shares and engagement rate for a published post.

write_post_in_my_voice

Write in your voice

Brain-dump the raw material and get back a draft built on the voice model trained on your own posts.

repurpose_post

Repurpose something that worked

Take a post that landed and rework it from a fresh angle instead of repeating yourself.

generate_ideas

Generate ideas

Post ideas drawn from your topics, your audience and what has already resonated for you.

capture_substance

Capture stories and ideas

Save a story, an opinion or a number from any conversation into your substance bank, so future drafts inherit it.

schedule_post

Schedule a post

Queue a post for a specific time. Shows you the exact text and waits for your confirmation first.

publish_post

Publish to LinkedIn

Publish immediately. Shows you the exact text and waits for your confirmation — always.

Prompts to start with

Paste any of these into your client once the server is connected.

  • “What have I got scheduled for next week, and what did my last three published posts do?”
  • “I ran a workshop today and two people asked the same question about pricing. Write me a post about it in my voice.”
  • “Save this for later: our churn dropped from 6% to 3.4% after we moved onboarding to a live call.”
  • “Give me five post ideas based on the topics that performed best for me this month.”
  • “Take my best-performing post from the last 90 days and repurpose it from a different angle, then schedule it for Tuesday at 9am CET.”

4. What the server will and won't do

Nothing is published or scheduled without your confirmation

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.

Keys are per profile, and revocable

Each key is scoped to one ContentIn profile and carries no access to anything else on your account. Your LinkedIn password is never involved. Revoke a key from Settings at any time and it stops working immediately; create a fresh one whenever you need.

There's a daily call limit

Each key 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.

Your plan is checked on every call

The server re-reads your plan on each request rather than trusting a snapshot from when the key was created. That means access is always accurate — and if you upgrade, the tools start working without you doing anything.

5. Troubleshooting

"Invalid key" or the tools refuse to run
Re-copy the key from ContentIn → Settings → "Connect AI clients". The most common cause is a truncated paste or a stray space at the start or end of the header value. Keys start with cimcp_. If you no longer have the key, create a new one — the original is only ever shown once — and revoke the old one while you're there.
"Requires Pro" when the tools are called
The MCP server is part of the ContentIn Pro plan, and the server checks your plan live on every call. If you've just upgraded, the tools start working on the next call — no need to create a new key or restart your client. If you're not on Pro yet, start a trial and the same key works the moment the plan is active.
I hit the rate limit
Each key has a daily call ceiling that resets at 00:00 UTC. Wait for the reset, or spread the work out. If an assistant burned through it in a loop, it's worth checking what it was retrying — the limit exists precisely to make that visible.
The server connects but there are no posts or analytics
Check that the profile the key belongs to has a connected LinkedIn account, and that you have posts in ContentIn. Analytics are collected on a schedule and only for posts published through a connected LinkedIn account, so a post published a few minutes ago will honestly report that it hasn't been measured yet rather than showing zeroes.
My client can't see the server at all
Quit and reopen the client after editing its config — most clients only read MCP configuration at startup. Then check the JSON is valid (a trailing comma is the usual culprit) and that the URL is exactly https://cms.contentin.io/mcp-server with no trailing slash. In Claude Code, run /mcp to see the connection status.
Scheduling was rejected because of the time
Times need an explicit UTC offset — 2026-08-04T09:00:00+02:00 or 2026-08-04T07:00:00Z. A bare local time is refused on purpose, because ContentIn can't know your timezone and guessing would publish hours off. Tell your assistant your timezone once and it will handle the format from there.

Not on Pro yet?

The MCP server is included in the ContentIn Pro plan — nothing to buy separately. Start a trial, create your key, 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.