PostSider
Overview
Description from the maker (original English)
Social media calendar for AI agents: read channels, create drafts, request approval.
PopNx MCP’s three pillars
These three are never merged into one score: opinions, measurements and popularity are different things.
- User voiceiNo reviews yetReviews open together with accounts in a later step
- Our basic checksi1 of 1 passedChecked from public information; code not scanned yet
- UsageiVery new↓ 37/wk · ★ –
What you can do with it
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
- Connection: Runs on your computer
- Transport: stdio
- Category: Marketing & social media
- You need to fill in: POSTSIDER_API_KEY
Install
Pick the AI app you use, then copy the settings.
Before you install
- Basic checks: 1 of 1 passed
- Runs on your computer with your user’s permissions (files, network, apps).
- You fill in yourself:
POSTSIDER_API_KEY,POSTSIDER_API_URL
Values marked secret are keys to your account. Never share them or paste them into a chat.
You need
- npmNode.js installed (for the npx command)
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"postsider": {
"command": "npx",
"args": [
"-y",
"@postsider/mcp"
],
"env": {
"POSTSIDER_API_KEY": "your-value",
"POSTSIDER_API_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add postsider --env POSTSIDER_API_KEY=your-value --env POSTSIDER_API_URL=your-value -- npx -y @postsider/mcpFill in the empty values before running it.
Or copy the settings yourself
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"postsider": {
"command": "npx",
"args": [
"-y",
"@postsider/mcp"
],
"env": {
"POSTSIDER_API_KEY": "your-value",
"POSTSIDER_API_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Or copy the settings yourself
Paste into .vscode/mcp.json in your project
{
"servers": {
"postsider": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@postsider/mcp"
],
"env": {
"POSTSIDER_API_KEY": "your-value",
"POSTSIDER_API_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
Values you fill in
- Organization API key from PostSider under Settings -> API.
POSTSIDER_API_URLenvInstance base URL. Defaults to https://api.postsider.com and must be HTTPS for non-local hosts.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
What it can do
Runs on your computer; the tool list appears in your AI app after you install it.
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified with the GitHub account lumizone, which owns the repo
- … Not checked yet
Still maintained
We have not read this repo from GitHub yet
- … Not checked yet
Has a licence
We have not read this repo from GitHub yet
- – Not applicable
Endpoint responds
This one runs on your computer; there is no internet endpoint
- – Not applicable
Sign-in with OAuth
Runs on your computer and uses local settings instead
- … Not checked yet
No hidden instructions in tool descriptions
Runs on your computer; we can only read tool lists from internet endpoints
Compared with others in Marketing & social mediai
- More stars than 0% of the other 3696 servers in this category
- Published to the registry more recently than 38% of the other 3696 servers in this category
- Basic checks equal to or better than 100% of the other 3696 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is PostSider safe?
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
You need to fill in: POSTSIDER_API_KEY
Does it run on my computer or in the cloud?
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
Is it still maintained?
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry last month.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
What can I use instead?
In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
Alternatives
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Google Analytics MCP
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
BibiGPT YouTube Video Summarizer
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
README from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
@postsider/mcp
MCP (Model Context Protocol) server that gives AI agents selected access to a PostSider instance through its public API. Works with Claude Code, Claude Desktop, Codex, Cursor, and any MCP-compatible client. Talks to cloud (api.postsider.com) or a self-hosted instance, authenticated with an organization API key.
PostSider is a shared operational calendar: the agent prepares and schedules work, and a human reviews what actually goes live.
Install
1. Create an API key
In PostSider, open Settings -> API and generate an organization API key.
2. Connect your client
Claude Code:
claude mcp add postsider -e POSTSIDER_API_KEY=your_api_key -- npx -y @postsider/mcp
Codex CLI and its IDE extension share MCP configuration. Use one of these options for a server named postsider.
Hosted MCP with OAuth (no organization key pasted into a config file):
codex mcp add postsider --url https://mcp.postsider.com/mcp
Complete the PostSider sign-in and permission flow in your client.
Alternatively, run the local MCP package over stdio with an organization API key stored in your environment or secret manager:
codex mcp add postsider --env POSTSIDER_API_KEY=your_api_key -- npx -y @postsider/mcp
The local organization key has broad access to your workspace. Never commit it to a repository or include it in an agent prompt. For a guided walkthrough and a first safe draft, see https://postsider.com/developers/.
Claude Desktop or any generic MCP client:
{
"mcpServers": { "postsider": { "command": "npx", "args": ["-y", "@postsider/mcp"], "env": { "POSTSIDER_API_KEY": "your_api_key" } } } }
3. Verify with a read-only prompt
Ask your agent, and confirm it answers without changing anything:
List my connected PostSider channels. Do not create or modify anything.
Then:
Show my PostSider calendar for the next 14 days. Do not create or modify anything.
4. Only then prepare a draft
The MCP create-post tool defaults to draft, not schedule or now. posts:write is a powerful permission: it does not inherently require human approval for each publication. An agent must not schedule or publish without explicit authorization for the content, channel and timing. Use postsider_get_post to verify a write before reporting success.
Create one draft only for the selected channel. Show me the exact content first. Do not publish it.
From source
pnpm --filter @postsider/mcp build
Then point your client at the built entrypoint:
{
"mcpServers": { "postsider": { "command": "node", "args": ["/absolute/path/to/apps/mcp/dist/index.js"], "env": { "POSTSIDER_API_KEY": "your_api_key", "POSTSIDER_API_URL": "https://api.postsider.com" } } } }
Claude Code plugin
The package directory is also a Claude Code plugin: .claude-plugin/plugin.json declares the API key as a secret user setting, .mcp.json starts this server at the pinned released version, and skills/ contains focused workflows for calendar review, content publishing, approvals, analytics, and agency operations. The repository root is a plugin marketplace, so the plugin installs from the repository directly:
Skill budget is full (5/5). The remote server advertises the skills it
bundles through OpenAI's skills extension, which supports at most 5. All
five slots are taken, so adding a new skill requires retiring or merging an
existing one (
loadSkillCatalogfails closed above 5).
claude plugin marketplace add lumizone/postsider
claude plugin install postsider@postsider
Installation stores the key outside the plugin: pass it at install time with --config api_key=your_api_key, or set it afterwards with /plugin configure postsider@postsider inside Claude Code. The key is never written into the plugin directory.
What the agent can do
40 tools on the hosted server, 41 on the local stdio server, and 42 on the local stdio server when you opt in to approval decisions (see Configuration), all prefixed postsider_.
Read
| Tool | Action |
|---|---|
postsider_list_channels | List connected social channels (ids, names, platforms). Call this first to get channel ids. |
postsider_get_agency_overview | Org-wide overview: clients, channels, queued, drafts, published, errors, pending approvals. |
postsider_get_customer_report | The same report scoped to one customer. |
postsider_list_groups | List channel groups. |
postsider_list_media | Browse the media library (paged, searchable) to reuse files already uploaded. |
postsider_get_channel_rules | Platform rules, max length and required settings schema for one channel. Call before posting to a new channel. |
postsider_get_queue_plan | A channel's recurring posting slots and timezone. |
postsider_get_smart_slots | Best upcoming times to post on a channel, avoiding booked slots. |
postsider_get_content_library | Saved hashtag groups, caption templates and UTM presets. |
postsider_find_slot | Next free queue slot for a channel, in UTC. |
postsider_list_posts | List posts in a date range, filterable by state (e.g. ERROR) and channel, paged. |
postsider_get_post | Full post details, including the publish error if any. |
postsider_get_post_activity | Who did what to a post and when (verified actor, approvals, publish and retry events), newest first. |
postsider_get_post_missing_fields | Per-channel validation problems, so they can be fixed before publishing. |
postsider_get_post_analytics | Analytics for a single post. |
postsider_get_channel_analytics | Account-level analytics for a channel. |
postsider_get_notifications | Recent notifications: publish failures, channels needing reconnection. |
postsider_get_publishing_state | Whether publishing is active or paused for the organization. |
postsider_get_approval_status | Approval status of a draft, including a reviewer note when rejected. |
Write
| Tool | Action | Risk |
|---|---|---|
postsider_create_post | Create a post as a draft, a scheduled post, or an immediate publish across channels. | Creates content and can publish |
postsider_update_post | Edit an existing post in place: text, media, date, settings, first comment. Not for published or pending-approval posts. | Changes content, re-arms a scheduled post |
postsider_update_post_status | Move a post between draft and schedule. | Reversible |
postsider_retry_failed_posts | Re-queue only the failed destinations of a post group; unknown-outcome rows need explicit confirmation. | Re-publishes failed rows |
postsider_request_approval | Send a draft into the human approval queue. | Reversible |
postsider_upload_media_from_url | Import media into the library from a public HTTPS URL. | Creates media |
postsider_upload_media_base64 | Upload an image or MP4 you hold as bytes (base64: 25 MB on the local server, 2.5 MB over the remote connection). No public URL needed. | Creates media |
postsider_upload_media_from_file | Local stdio server only. Upload an image or video (jpg, png, gif, webp, avif, bmp, tiff, mp4, mov, webm, mkv; up to 500 MB) from a file path on your own machine. Other file types are refused before being read. | Creates media |
postsider_decide_approval | Local stdio server only, opt-in. Approve or reject the current stage of a pending approval as the API key. Registered only when POSTSIDER_MCP_ALLOW_APPROVAL_DECISIONS=true; never on the hosted server. Needs the approvals:decide scope on the key, which a key never has by default. A key cannot decide an approval it requested or whose post it created. | Schedules the post on a final approval |
postsider_connect_channel | Get the sign-in link to connect or reconnect a social account (the user approves it on the platform). Needs channels:write. | Starts a connection |
postsider_set_channel_enabled | Switch a channel on or off. Needs channels:write and an admin role. | Reversible |
postsider_disconnect_channel | Disconnect a channel; unpublished posts become drafts. Needs channels:write. | Destructive |
postsider_set_queue_plan | Replace a channel's posting slots ({time, days?}: minutes from midnight, optional weekdays 0-6). Read the plan first, it is replaced whole. Needs channels:write and an admin role. | Replaces settings |
postsider_set_channel_customer | Assign a channel to a client by name. Needs channels:write and an admin role. | Reversible |
postsider_save_library_item | Create or update a hashtag group, caption template or UTM preset. | Creates content |
postsider_delete_library_item | Delete a library item. | Destructive |
postsider_duplicate_post | Copy a post as a new draft, optionally onto another channel. | Creates a draft |
postsider_check_policy | Dry run of the workspace policies for a post you are about to create: effect (ALLOW, REQUIRE_APPROVAL, BLOCK), matched rule names and whether this key may do it. Writes nothing. Needs posts:read. | Read only |
postsider_check_post | AI check of draft text for up to 3 platforms (uses the monthly AI allowance). | Uses AI quota |
postsider_rewrite_post | AI rewrites of a text in a chosen tone (uses the monthly AI allowance). | Uses AI quota |
postsider_delete_media | Delete a media file from the library and storage. | Destructive |
postsider_delete_post | Permanently delete a post and every other channel version of it (one group). Read the post first. | Destructive |
postsider_pause_publishing | Emergency stop for the whole organization. Resuming is human-only. | Destructive |
Access scopes (remote server)
| Scope | Allows |
|---|---|
posts:read | Every read tool. |
posts:write | Posts, media, library, duplication and AI checks. |
channels:write | Connecting, enabling, disabling, re-timing, re-assigning and disconnecting channels. Granted separately so an agent that may only schedule posts cannot reconfigure the workspace. Connections made before this scope existed need to be reconnected to get it. |
Billing, team and roles, API keys, MFA, account deletion and resuming a paused workspace are deliberately not available to agents; they stay in the dashboard.
Every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint explicitly, so a client can tell a read from a kill switch.
For the exact API endpoint/scope matrix, a no-publication draft → readback → schedule → status test and the Claude/Codex/Cursor verification checklist, see API & MCP trust checklist.
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
POSTSIDER_API_KEY | yes | - | Organization API key (Settings -> API) |
POSTSIDER_API_URL | no | https://api.postsider.com | Instance base URL |
POSTSIDER_MCP_ALLOW_APPROVAL_DECISIONS | no | unset (off) | Local stdio server only. Exactly true registers postsider_decide_approval. Anything else leaves it out. |
POSTSIDER_API_URL must be HTTPS. Plain HTTP is accepted only on loopback (localhost, 127.0.0.1, [::1]) for local development.
For a self-hosted instance, point POSTSIDER_API_URL at where the public API is served. Behind the bundled nginx the API lives under /api, so use your domain plus /api, e.g. https://social.example.com/api. The server appends /public/v1 to whatever you set.
Safety
- The API key is read from the environment and sent only to the configured PostSider API URL. It is never printed, logged, or included in an error.
- Credentials embedded in
POSTSIDER_API_URLare rejected. - Redirects are refused rather than followed: a redirect would move an
Only the beginning is shown; read the rest in the repo