postthatlater-mcp
v1.0.0
Published
MCP server for PostThatLater — schedule and manage social media posts from Claude Code
Maintainers
Readme
PostThatLater MCP Server
Schedule and manage social media posts from Claude Code — or any MCP-compatible AI assistant.
What you can do
- "Schedule a post about our sale on Mastodon and BlueSky for tomorrow at 9am"
- "Which post performed best last month?"
- "Did any posts fail this week?"
- "Move my 3pm post to 5pm"
- "Post this screenshot to LinkedIn right now"
- "Upload this image and schedule it with a caption on Instagram"
Installation
Claude Code (quickest)
Run this in your terminal, replacing the placeholder with your API key:
claude mcp add-json postthatLater '{"type":"stdio","command":"npx","args":["-y","postthatlater-mcp"],"env":{"PTL_API_KEY":"sk_ptl_your_key_here"}}'Then restart Claude Code and try: "List my connected social accounts"
Claude Desktop
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"postthatLater": {
"command": "npx",
"args": ["-y", "postthatlater-mcp"],
"env": {
"PTL_API_KEY": "sk_ptl_your_key_here"
}
}
}
}Restart Claude Desktop after saving.
Cursor / Windsurf / other MCP clients
Use the same npx -y postthatlater-mcp command with PTL_API_KEY set as an environment variable. Refer to your client's MCP documentation for the exact config format.
Getting an API key
- Sign in to PostThatLater
- Open Account Settings → API Keys
- Create a new key — copy the
sk_ptl_...value (shown only once)
Available tools
| Tool | Description |
|------|-------------|
| list_accounts | List connected social accounts — call this first to get account IDs |
| create_post | Schedule a post to one or more accounts |
| get_posts | List posts filtered by status, platform, or date range |
| get_post | Get full details of a single post including metrics |
| update_post | Edit the text or scheduled time of a pending post |
| delete_post | Permanently delete a pending post |
| publish_now | Publish a pending post immediately |
| upload_image | Upload an image by local path, URL, or base64 data |
| list_images | List previously uploaded images available for reuse |
| get_top_posts | Top posts ranked by engagement (last week / month / all time) |
| get_analytics | Posting health summary with engagement totals |
| get_platform_info | Character limits and capabilities per platform |
Example prompts
List my connected social accounts
Schedule a post saying "Happy Monday! 🚀" on my BlueSky account for
tomorrow at 9am UTC
What were my top 5 posts last month?
Post "We just launched a new feature!" to all my accounts right now
What's my posting success rate for March?
Move post #42 to 5pm today
Upload /home/me/screenshot.png and schedule it on LinkedIn tomorrow with
the caption "Shipping fast 🚀"
What's the character limit for Mastodon?
Show me all failed posts from this weekConfiguration
| Environment variable | Default | Description |
|---|---|---|
| PTL_API_KEY | (required) | Your API key (sk_ptl_...) |
| PTL_BASE_URL | https://postthatlater.com | Override for self-hosted or staging |
Tips for best results
- Get account IDs first — ask Claude to "list my accounts" before scheduling posts
- Tell Claude your timezone at the start of a session — all
scheduled_atvalues must be ISO 8601 UTC (e.g.2026-03-10T09:00:00Z) - Confirm before publishing — ask Claude to confirm details before using
publish_now - Check platform limits — use
get_platform_infowhen writing long posts; limits vary (Bluesky: 300, Mastodon: 500, LinkedIn: 3000) - Include alt text for images — most platforms display it; Claude will add it automatically when it knows what the image contains
Troubleshooting
PTL_API_KEY environment variable is not set
Re-run the setup command with your key. Verify with claude mcp get postthatLater (Claude Code) or check your config file.
PostThatLater API error (invalid_api_key)
The key may be revoked. Generate a new one in Account Settings → API Keys.
PostThatLater API error (subscription_required)
An active PostThatLater subscription is required to use the API.
Tools don't appear in Claude Code
Restart Claude Code after adding the server. Run claude mcp list to confirm it's configured.
Could not read file "..." (upload_image with a local path)
The MCP server reads the file directly — make sure the path is absolute and the file exists.
