New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

@postsider/mcp

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@postsider/mcp

PostSider MCP server - gives AI agents access to the PostSider social media platform over its public API (list channels, review the calendar, create drafts, request approval, analytics, media).

bootstrap
Source
npmnpm
Version
0.0.0-bootstrap.0
Version published
Weekly downloads
274
Maintainers
1
Weekly downloads
 
Created
Source

@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

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

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/postsider-workflow/SKILL.md teaches the read-first, draft-first workflow. The repository root is a plugin marketplace, so the plugin installs from the repository directly:

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

19 tools, all prefixed postsider_.

Read

ToolAction
postsider_list_channelsList connected social channels (ids, names, platforms). Call this first to get channel ids.
postsider_get_agency_overviewOrg-wide overview: clients, channels, queued, drafts, published, errors, pending approvals.
postsider_get_customer_reportThe same report scoped to one customer.
postsider_list_groupsList channel groups.
postsider_find_slotNext free queue slot for a channel, in UTC.
postsider_list_postsList posts in a date range.
postsider_get_postFull post details, including the publish error if any.
postsider_get_post_missing_fieldsPer-channel validation problems, so they can be fixed before publishing.
postsider_get_post_analyticsAnalytics for a single post.
postsider_get_channel_analyticsAccount-level analytics for a channel.
postsider_get_notificationsRecent notifications: publish failures, channels needing reconnection.
postsider_get_publishing_stateWhether publishing is active or paused for the organization.
postsider_get_approval_statusApproval status of a draft, including a reviewer note when rejected.

Write

ToolActionRisk
postsider_create_postCreate a post as a draft, a scheduled post, or an immediate publish across channels.Creates content and can publish
postsider_update_post_statusMove a post between draft and schedule.Reversible
postsider_request_approvalSend a draft into the human approval queue.Reversible
postsider_upload_media_from_urlImport media into the library from a public HTTPS URL.Creates media
postsider_delete_postPermanently delete a post and every other channel version of it (one group). Read the post first.Destructive
postsider_pause_publishingEmergency stop for the whole organization. Resuming is human-only.Destructive

Every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint explicitly, so a client can tell a read from a kill switch.

Configuration

VariableRequiredDefaultDescription
POSTSIDER_API_KEYyes-Organization API key (Settings -> API)
POSTSIDER_API_URLnohttps://api.postsider.comInstance base URL

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_URL are rejected.
  • Redirects are refused rather than followed: a redirect would move an authenticated request off the configured origin, so the client fails with an actionable message instead.
  • Requests time out after 30 seconds, and a failing response body is read up to 8 KB before being reported.
  • Tool arguments are validated locally, before any network call: ids must be non-empty, dates must be real ISO 8601 dates (2026-02-30 is refused, not sent to the API), post status draft or schedule, and media imports require a public HTTPS URL.
  • A missing API key exits 1 with an explanatory message on stderr. stdout carries protocol frames only.

Development

pnpm --filter @postsider/mcp typecheck
pnpm --filter @postsider/mcp typecheck:tests
pnpm --filter @postsider/mcp test
pnpm --filter @postsider/mcp build
pnpm --filter @postsider/mcp version:gate
pnpm --filter @postsider/mcp validate:registry
pnpm --filter @postsider/mcp smoke:tarball
claude plugin validate --strict apps/mcp

Design

This server is a thin wrapper over selected /public/v1 REST API endpoints, authenticated with the raw API key. It has no dependency on the backend and pulls in only @modelcontextprotocol/sdk and zod, so it stays lean and easy to maintain. All tool registrations live in a single factory, so the stdio transport today and any future transport share one agent-facing surface.

Keywords

mcp

FAQs

Package last updated on 25 Sep 2026

Related posts