reeplManage your LinkedIn presence with Reepl -- create drafts, publish and schedule posts, manage contacts and collections, generate AI images, and maintain your voice profile. Requires a Reepl account (reepl.io).
Full LinkedIn content management through Reepl's MCP integration. Write posts in your authentic voice, schedule content, manage drafts, generate AI images, browse your saved content library, and maintain contacts -- all from your AI assistant.
# 1. Visit the OAuth page to connect your Reepl account
https://mcp.reepl.io/oauth/authorize
# 2. Log in with your Reepl credentials (Google or email)
# 3. Copy the API key shown after authorization
# 4. Configure the MCP server endpoint
https://mcp.reepl.io/mcp?key=YOUR_API_KEY
If you receive authentication errors at any point, re-authenticate at the URL above.
| Tool | Purpose |
|------|---------|
| create_draft | Save a new LinkedIn post draft |
| get_drafts | List and search your drafts |
| update_draft | Edit an existing draft |
| delete_draft | Remove a draft |
| publish_to_linkedin | Publish a post to LinkedIn immediately |
| schedule_post | Queue a post for future publishing |
| update_scheduled_post | Change time, content, or settings of a scheduled post |
| get_published_posts | View your published LinkedIn posts |
| get_scheduled_posts | View your scheduled post queue |
| get_user_profile | Get your Reepl account info |
| get_voice_profile | Read your voice profile (writing style patterns) |
| update_voice_profile | Update voice profile with learned patterns |
| get_contacts | Browse saved LinkedIn contacts |
| get_lists | Browse your contact lists |
| get_collections | Browse your saved post collections |
| get_saved_posts | Read posts from a specific collection |
| get_templates | Browse your post templates and ideas |
| generate_image | Generate an AI image for a post (requires Gemini API key) |
All LinkedIn content MUST be plain text. Never use markdown formatting like bold, italic, or # headings. LinkedIn does not render markdown -- it will appear literally in the feed, looking AI-generated. Use line breaks, spacing, and natural punctuation for structure instead.
LinkedIn posts have a 3,000 character limit.
Save a post idea for later editing or publishing.
{
"content": "Just wrapped up a deep dive into how AI is reshaping B2B sales.\n\nHere are 3 things I learned...",
"title": "AI in B2B Sales",
"mediaUrls": ["https://example.com/image.jpg"]
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| content | Yes | Post text (plain text only) |
| title | No | Draft title for organization |
| mediaUrls | No | Array of image URLs to attach |
List and search your saved drafts.
{
"search": "AI sales",
"limit": 10
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| limit | No | Number of drafts to return (default: 20) |
| search | No | Filter drafts by keyword |
Edit an existing draft's content, title, or images.
{
"draft_id": "abc-123",
"content": "Updated post content here...",
"title": "New Title"
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| draft_id | Yes | ID of the draft to update |
| content | No | Updated post text |
| title | No | Updated title |
| mediaUrls | No | Updated image URLs (replaces existing) |
{
"draft_id": "abc-123"
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| draft_id | Yes | ID of the draft to delete |
Publish a post to LinkedIn immediately. This action is irreversible -- always confirm with the user before calling.
{
"content": "Excited to share that we just hit 10,000 users on Reepl!\n\nBuilding in public has been one of the best decisions we made.\n\nHere's what I'd tell founders who are hesitant to share their journey...",
"visibility": "PUBLIC"
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| content | Yes | Post text (plain text only, max 3000 chars) |
| mediaUrls | No | Array of image URLs to include |
| visibility | No | PUBLIC (default) or CONNECTIONS |
Queue a post for future publishing. Times are rounded to 15-minute intervals.
{
"content": "Monday motivation: the best time to start was yesterday. The second best time is now.",
"scheduledFor": "2026-02-17T08:00:00Z",
"visibility": "PUBLIC"
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| content | Yes | Post text (plain text only, max 3000 chars) |
| scheduledFor | Yes | ISO 8601 timestamp (e.g. 2026-02-17T08:00:00Z) |
| mediaUrls | No | Array of image URLs |
| visibility | No | PUBLIC (default) or CONNECTIONS |
Scheduling tips:
Change the time, content, visibility, or images on a post that's already scheduled.
{
"post_id": "post-456",
"scheduledFor": "2026-02-18T12:30:00Z",
"content": "Updated content for the scheduled post..."
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| post_id | Yes | ID of the scheduled post |
| scheduledFor | No | New ISO 8601 timestamp |
| content | No | Updated post text |
| visibility | No | Updated visibility |
| mediaUrls | No | Updated image URLs (replaces existing) |
View the user's published LinkedIn posts.
{
"limit": 10
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| limit | No | Number of posts to return (default: 20) |
View posts currently queued for future publishing.
{
"limit": 10
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| limit | No | Number of posts to return (default: 20) |
Returns the user's name, email, and LinkedIn URL. No parameters required.
Read the user's voice profile -- writing style patterns learned from their published posts. No parameters required.
Returns:
userInstructions -- guidelines the user has set (topics to avoid/emphasize, brand keywords, custom rules, writing samples)generatedProfile -- LLM-learned patterns (tone dimensions, vocabulary preferences, hook styles, structure patterns, anti-patterns)allowAutoUpdate -- whether the generated profile can be updated automaticallyisActive -- whether the voice profile is activeAlways read the voice profile before generating content. This is the key to writing posts that sound like the user, not like an AI.
Update the voice profile with newly learned patterns after analyzing the user's posts.
{
"generatedProfile": {
"schema_version": "1.0",
"tone": { "primary": "conversational-authoritative" },
"vocabulary": { "signature_phrases": ["here's the thing", "let me break this down"] },
"structure": { "hook_patterns": [{ "type": "bold-statement" }, { "type": "question" }] },
"anti_patterns": { "never_do": ["use corporate jargon", "start with 'I'm excited to announce'"] }
}
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| allowAutoUpdate | No | Only change if user explicitly requests |
| isActive | No | Toggle voice profile on/off |
| userInstructions | No | User-controlled guidelines -- only modify if user explicitly asks |
| generatedProfile | No | LLM-learned patterns from analyzing posts |
Important: Before updating generatedProfile, always check that allowAutoUpdate is true. If the user has locked their profile, do not update it.
Browse saved LinkedIn contacts and profiles.
{
"search": "product manager",
"limit": 20
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| limit | No | Number of contacts (default: 20) |
| search | No | Filter by name, headline, or keyword |
Browse the user's contact lists (curated groups of contacts).
{
"search": "leads",
"limit": 10
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| search | No | Filter lists by name |
| limit | No | Number of lists (default: 20) |
Browse saved post collections (groups of bookmarked LinkedIn posts).
{
"search": "inspiration",
"limit": 10
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| search | No | Filter collections by name |
| limit | No | Number of collections (default: 20) |
Read posts from a specific collection. Use get_collections first to find the collection ID.
{
"collectionID": "col-789",
"search": "storytelling",
"limit": 10
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| collectionID | Yes | The collection to fetch from |
| limit | No | Number of posts (default: 20) |
| search | No | Filter posts by keyword |
Browse post templates and content ideas saved in the user's library.
{
"search": "product launch",
"limit": 10
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| limit | No | Number of templates (default: 20) |
| search | No | Filter by keyword |
| catalogID | No | Filter by specific catalog |
Generate an AI image for a LinkedIn post using Google Gemini. Requires the user to have linked their Gemini API key in Reepl settings.
{
"style": "infographic",
"postContent": "3 ways AI is changing B2B sales in 2026..."
}
| Parameter | Required | Description |
|-----------|----------|-------------|
| style | Yes | Image style (see table below) |
| postContent | No | Post content for context |
| customPrompt | If style is custom | Your own image prompt |
Available styles:
| Style | Output |
|-------|--------|
| infographic | Professional data visuals and charts |
| minimal-illustration | Clean line art illustrations |
| bold-text | Typography and quote cards |
| screenshot-social-proof | Mockup screenshots |
| comic-storyboard | Comic-style panels |
| realistic-portrait | Photorealistic scenes |
| diagram-flowchart | Diagrams and process flows |
| custom | Your own prompt (requires customPrompt) |
Always show the generated image to the user for approval before publishing. Pass the returned URL as mediaUrls when calling publish_to_linkedin or schedule_post.
1. get_voice_profile -- read their writing style
2. Ask user for topic -- what do they want to write about?
3. Write draft (plain text!) -- match their tone, hooks, vocabulary
4. Show draft, get feedback -- iterate until they're happy
5. create_draft OR publish -- save or go live
1. get_voice_profile -- read writing style
2. get_templates -- browse content ideas
3. get_saved_posts -- browse inspiration from collections
4. Write 3-5 posts -- vary topics, hooks, formats
5. schedule_post (x5) -- spread across Mon-Fri at varied times
1. get_collections -- find the right collection
2. get_saved_posts -- browse posts in it
3. Pick a post, rewrite it -- new angle, user's voice
4. create_draft or publish -- save or go live
1. Write the post content first
2. generate_image -- use post content as context
3. Show the image to user -- get approval
4. publish_to_linkedin -- pass image URL in mediaUrls
1. get_published_posts -- fetch recent posts (limit: 20)
2. Analyze patterns -- tone, hooks, vocabulary, structure
3. get_voice_profile -- check if allowAutoUpdate is true
4. update_voice_profile -- save learned patterns to generatedProfile
| Error | Cause | Solution |
|-------|-------|----------|
| Session expired or invalid | OAuth token expired | Re-authenticate at https://mcp.reepl.io/oauth/authorize |
| Content exceeds 3000 character limit | Post too long | Shorten the content |
| draft_id is required | Missing draft ID | Call get_drafts first to find the ID |
| collectionID is required | Missing collection ID | Call get_collections first to find the ID |
| GEMINI_NOT_LINKED | No Gemini API key | User must link key at https://app.reepl.io/settings/ai-models-api |
| Rate limit exceeded | Too many requests | Wait a moment and retry |
| Resource not found | Invalid ID | The draft/post/collection may have been deleted |
get_voice_profile to understand the user's writing style. Posts should sound like them, not like an AI.bold, no italic, no # headings. LinkedIn renders these literally.publish_to_linkedin or schedule_post. These affect the user's real LinkedIn profile.allowAutoUpdate is false, do not modify generatedProfile. The user has intentionally locked their voice profile.AI Usage Analysis
Analysis is being generated⦠refresh in a few seconds.
Fetch and read transcripts from YouTube videos. Use when you need to summarize a video, answer questions about its content, or extract information from it.
Fetch and summarize YouTube video transcripts. Use when asked to summarize, transcribe, or extract content from YouTube videos. Handles transcript fetching via residential IP proxy to bypass YouTube's cloud IP blocks.
Browse, search, post, and moderate Reddit. Read-only works without auth; posting/moderation requires OAuth setup.
Interact with Twitter/X β read tweets, search, post, like, retweet, and manage your timeline.
LinkedIn automation via browser relay or cookies for messaging, profile viewing, and network actions.
Search YouTube videos, get channel info, fetch video details and transcripts using YouTube Data API v3 via MCP server or yt-dlp fallback.