Guides

Hosted MCP server

Connect ChatGPT, Claude, and other MCP clients to your Postiv workspace: same API key, same scopes, interactive widgets in hosts that support MCP Apps.

The hosted MCP server exposes the same workspace automation surface as the Public API. It uses the same organization API key, the same scopes, and the same server-side services behind the public endpoints. The endpoint is https://postiv.ai/mcp (https://postiv.ai/api/mcp/mcp also works).

In hosts that support MCP Apps, such as claude.ai, tools render interactive widgets instead of plain text: a post editor card, an image preview, a carousel pager, and inspiration cards.

Want the illustrated setup first? Follow the step-by-step guide to connect Claude to LinkedIn, then return here for client-specific authentication and the complete tool reference.

Available tools

ToolScopeDescription
get_workspaceworkspace:readRead the connected workspace (name, slug) and which scopes this key has. Call first.
submit_feedbackfeedback:writeSend explicit feedback about Postiv or Bob to the product team.
add_knowledgeknowledge:writeAdd a text document to the workspace knowledge base for retrieval by Postiv's AI.
search_knowledgeknowledge:readSemantically search the workspace knowledge base before drafting, to ground content in real facts.
search_templatesposts:readSearch Postiv's proven post-writing templates (global + workspace custom).
search_inspirationinspiration:readSearch the moderated LinkedIn inspiration library by semantic query and/or exact filters; renders as a swipeable carousel in widget-capable hosts.
list_linkedin_profilesprofiles:readList connected LinkedIn profiles/company pages and their integration ids.
get_writing_styleprofiles:readRead the trained writing style for one profile (voice, structure, examples).
list_content_plansplans:readList Bob's weekly content plans for a profile, with pillar distribution.
get_content_plan_itemplans:readRead one plan item in full detail, including saved source material/research.
get_bob_planning_settingsplans:readRead Bob's status, cadence, pillar count, and current-week plan state for a profile.
update_bob_planning_settingsplans:writeUpdate Bob's posting cadence for a profile.
list_pillarsplans:readList a profile's recurring content pillars (summary only).
get_pillarplans:readRead one pillar's full content and 30-day performance.
list_team_briefsteam_briefs:readList team writing assignments and per-member progress.
get_team_briefteam_briefs:readRead one team brief's full instructions, deadline, and assignment progress.
create_team_briefteam_briefs:writeCreate a team writing assignment for every current workspace member (owners/admins only).
create_pillarplans:writeCreate a recurring content pillar for one LinkedIn profile.
update_pillarplans:writeUpdate an active content pillar while preserving system-owned learnings.
archive_pillarplans:writeSoft-delete a pillar from future weekly planning.
list_pending_approvalsapprovals:readList exact scheduled-post copy, refreshed media, carousel PDF, author/profile details, and approval history awaiting the API-key actor's decision.
approve_scheduled_postapprovals:writeRecord the API-key actor's approval without bypassing other approvers.
request_approval_changesapprovals:writeReturn a pending post to its author with revision feedback.
deny_scheduled_postapprovals:writeDeny an assigned scheduled post and prevent publishing.
create_scratchpad_itemscratchpad:writeSave a quick note/url/image into the org's shared scratchpad.
list_scratchpad_itemsscratchpad:readList all live scratchpad items.
update_scratchpad_itemscratchpad:writeEdit a scratchpad item's content and/or status.
delete_scratchpad_itemscratchpad:writePermanently delete a scratchpad item.
promote_scratchpad_itemscratchpad:write, knowledge:writePromote a scrap into a permanent org knowledge asset (deletes the scrap on success).
list_engage_postsengage:readLive-sync and list YOUR LinkedIn posts with Engage inbox comment activity.
get_engage_threadengage:readLive-refresh and load the full comment thread for one of YOUR posts.
sync_engage_commentsengage:readExplicitly live-sync Engage comments from LinkedIn for recent posts.
reply_to_engage_commentengage:writePost a LinkedIn reply to a comment on one of YOUR posts.
dismiss_engage_commentengage:writeMark a comment as no-reply-needed in the Engage inbox (local only).
react_to_engage_commentengage:writeAdd, replace, or clear a LinkedIn reaction on an Engage inbox comment.
suggest_engage_replyengage:writeDraft a short AI reply suggestion (does not post).
get_comment_plug_configprofiles:readRead default Comment Plug settings for one or all profiles.
set_comment_plug_configposts:scheduleSet a profile's default Comment Plug (auto first-comment) used by future scheduled posts.
create_postposts:writeCreate a LinkedIn post draft; humanizer is opt-in (default false) and hook-lint always runs before saving.
list_postsposts:readList posts filtered by status/profile/search, with 300-char content previews.
get_postposts:readRead one post's full current content and status.
update_postposts:writeUpdate a draft's title/content/profile; fails on scheduled/published posts.
schedule_postposts:scheduleQueue a draft for publishing (>=2min in the future); waits for approvers if configured. Also accepts mediaSource with exactly one url, assetId, imageId, or carouselId for PDF/video/image/carousel/infographic selection through the existing publish queue. Do not combine mediaSource with mediaType/mediaUrls/carouselId.
unschedule_postposts:scheduleCancel a scheduled post, returning it to draft.
reschedule_postposts:scheduleMove a scheduled post to a new time.
generate_post_imageimages:writeGenerate a brand-new AI image for a post via style preset or freeform prompt (MCP-ONLY: no REST equivalent exists). Returns a 7-day signed URL + markdown image line to relay.
edit_post_imageimages:writeEdit an existing image with a natural-language instruction, stacking a new version.
create_carouselposts:writeCreate a multi-slide carousel from a structured content outline (content only, never HTML).
create_infographicposts:writeCreate a single-canvas infographic (content only, never HTML), publishes as an image post.
render_carouselposts:writeRender slide PNGs + PDF (carousel) or canvas PNG (infographic) for the latest version; idempotent.
get_carouselposts:readRead one carousel/infographic's slide summaries and render/PDF readiness.
edit_carousel_slideposts:writeEdit one slide (or the infographic canvas) with a natural-language instruction.
list_analytics_accountsanalytics:readList tracked LinkedIn analytics accounts, each mapping to one profile.
get_analytics_summaryanalytics:readCached KPI totals for one account or 'all', over a period or date range.
get_performance_overviewanalytics:readCached day-by-day impressions/engagements time series.
get_top_postsanalytics:readTop posts by date/engagements/impressions or outlier-vs-baseline sorts.
get_post_analyticsanalytics:readCached analytics for one specific post.
list_mediaposts:readBrowse reusable images, PDFs, videos, carousels, and infographics. GET /api/public/media supports type, query, limit, and offset. Results include image attachInput, scheduleInput for all formats, and signed preview/file URLs.
attach_post_mediaposts:write, images:writeAttach an image using exactly one url, assetId, or imageId and postId, without scheduling or AI generation. POST /api/public/posts/:id/media. Uses existing image attachment storage. Remote raster images: 10MB. Other formats use schedule_post.mediaSource, matching the editor scheduling flow.
detach_post_mediaposts:writeRemove a draft image attachment without deleting its library file. DELETE /api/public/posts/:id/media.

