ContentIn — LinkedIn Ghostwriter
Write LinkedIn posts in your voice: ideas, drafts, scheduling, analytics from your personal AI.
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.contentin.io/mcp-serverSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.contentin.io/mcp-server{
"mcpServers": {
"linkedin": {
"url": "https://mcp.contentin.io/mcp-server",
"headers": {
"X-MCP-Key": "<YOUR_X_MCP_KEY>"
}
}
}
}claude mcp add --transport http linkedin https://mcp.contentin.io/mcp-server --header "X-MCP-Key: <value>"{
"servers": {
"linkedin": {
"type": "http",
"url": "https://mcp.contentin.io/mcp-server",
"headers": {
"X-MCP-Key": "<YOUR_X_MCP_KEY>"
}
}
}
}11 tools, verified live
list_postsread-onlyList the posts on this ContentIn profile â drafts, scheduled, published and ideas. Use this to find a post's id before scheduling, publishing, repurposing or pulling analytics for it, and to answer questions about what the user has written or has queued up. Returns a 280-character excerpt of each post, never the full body.
get_post_analyticsread-onlyGet LinkedIn performance for one published ContentIn post: impressions, members reached, likes, comments, shares, and a derived engagement rate. IMPORTANT: metrics are fetched on a schedule and only for posts published through a connected LinkedIn account, so a post can legitimately have no numbers yet. When that happens this returns measured: false â report that honestly as 'not measured yet'.
list_my_commentsread-onlyList the comments this user has left on OTHER people's LinkedIn posts, newest first, with the comment urn and a direct link to each one. Use it to review their commenting activity, to find a conversation they joined, or to hand the identifiers to another tool. HOW THIS DATA IS COLLECTED, and what you must not claim because of it: ContentIn reads these comments from a scrape that runs ONCE A DAY, s
list_leadsread-onlyList the people who engaged with THIS user's own LinkedIn posts â their name, headline, LinkedIn profile, how they engaged, what they commented, which posts pulled them in, and ContentIn's ICP fit score. Use it to answer 'who is engaging with me', to find warm contacts, or to see which posts attract the right audience. REACTIONS ARE INCLUDED: a single like creates a lead, so a lead with no comme
write_post_in_my_voiceTHE MAIN TOOL. Write a LinkedIn post in this user's own voice, from their own material. Use it whenever the user describes something they want to post about â a story, an opinion, a result, a lesson, a rough brief. It runs ContentIn's voice pipeline: their VoiceDNA, their real past posts as style exemplars, and their substance bank, so the output sounds like them rather than like an AI. Pass the
attach_imagesAttach one or more images to a ContentIn post that is not published yet. IMAGES ONLY â JPG, PNG or WEBP, at least 200Ã200px, at most 8 MB each, and at most 5 per post. Video, GIFs, PDFs and document carousels are NOT supported and will be refused, so do not try to attach one. Pass each image either as a public url (ContentIn downloads it) or as a base64 string with its mime_type. Two or more im
repurpose_postRewrite an existing post from a new angle, in the user's voice. Pass post_id (a ContentIn post id from list_posts) to repurpose one of their own posts â the current text is read from ContentIn, so you do not need to have seen it. Pass original_post instead to repurpose text you already have that is not in ContentIn. Exactly one of the two is required. The result is saved as a new draft; the orig
generate_ideasGenerate fresh LinkedIn post ideas for a COLD request â the user wants options but has NOT given you material of their own ('what should I post about this week?', 'ideas for [topic]'). Ideas are grounded in the user's content pillars and their substance bank, so they are theirs rather than generic. Do NOT use this when the user has already given you their own material, a brief, or a concept in t
capture_substanceSave a piece of the user's first-party substance â a story, an opinion, a data point, or a framework â into their ContentIn content bank, filed under one of their content pillars. This is the highest-leverage thing you can do for them: everything ContentIn writes later is grounded in this bank, so capturing what they tell you in passing compounds. Use it whenever the user shares a real experie
schedule_postQueue a post for automatic publishing to LinkedIn at a given time. TWO-STEP AND DELIBERATELY SO: call it first WITHOUT confirm_token to get back the exact text and a confirm_token; show that exact text to the user, get their explicit go-ahead, then call again with the same arguments plus the confirm_token. The token expires in 5 minutes, works once, and stops working if the post changes in between
publish_postcan modifyPublish a post to the user's LinkedIn immediately. THIS IS IRREVERSIBLE â it is public the moment it succeeds. TWO-STEP AND MANDATORY: call it first WITHOUT confirm_token to get back the exact text that would go out and a confirm_token; show that exact text to the user in full, ask them to confirm in their own words, and only then call again with the confirm_token. The token expires in 5 minutes
Alternatives in Databases & Data
Compare →BEBetterlyticsA
Query your Betterlytics web analytics from AI agents: traffic, funnels, journeys, errors, uptime.
KEKeboolaA
Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...
ADAdsA
Manage Google, Meta, Amazon, TikTok, LinkedIn & ChatGPT ads. 430 tools for campaigns & analytics.
RURun402B
x402 pay-per-call infra for agents: $0.03 image generation, Postgres, auth, storage, functions.
AIOProductOS MCPB
AIOProductOS: revenue, feedback, work and analytics on one customer record. 71 tools, 3 apps.
SDSTRING Database MCP ServerB
Query STRING interactions, enrichment, annotations, homology, and PPI networks.