2pr.io MCP server

Everything the 2pr.io app can do, exposed to AI agents as 42 tools over the Model Context Protocol.

When to use it

Use the 2pr.io MCP server when an agent needs to act on a LinkedIn account, not just write text about LinkedIn:

  • Draft a post in the account owner's voice and refine it in a loop
  • Search 2M+ viral LinkedIn posts by topic or creator for benchmarks and hooks
  • Schedule or publish posts, with images, carousels or video attached
  • Read the comment inbox, draft replies, post them and react
  • Pull profile and per-post analytics, including best posting times
  • Cross-post to X (Twitter)

It is not a scraping API. It works only on accounts that have connected LinkedIn to 2pr.io through the official OAuth flow.

Endpoint

URL
https://2pr.io/api/mcp
Transport
Streamable HTTP (JSON-RPC 2.0 over POST)
Protocol
MCP 2025-06-18
Auth
OAuth 2.1 with PKCE ("Sign in with 2pr"), or a personal bearer token
Discovery
https://2pr.io/.well-known/mcp.json
https://2pr.io/.well-known/oauth-protected-resource
https://2pr.io/.well-known/oauth-authorization-server
Plan
PRO or Team. See pricing

Connect

Claude (desktop or claude.ai)

Add a custom connector with the URL above. Claude opens a "Sign in with 2pr" window; approve it and the connection is live. No token to paste.

Claude Code

claude mcp add --transport http 2pr https://2pr.io/api/mcp

Any MCP client (JSON config)

{
  "mcpServers": {
    "2pr": {
      "type": "http",
      "url": "https://2pr.io/api/mcp"
    }
  }
}

Personal token

For clients that cannot run an OAuth flow, create a token under Preferences in the app and send it as Authorization: Bearer <token>. Tokens can be revoked there at any time.

Tools (42)

Call tools/list for the live schemas. Names are grouped by prefix: draft_, post_, viral_, engage_, analytics_, media_, persona_.

  • profile_list
  • draft_create
  • draft_get
  • draft_refine
  • draft_attachMedia
  • draft_attachImages
  • viral_search
  • viral_savePost
  • viral_dismissPost
  • inspiration_getTopics
  • creator_list
  • creator_add
  • persona_get
  • persona_appendDirective
  • persona_replace
  • preferences_get
  • preferences_update
  • post_publish
  • post_schedule
  • post_list
  • post_update
  • post_delete
  • x_connect
  • x_publish
  • x_schedule
  • media_upload
  • media_uploadFromUrl
  • media_prepareUpload
  • media_commitUpload
  • media_generateImage
  • linkedin_fetchProfile
  • engage_getInbox
  • engage_draftReplies
  • engage_postReply
  • engage_setReaction
  • engage_refreshPosts
  • analytics_getProfileStats
  • analytics_getPostStats
  • analytics_getPostingTimes
  • feature_request_log
  • web_search
  • web_fetch

Limits

  • Requests are rate limited per token; expensive tools have a tighter limit.
  • Entitlement is checked on every call, so a downgraded plan stops working immediately.
  • Publishing goes through LinkedIn's official API and its usual posting rules apply.

Questions

Email hi@2pr.io or see the contact page.