PerfectPost MCP Server
PerfectPost MCP Server
Description
PerfectPost is a LinkedIn content management platform that helps creators and professionals track their post performance, manage drafts, and optimize their content strategy.
This MCP server gives AI assistants read and write access to a user's PerfectPost account: published posts with engagement analytics, drafts lifecycle (create, edit, schedule), and LinkedIn profile data.
The server is deployed as a remote, hosted MCP endpoint: no local installation required. Authentication is handled via OAuth 2.0 (Authorization Code flow with PKCE) through the PerfectPost identity provider (Amazon Cognito). The server supports Dynamic Client Registration (DCR) and Client ID Metadata Documents (CIMD), so any compliant MCP client can connect automatically, with no manual configuration or prior registration.
MCP endpoint: https://mcp.perfectpost.social/mcp Transport: Streamable HTTP (JSON responses, stateless)
Features
- Post analytics: retrieve post performance metrics (impressions, likes, comments, shares, reposts) with configurable date ranges and get aggregate statistics summaries
- Post management: list, search, and read published LinkedIn posts; update metadata such as marketing objective, categories, and favorite flag
- Audience insights: discover who liked or commented on a specific post
- Drafts: list, read, create, update, and schedule drafts for LinkedIn publication; attach media (image, video, PDF) from a URL
- Profile: read the authenticated user's LinkedIn profile including name, headline, and follower statistics
Setup
Connect from Claude.ai
- Open Claude.ai > Settings > Connectors > Add custom connector
- Fill in the following fields:
- Name:
PerfectPost - Remote MCP server URL:
https://mcp.perfectpost.social/mcp
- Name:
- Click Add, then Connect: you will be redirected to the PerfectPost login page
- Sign in with your PerfectPost account and authorize the requested permissions
- Once authorized, Claude can access your PerfectPost data
The connection is automatic: Claude identifies itself via a Client ID Metadata Document (CIMD), no manual configuration is needed. If your version of Claude still asks for an OAuth Client ID under Advanced settings, enter
dnakgf4sbal93ukngisqgb3voand leave the Secret field empty.
Connect from Claude Code (CLI)
Add the following to your ~/.claude.json file (in the mcpServers section):
{
"mcpServers": {
"perfectpost": {
"type": "http",
"url": "https://mcp.perfectpost.social/mcp",
"oauth": {
"callbackPort": 6274
}
}
}
}
When launching Claude Code, type /mcp to initiate the connection. A browser window will open to complete the OAuth authentication flow. The callback port 6274 is required (identity provider constraint).
Connect from ChatGPT
The connection uses ChatGPT's developer mode (paid subscription required), from a computer:
- Enable developer mode: Settings > Security > Developer mode, turn the toggle on. The "high risk" warning is ChatGPT's standard message for any connector that is not in the OpenAI catalog.
- Open chatgpt.com/plugins and click the + button in the top right corner ("Create an app").
- In the "New plugin" form, fill in:
- Name:
PerfectPost MCP - Connection: "Server URL" with
https://mcp.perfectpost.social/mcp - Authentication:
OAuth(the OAuth settings are detected automatically from the URL)
- Name:
- Tick "I understand and want to continue", then click Create.
- Open the newly created plugin (Settings > Plugins > PerfectPost MCP), click Connect then Sign in with PerfectPost MCP. A PerfectPost login window opens (allow pop-ups for chatgpt.com if nothing opens): sign in with your PerfectPost credentials and accept the permissions.
- In a conversation, enable PerfectPost MCP and ask your question, for example "analyze my last 10 posts".
ChatGPT identifies itself automatically to the server via its Client ID Metadata Document (CIMD): no Client ID to enter.
Connect from Claude Desktop or other MCP clients
Add the following to your MCP client configuration:
{
"mcpServers": {
"perfectpost": {
"type": "http",
"url": "https://mcp.perfectpost.social/mcp",
"oauth": true
}
}
}
Claude Desktop, Dust and any compliant MCP client automatically retrieve their configuration through Dynamic Client Registration (DCR) or a Client ID Metadata Document (CIMD). No manual configuration or client ID is required: on first use, the client opens a browser window to complete the OAuth flow, and that's it. If your MCP client supports neither DCR nor CIMD, you can manually enter the legacy OAuth client ID: dnakgf4sbal93ukngisqgb3vo.
⚠️ The
mcp-remotepackage is not needed. Claude Code, Claude Desktop and Claude.ai natively support remote MCP servers with OAuth authentication. If you use an MCP client that only supports stdio connections, please contact support.
Authentication
The server implements OAuth 2.0 Authorization Code flow with PKCE as required by the MCP specification for remote servers.
Parameter | Value |
|---|---|
Authorization endpoint | |
Token endpoint | |
Scopes |
|
Client ID | Dynamic registration (DCR), CIMD URL, or legacy client ID |
Client type | Public (no client secret, PKCE required) |
A free PerfectPost account is sufficient to connect. Some advanced analytics features may require a paid plan. |
Tools
Read-only tools
Tool | Description |
|---|---|
| List published LinkedIn posts with pagination and date filters |
| Get the full content and engagement metrics for a single post |
| Full-text search across your published posts |
| Aggregate analytics over a time range (totals and top posts) |
| List people who liked a specific post |
| List people who commented on a specific post |
| Get your LinkedIn profile information |
| List your drafts with status and pagination filters |
| Get the full content and metadata of a specific draft |
All read-only tools are annotated with |
Write tools
Tool | Description |
|---|---|
| Create a new draft for LinkedIn publication |
| Update the content or metadata of an existing draft |
| Schedule a draft for publication at a specific date and time |
| Attach an image, video, or PDF to a draft from a URL |
| Attach an image shared in the conversation to a draft |
| Update metadata of a published post (objective, categories, favorite) |
All write tools are annotated with |
Examples
Example 1: Analyze your recent LinkedIn performance
User prompt:
"How did my LinkedIn posts perform last month? Show me the highlights and my best post."
What Claude does:
- Calls
get_posts_stats_summarywith a 30-day date range to retrieve aggregate metrics (total impressions, likes, comments, shares) and the list of top-performing posts - Calls
get_poston the top post to fetch its full text and detailed engagement stats - Presents a performance summary with key metrics and the content of the best-performing post
Tools used: get_posts_stats_summary, get_post
Example 2: Create and schedule a LinkedIn draft
User prompt:
"Write a LinkedIn post about the importance of personal branding for developers, and schedule it for next Tuesday at 8:30 AM Paris time."
What Claude does:
- Drafts the post content with a compelling hook, body, call-to-action, and relevant hashtags
- Calls
create_draftto save the post in PerfectPost - Calls
schedule_draftwith the draft ID and the ISO 8601 timestamp corresponding to next Tuesday 08:30 Europe/Paris - Confirms the scheduled date and time, and provides the draft ID for future reference
Tools used: create_draft, schedule_draft
Example 3: Discover who engages with your content
User prompt:
"Who liked and commented on my most popular post this year?"
What Claude does:
- Calls
get_posts_stats_summaryfor a year-to-date range to identify the top post by impressions - Calls
get_post_likersandget_post_commentersfor that post - Presents the list of people who engaged, highlighting anyone who both liked and commented
Tools used: get_posts_stats_summary, get_post_likers, get_post_commenters
Example 4: Search and repurpose past content
User prompt:
"Find my posts about AI and create a new draft that summarizes the key ideas."
What Claude does:
- Calls
search_postswith the query "AI" to find all relevant published posts - Reads through the results and identifies recurring themes and insights
- Calls
create_draftwith a new synthesized post that references the original ideas - Returns the draft for the user to review and edit
Tools used: search_posts, create_draft
Connection Requirements
A free PerfectPost account is required. You can create one at perfectpost.social.
No premium account, admin access, or special configuration is needed to use the MCP server. Some analytics features with extended history may be limited on free plans.
The MCP server works with any Claude platform that supports remote MCP connections (Claude.ai, Claude Desktop, Claude Code, Claude Mobile).
Privacy Policy
PerfectPost's privacy policy is available at: perfectpost.social/politique-de-confidentialite
The MCP server accesses only data that belongs to the authenticated user. No data is shared with third parties. OAuth tokens are never logged or stored by the MCP layer. The server is GDPR compliant.
Support
- Help center: help.perfectpost.fr
- Email: contact@perfectpost.fr
- Live chat: available on perfectpost.social
Response time is typically within one business day (Monday to Friday, Paris time).
Updated on: 04/09/2026
Thank you!