Back to the catalog

PostLake

Post, schedule, reply and measure across X, LinkedIn, Instagram, TikTok, YouTube, Threads, Bluesky

Open source Repository Open in the app JSON README (API)

About

Post, schedule, reply and measure across X, LinkedIn, Instagram, TikTok, YouTube, Threads, Bluesky

Details

Kind
MCP servers
Topic
Social & content
Publisher
dev.postlake
Origin
official
Category
ferramentas
Transport
http
Version
1.4.0
Last push
2026-08-31T18:50:28Z
Repository state
ativo
License
MIT
Added
2026-08-29 03:01:30
Updated
2026-08-29 23:00:12
Origin id
dev.postlake/social

README

# PostLake — MCP server & agent skills for social media

**PostLake is the social media API for AI agents.** One integration to publish,
schedule, and measure across every network — X, LinkedIn, Instagram, TikTok,
Facebook, Threads, Bluesky, YouTube and Pinterest — with one normalised response
shape an agent can reason over instead of nine different error formats.

This repo holds the **agent skills** and documents the **hosted MCP server**.

- 🔌 **MCP server:** `https://api.postlake.dev/mcp` (streamable-http, OAuth)
- 📚 **Docs:** https://postlake.dev/docs/
- 🌐 **Site:** https://postlake.dev
- 📖 **For LLMs:** https://postlake.dev/llms.txt

---

## MCP configuration

PostLake is a **remote** MCP server — there is nothing to install, run, or
self-host. Point your client at the URL and approve once over OAuth:

```json
{
  "mcpServers": {
    "postlake": {
      "url": "https://api.postlake.dev/mcp"
    }
  }
}
```

> **Note:** PostLake is not launched with a local `command`. Any config that runs
> `npx` to start this server is incorrect — the server is hosted at the URL above.
> (The `npx skills add …` command further down installs the optional *agent
> skills*; it does not start an MCP server.)

---

## Quick start — MCP

Your agent never sees an API key; OAuth handles authorisation.

### Claude

```bash
claude mcp add postlake https://api.postlake.dev/mcp
```

Or in Claude Desktop: **Settings → Connectors → Add custom connector**.

### Cursor

`~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "postlake": { "url": "https://api.postlake.dev/mcp" }
  }
}
```

### Gemini CLI

```bash
gemini mcp add postlake https://api.postlake.dev/mcp
```

### VS Code / GitHub Copilot

**Agent mode → MCP servers → Add**, then paste the same URL.

### Header auth (for clients without OAuth)

```
POST https://api.postlake.dev/v1/mcp
Authorization: Bearer <your_api_key>
```

Then just ask:

> *"Post this photo to Instagram and LinkedIn, schedule a follow-up for Friday
> at 9am, and tell me which of last week's posts did best."*

---

## The toolset

A focused set — everything an agent needs to publish and reason about the result,
and nothing it doesn't. Account setup and connecting networks stay in the
dashboard, where a human belongs.

| Group | Tools |
|---|---|
| **Publish & schedule** | `create_post` · `edit_post` · `cancel_post` · `get_post` · `list_posts` |
| **Discover & validate** | `get_platform_capabilities` · `validate_post` · `get_publish_info` |
| **Channels & media** | `list_social_accounts` · `list_account_targets` · `list_profiles` · `upload_media` |
| **Analytics** | `get_analytics` · `get_post_analytics` |
| **Identity** | `whoami` |

**Agent-safe by design.** Publishing is idempotent — pass an `Idempotency-Key`
and a retrying or restarting agent can never double-post. Every post returns a
per-platform `state` and `url` in one shape, so there's no per-network branching.

---

## Agent skills

For coding agents (Claude Code, Cursor, Codex, Windsurf) that use file-based
skills rather than MCP:

```bash
npx skills add postlake/postlake-mcp --all
```

| Skill | What your agent can do |
|-------|------------------------|
| `postlake-accounts`  | List connected accounts; see what platforms are ready |
| `postlake-publish`   | Publish a post now to one or more platforms |
| `postlake-schedule`  | Schedule for later; list, reschedule, or cancel |
| `postlake-media`     | Upload an image or video and attach it to a post |
| `postlake-analytics` | Read per-post and cross-platform performance |

Set your key once:

```bash
export POSTLAKE_API_KEY="sk_live_…"
```

Create one at https://app.postlake.dev/app/keys.

---

## Three ways to connect

| | Best for | Auth |
|---|---|---|
| **MCP server** | Claude, Cursor, ChatGPT, Gemini, any MCP client | OAuth (no key exposed) |
| **Agent skills** (this repo) | Claude Code, Cursor, Codex, Windsurf | `POSTLAKE_API_KEY` |
| **REST API** | LangChain, CrewAI, AutoGen, OpenAI tools, any language | Bearer key |

REST base URL: `https://api.postlake.dev/v1` — see the
[full docs](https://postlake.dev/docs/) and per-framework guides for
[LangChain](https://postlake.dev/guides/langchain),
[CrewAI](https://postlake.dev/guides/crewai),
[AutoGen](https://postlake.dev/guides/autogen),
[Python](https://postlake.dev/guides/python) and
[Node.js](https://postlake.dev/guides/nodejs).

---

## Security

Agents authorise over OAuth, so an API key is never pasted into a chat or seen by
the model. Every agent you authorise appears under **Connected Apps** in your
dashboard — revoke any one and its access is cut off immediately.

## Pricing

Usage-based credits: **1 credit per post**, with a free tier and no card to start.
X costs more because it's the only network that charges per post.
See https://postlake.dev/pricing.

---

Listed in the [official MCP Registry](https://registry.modelcontextprotocol.io)
as `dev.postlake/social`.

Made by [CrumbleLake](https://postlake.dev). Issues and PRs welcome.

More