ContentIn — LinkedIn Ghostwriter
io.contentin/linkedin · v1.0.0
Write LinkedIn posts in your voice: ideas, drafts, scheduling, analytics from your personal AI.
MCPremoteAPI keyImages, video & audioAnalytics & marketingFinance
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 11 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
B 80/100
What it does: 11 tools · 4 read, 7 write (incl. delete/pay) · Images, video & audio, Finance, Documents & PDF
Test call list_posts: failed — rpc error: No ContentIn MCP key was sent. Add your key as an X-MCP-Key header, e.g. claude mcp add contentin --transport http https://cms.contentin.io/mcp-serve (1,197 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +10
- Read/write annotations: +5
- Safe test call: 0
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://mcp.contentin.io/mcp-serverTools
11 tools listed at last check
list_postsList 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 poget_post_analyticsGet 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 numberslist_my_commentsList 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 yolist_leadsList 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 attractwrite_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 exattach_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 eitherrepurpose_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 isgenerate_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.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 cschedule_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 confirmpublish_postPublish 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 i
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.contentin/linkedin)