@postsider/mcp 0.0.0-bootstrap.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +29 -0
- package/.mcp.json +11 -0
- package/CHANGELOG.md +62 -0
- package/LICENSE +673 -0
- package/README.md +190 -0
- package/dist/client.js +268 -0
- package/dist/index.js +39 -0
- package/dist/post-body.js +29 -0
- package/dist/server.js +550 -0
- package/package.json +73 -0
- package/server.json +45 -0
- package/skills/postsider-workflow/SKILL.md +76 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "postsider",
|
|
3
|
+
"description": "Prepare and schedule social media work in PostSider from Claude Code. The agent reads your real calendar and creates drafts, and nothing goes live without your review.",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Lumi Zone Lukasz Blania",
|
|
7
|
+
"email": "lukasz@postsider.com",
|
|
8
|
+
"url": "https://postsider.com"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://postsider.com",
|
|
11
|
+
"repository": "https://github.com/lumizone/postsider",
|
|
12
|
+
"license": "AGPL-3.0",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"mcp",
|
|
15
|
+
"social-media",
|
|
16
|
+
"scheduling",
|
|
17
|
+
"postsider",
|
|
18
|
+
"claude-code"
|
|
19
|
+
],
|
|
20
|
+
"userConfig": {
|
|
21
|
+
"api_key": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"title": "PostSider API key",
|
|
24
|
+
"description": "Organization API key. Create one in PostSider under Settings -> API.",
|
|
25
|
+
"sensitive": true,
|
|
26
|
+
"required": true
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
package/.mcp.json
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Notable changes to `@postsider/mcp`. This file begins with the first released
|
|
4
|
+
version: earlier internal iterations were never published, so they are not
|
|
5
|
+
recorded here.
|
|
6
|
+
|
|
7
|
+
## 1.0.0 - 2026-09-24
|
|
8
|
+
|
|
9
|
+
Initial release.
|
|
10
|
+
|
|
11
|
+
### Server
|
|
12
|
+
|
|
13
|
+
- Local `stdio` MCP server built on `@modelcontextprotocol/sdk`.
|
|
14
|
+
- Configured through `POSTSIDER_API_KEY` (required) and `POSTSIDER_API_URL`
|
|
15
|
+
(optional, defaults to `https://api.postsider.com`).
|
|
16
|
+
- A single server factory, `createPostSiderMcpServer(client)`, owns all tool
|
|
17
|
+
registrations so future transports cannot drift from the stdio surface.
|
|
18
|
+
|
|
19
|
+
### Tools
|
|
20
|
+
|
|
21
|
+
19 tools, all prefixed `postsider_`: 13 read-only tools covering channels,
|
|
22
|
+
groups, calendar posts, approvals, notifications, publishing state, agency and
|
|
23
|
+
customer reporting, and analytics, plus 6 tools that change state (create or
|
|
24
|
+
schedule a post, import media from a URL, update post status, request approval,
|
|
25
|
+
delete a post, and the organization-wide pause publishing kill switch).
|
|
26
|
+
|
|
27
|
+
### Safety and input handling
|
|
28
|
+
|
|
29
|
+
- `POSTSIDER_API_URL` must be HTTPS. Plain HTTP is accepted only on loopback
|
|
30
|
+
(`localhost`, `127.0.0.1`, `[::1]`) for local development and self-hosting.
|
|
31
|
+
- Credentials embedded in the API URL are rejected, and no error message echoes
|
|
32
|
+
the URL or the API key.
|
|
33
|
+
- Redirects are refused instead of followed, so an authenticated request can never
|
|
34
|
+
be pushed to another origin by a redirect. The failure names
|
|
35
|
+
`POSTSIDER_API_URL`, which is what a self-hosted user has to fix.
|
|
36
|
+
- Requests time out after 30 seconds, and a failing response body is read up to
|
|
37
|
+
8 KB before being reported, so a broken server cannot stream unbounded data.
|
|
38
|
+
- Tool arguments are validated before any network call: ids must be non-empty,
|
|
39
|
+
dates must be real ISO 8601 dates (`2026-02-30` and `2026-13-45` are refused
|
|
40
|
+
locally instead of becoming an opaque API 400), post status is limited to
|
|
41
|
+
`draft` or `schedule`, and media imports require a public HTTPS URL.
|
|
42
|
+
- Tool results are compact JSON, because every result is injected into the
|
|
43
|
+
agent's context.
|
|
44
|
+
- Every tool declares `readOnlyHint`, `destructiveHint`, `idempotentHint` and
|
|
45
|
+
`openWorldHint` explicitly instead of relying on protocol defaults.
|
|
46
|
+
- `postsider_delete_post` documents that one post id deletes the post and every
|
|
47
|
+
other channel version in its group, matching what the API does.
|
|
48
|
+
- A missing API key exits 1 with an explanatory message on stderr and nothing on
|
|
49
|
+
stdout, which is reserved for the protocol.
|
|
50
|
+
|
|
51
|
+
### Distribution
|
|
52
|
+
|
|
53
|
+
- A Claude Code plugin in the package (`plugin.json`, `.mcp.json`, the
|
|
54
|
+
`postsider-workflow` skill), installable from the repository marketplace:
|
|
55
|
+
`claude plugin marketplace add lumizone/postsider` and
|
|
56
|
+
`claude plugin install postsider@postsider`.
|
|
57
|
+
- `server.json` metadata for the MCP Registry, validated against the registry
|
|
58
|
+
schema by `pnpm --filter @postsider/mcp validate:registry`.
|
|
59
|
+
- `version:gate` reconciles every place a version is stated (package.json,
|
|
60
|
+
plugin, registry metadata, the reported server version, the pinned npx version
|
|
61
|
+
and the release tag) and blocks a tagged release that still ships the
|
|
62
|
+
`RELEASE_NOT_VERIFIED` banner.
|