ChatGPT (developer mode, web only)

ChatGPT custom MCP apps currently run on chatgpt.com, not in the ChatGPT desktop app. Availability depends on your ChatGPT plan, workspace settings, and role. ChatGPT does not accept a custom Authorization header here, so use Postiv's secret URL and choose No Authentication. The URL contains your API key; treat it like a password.

Secret MCP URL
https://postiv.ai/mcp/pk_postiv_...
  1. 1On chatgpt.com, open Settings, then Security and login, and turn on Developer mode.
  2. 2Open Plugins, select the plus button, and create a developer-mode app named Postiv.
  3. 3Paste the secret MCP URL, choose No Authentication, then select Scan Tools and wait for the Postiv tools to appear before creating the app.
  4. 4Start a new chat, open the plus menu, choose Developer mode, and select Postiv for that conversation. Saving the app alone does not enable it in existing chats.

See OpenAI's current ChatGPT developer mode requirements if Developer mode or the Plugins plus button is unavailable.

claude.ai (custom connector)

claude.ai custom connectors can only take a URL, they cannot send a header, so the API key goes in the path instead of an Authorization header. Treat this URL as a secret, the same as the key itself.

Connector URL
https://postiv.ai/mcp/pk_postiv_...
  1. 1In claude.ai, go to Settings, then Connectors.
  2. 2Click "Add custom connector".
  3. 3Paste the URL above with your own key in it.
claude.ai Settings, Connectors page
claude.ai Add custom connector dialog with the Postiv URL pasted

Claude Code

Terminal
claude mcp add --transport http postiv https://postiv.ai/mcp \
  --header "Authorization: Bearer pk_postiv_..."

Generic Streamable HTTP client

mcp.json
{
  "postiv": {
    "url": "https://postiv.ai/mcp",
    "headers": {
      "Authorization": "Bearer pk_postiv_..."
    }
  }
}

Claude Desktop with mcp-remote

claude_desktop_config.json
{
  "mcpServers": {
    "postiv": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://postiv.ai/mcp",
        "--header",
        "Authorization: Bearer pk_postiv_..."
      ]
    }
  }
}