io.contentin/linkedin

MCPcommunitylive
v1.0.0io.contentinUnknownUpdated 1mo ago

Write LinkedIn posts in your voice: ideas, drafts, scheduling, analytics from your personal AI.

Endpoint healthlive
checked 3 days ago · 213ms
100% of the last 5 checks reached this endpoint
Works in
ClaudeCursorCopilotChatGPTGemini

Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
1mo agoLast update
Package
Authorio.contentin
LicenseUnknown
Version1.0.0
Sourcemcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/30
→ Publisher: this listing has no repository on file, so `forge publish` cannot verify ownership automatically. Use "Claim this listing" above — Forge reviews these by hand.
—Domain verification+0/10
→ Not currently available for this listing type — the domain-verification check only runs for npm-backed packages today, so this row cannot be earned here yet regardless of what's hosted at the domain.
✓Prompt-injection scan · clean+30/30
✓Obfuscation / exfil scan · clean+20/20
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
DependenciesNot audited
Tool surface11 tools · 1 privileged
Security scan✓ Cleanvlive · 3d agoHow well does this scan work?
EvalsNone
IndexedAug 19, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

11 tools · 1 privileged
Observed live from the vendor's endpoint3d ago

Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.

  • https://mcp.contentin.io/mcp-server11 tools · 213ms
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 p…

List 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 p…

ParameterTypeDescription
statusarrayFilter by post status. Omit for all statuses. 'draft' = written but not queued, 'scheduled' = queued for automatic publishing, 'posted' = already live on Linke…
fromstringISO-8601 date. Only posts created on or after this.
tostringISO-8601 date. Only posts created on or before this.
searchstringFree-text match against the post body and title.
limitintegerHow many posts to return (1-50, default 20).
get_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 numbers…

Get 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…

ParameterTypeDescription
post_id*integerThe ContentIn post id, from list_posts.
include_historybooleanInclude the metric time-series (up to 60 snapshots) instead of just the latest figures. Default false.
list_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 y…

List 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 y…

ParameterTypeDescription
fromstringISO-8601 date. Only comments written on or after this.
tostringISO-8601 date. Only comments written on or before this.
searchstringFree-text match against the comment text and the excerpt of the post it was left on.
limitintegerHow many comments to return (1-100, default 50).
beforestring | nullPaging cursor: pass back the next_before value from the previous response, VERBATIM, together with before_id. Do not build this yourself and do not reuse a cur…
before_idintegerPaging cursor: the next_before_id from the previous response. Always send it alongside before, otherwise comments written in the same second can be skipped.
list_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 attrac…

List 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 attrac…

ParameterTypeDescription
statusarrayFilter by the user's lead funnel state. Default is everything EXCEPT 'dismissed' — the user already said no to those, so ask for them explicitly if you really…
min_icp_scoreintegerOnly leads scoring at least this (0-100). Applied to the user's override where they set one, otherwise to ContentIn's score. Leads that have not been scored ye…
interacted_sincestringISO-8601 date. Only leads who engaged on or after this.
searchstringFree-text match against the lead's name and headline.
sortstringOrdering, always descending. Default 'last_interacted' (most recent engagement first).
limitintegerHow many leads to return (1-100, default 50).
before—Paging cursor: pass back the next_before value from the previous response, VERBATIM, together with before_id. Do not build this yourself, and do not reuse a cu…
before_idstringPaging cursor: the next_before_id from the previous response. Always send it alongside before, otherwise leads sharing a score or a timestamp can be skipped.
write_post_in_my_voiceprivilegedTHE 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 e…

THE 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 e…

ParameterTypeDescription
user_idea*stringThe user's complete description of the post they want, in THEIR words. Include their full intent, context, specific details, names and numbers. Verbatim is bet…
style*stringWriting style. Infer it from the material: results / case studies / client wins = proof, educational / frameworks = authority, viral / trending / broad-resonan…
user_constraintsstringAny preferences the user has stated that override defaults — e.g. 'no hashtags', 'no call to action, this is a connection post', 'keep it under 800 characters'…
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…

Attach 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…

ParameterTypeDescription
post_id*integerThe ContentIn post id (from list_posts or write_post_in_my_voice). The post must not be published yet.
images*arrayThe images, in the order they should appear on LinkedIn. Exactly one of url or base64 per entry. Maximum 5.
alt_textsarrayOptional alt text per image, same order and same length as images. Describe what is actually in the picture, in the user's language, 300 characters or fewer.
modestring'replace' (default) — the post's images become exactly these, and the previous ones are deleted. 'append' — keep what is there and add these, total still cappe…
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…

Rewrite 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…

ParameterTypeDescription
post_idintegerA ContentIn post id (from list_posts). Its current body is read from ContentIn and used as the original.
original_poststringThe full text of a post that is NOT in ContentIn. Ignored when post_id is provided and resolves.
new_angle*stringWhat should change: the new angle, perspective, focus or audience. Be specific about what to keep and what to shift.
style*stringWriting style. Infer it from the material: results / case studies / client wins = proof, educational / frameworks = authority, viral / trending / broad-resonan…
content_pillarstringName of the content pillar this belongs to, so the draft is tagged correctly.
user_constraintsstringStated user preferences that override defaults for this post.
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.…

Generate 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.…

ParameterTypeDescription
topic*stringThe topic or theme to generate ideas about.
content_pillarstringName of one of the user's content pillars that matches this topic. Omit if none fits.
stylestringOptional. Omit to get a mix across all three styles, which is usually what the user wants.
countintegerHow many ideas (1-10, default 5).
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…

Save 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…

ParameterTypeDescription
content_pillar*stringThe content pillar's name or id. The name is fine — it is matched either way.
substance_type*stringstories = personal or client anecdotes; opinions = beliefs and contrarian takes; data_points = numbers, metrics, results; frameworks = step-by-step processes a…
content*stringThe substance itself, cleaned into one clear self-contained piece — but in the user's own words and with their own specifics intact. Do not generalise the deta…
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 confir…

Queue 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 confir…

ParameterTypeDescription
post_idintegerA ContentIn post id (from list_posts or write_post_in_my_voice).
post_contentstringFull post text, when it is not already in ContentIn. Ignored when post_id is provided.
post_time*stringWhen to publish. ISO-8601 WITH AN EXPLICIT UTC OFFSET, e.g. 2026-08-04T09:00:00+02:00, or 2026-08-04T07:00:00Z. A naive local time (2026-08-04T09:00:00) is REJ…
titlestringOptional internal label for the user's ContentIn list. This is NEVER shown on LinkedIn.
confirm_tokenstringThe token from the previous confirmation_required response. Omit on the first call.
publish_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…

Publish 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…

ParameterTypeDescription
post_idintegerA ContentIn post id (from list_posts or write_post_in_my_voice).
post_contentstringFull post text the user wrote in this conversation. Saved as a ContentIn draft first — nothing is ever published without a post record. Ignored when post_id is…
confirm_tokenstringThe token from the previous confirmation_required response. Omit on the first call.

11 of 11 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Write LinkedIn posts in your voice: ideas, drafts, scheduling, analytics from your personal AI.

Keywords
mcp
Alternatives
Comparing tool surfaces…

No dependency coverage

This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.

Topics

Related in social media