Server data from the Official MCP Registry
Draft, schedule, publish, and analyze your LinkedIn posts from your AI assistant via Taplio.
Draft, schedule, publish, and analyze your LinkedIn posts from your AI assistant via Taplio.
Remote endpoints: streamable-http: https://mcp.taplio.com
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Requires authentication · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"io-github-taplioofficial-taplio-linkedin-mcp": {
"url": "https://mcp.taplio.com"
}
}
}From the project's GitHub README.
The Taplio LinkedIn MCP Server is a Model Context Protocol (MCP) server that connects AI tools directly to your Taplio account and, through it, to your LinkedIn presence. It gives AI agents, assistants, and chat clients the ability to draft, schedule, and publish LinkedIn posts, browse what you have already posted, research inspiration from other creators, and read your analytics, all through natural language.
Point your MCP host at the Taplio server and you can ask things like:
linkedin ghostwriting from creators under 50k followers."Taplio is offered as a hosted, remote MCP server. There is nothing to install or run locally: your MCP host connects to the Taplio endpoint over HTTP and authenticates with OAuth.
| Property | Value |
|---|---|
| Transport | Streamable HTTP (remote) |
| Endpoint | https://mcp.taplio.com |
| Authentication | OAuth 2.0 (authorize in the browser, no API key to paste) |
| Scope | The authenticated user's own Taplio + LinkedIn account |
| Server hint | Call get_me first to load identity and settings |
Because the server is remote and OAuth-based, you never copy a secret into a config file. Access is tied to the Taplio account you approve in the browser, and can be revoked from Taplio at any time.
claude mcp add --transport http taplio https://mcp.taplio.com
Then run /mcp inside Claude Code and authorize taplio in the browser when prompted.
In Claude Desktop or on claude.ai, open Settings -> Connectors -> Add custom connector, then enter:
Tapliohttps://mcp.taplio.comApprove the OAuth screen. The Taplio tools then appear in the tool picker.
Add to your user or workspace MCP configuration (.vscode/mcp.json):
{
"servers": {
"taplio": {
"type": "http",
"url": "https://mcp.taplio.com"
}
}
}
In ~/.cursor/mcp.json (or Settings -> MCP -> Add):
{
"mcpServers": {
"taplio": {
"url": "https://mcp.taplio.com"
}
}
}
In ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"taplio": {
"serverUrl": "https://mcp.taplio.com"
}
}
}
Any client that supports remote MCP servers over HTTP can use:
{
"mcpServers": {
"taplio": {
"type": "http",
"url": "https://mcp.taplio.com"
}
}
}
The Taplio MCP Server uses OAuth 2.0. On first use your client opens a browser window where you log in to Taplio and approve access. The server then acts on behalf of that single account. No API keys, tokens, or LinkedIn credentials are stored in your client config. Revoke access at any time from your Taplio account settings.
The tools are grouped into functional toolsets. All of them operate on the authenticated user's own account.
| Toolset | Description |
|---|---|
| Profile | Identity, content preferences, and current LinkedIn stats. |
| Drafts | Create, read, list, edit, and delete unpublished post drafts. |
| Publishing | Publish a draft now, schedule it, or unschedule it back to drafts. |
| Posts | Browse scheduled, sending, and sent posts. |
| Analytics | Account-level overview and per-post performance metrics. |
| Inspiration | Search other creators' LinkedIn posts to model content on what works. |
get_meRead this first to orient. Returns the user's identity and content preferences so you can tailor output to them
and recognize their own posts: display name and LinkedIn @handle (a user may go by several aliases, so check
both), plus ai_settings (industry, role, language, target audience, topics, keywords, description) and today's
LinkedIn stats (followers, connections, profile views).
No parameters.
create_draftCreate a new LinkedIn post draft (unpublished). Publish it later with schedule_draft or publish_draft.
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | yes | The text body of the draft. 1 to 3000 characters. |
get_draftFetch a single LinkedIn post draft by id.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The id of the draft (from list_drafts). |
list_draftsList the user's unpublished LinkedIn post drafts.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Max drafts to return. Defaults to 25, capped at 100. |
cursor | string | no | Pagination token from a previous response. |
update_draftUpdate the content of an existing draft. Only drafts can be edited: published or scheduled posts cannot.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The id of the draft to update (from list_drafts). |
content | string | yes | The new full text body (replaces existing). 1 to 3000 chars. |
delete_draftPermanently delete a LinkedIn post draft.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The id of the draft to permanently delete. |
publish_draftPublish a draft to LinkedIn immediately. This goes live now and cannot be undone.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The id of the draft to publish immediately. |
schedule_draftSchedule a draft to be published automatically at a future time.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The id of the draft to schedule (from list_drafts). |
scheduled_for | string | yes | ISO 8601 datetime (e.g. 2026-06-10T14:30:00Z). At least 2 minutes in the future. |
unscheduleUnschedule a scheduled post, returning it to drafts so you can edit, reschedule, or delete it.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The id of the scheduled post (from list_posts). |
list_postsList the user's LinkedIn posts (status scheduled, sending, or sent), most recent first. A draft becomes a
post once it is scheduled or published.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | enum | no | Filter by scheduled, sending, or sent. Omit for all three. |
from | string | no | Only posts on or after this date (YYYY-MM-DD or ISO 8601, UTC). |
to | string | no | Only posts on or before this date (YYYY-MM-DD or ISO 8601, UTC). |
limit | integer | no | Max posts to return. Defaults to 25, capped at 100. |
cursor | string | no | Pagination token from a previous response. |
get_postFetch a single LinkedIn post by id. A post has status scheduled, sending, or sent; drafts are separate
(use get_draft).
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The id of the post (from list_posts). |
get_analytics_overviewGet the user's LinkedIn analytics overview (followers, impressions, engagement). Defaults to today when no date range is given.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | no | Start date (YYYY-MM-DD, UTC). Defaults to today; range capped at 90 days. |
to | string | no | End date (YYYY-MM-DD, UTC). Defaults to today; range capped at 90 days. |
metrics | string | no | Comma-separated subset: followers, connections, profile_views, impressions, likes, comments, shares. Omit for all. |
granularity | enum | no | Time-bucket size; only day is supported (default). |
get_post_analyticsList the user's per-post analytics (impressions, likes, comments, shares), defaulting to the last 7 days.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | no | Start date (YYYY-MM-DD, UTC). Defaults to 7 days ago; range capped at 90 days. |
to | string | no | End date (YYYY-MM-DD, UTC). Defaults to today; range capped at 90 days. |
limit | integer | no | Max posts to return. Defaults to 25, capped at 100. |
cursor | string | no | Pagination token from a previous response. |
search_inspirationSearch LinkedIn posts from other creators to use as inspiration.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | no | Free-text search over post content. Omit to browse top posts. |
lang | string | no | Filter by ISO 639-1 language code (e.g. en, fr). |
min_likes | integer | no | Only posts with at least this many likes. 0-1000; defaults to 50. |
min_comments | integer | no | Only posts with at least this many comments. 0-1000; defaults to 0. |
min_char_count | integer | no | Only posts with at least this many characters. 0-10000; defaults to 500. |
max_followers | integer | no | Only posts whose author has at most this many followers. Defaults to 100000. |
min_days_old | integer | no | Only posts at least N days old (0-365); defaults to 1. Overrides from/to. |
max_days_old | integer | no | Only posts from the last N days (0-365). Overrides from/to. |
from | string | no | Only posts on or after this date. Ignored if min/max_days_old is set. |
to | string | no | Only posts on or before this date. Ignored if min/max_days_old is set. |
limit | integer | no | Max posts to return. Minimum 1; defaults to 30. |
get_me once at the start of a session to load the user's voice, topics, language, and stats.search_inspiration to ground new content in what is currently working in the niche.create_draft, iterate with update_draft.schedule_draft (preferred) or publish_draft (immediate).get_analytics_overview and
get_post_analytics, and cross-reference with list_posts.A draft and a post are the same item at different stages of its life:
create_draft ─┐
├─> [ DRAFT ] ──schedule_draft──> [ scheduled ] ──(auto)──> [ sending ] ──> [ sent ]
update_draft ─┘ │ │
└──────publish_draft───────────┴──(immediate)──> [ sending ] ──> [ sent ]
[ scheduled ] ──unschedule──> [ DRAFT ]
list_drafts) and are the only editable stage.list_posts).unschedule moves a scheduled post back to drafts; a sent post cannot be un-sent.create_draft, update_draft).scheduled_for must be at least 2 minutes in the future, ISO 8601, UTC recommended.cursor for large result sets.publish_draft goes live immediately and delete_draft is permanent. Confirm intent
before calling either.https://mcp.taplio.com and that you completed the OAuth
browser step. Re-run /mcp (Claude Code) or reconnect the connector.401 / auth errors: your session may have expired or been revoked. Reconnect and re-authorize in the
browser.unschedule first; if it is
sent, it can no longer be changed.This repository documents the Taplio LinkedIn MCP Server. See CONTRIBUTING.md for how to report issues with the documentation or suggest improvements. For product support, contact Taplio.
This project is licensed under the terms of the MIT License. See LICENSE.
Be the first to review this server!
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption