postfast-mcp 0.1.2 → 0.1.4
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postfast",
|
|
3
|
-
"description": "Schedule and manage social media posts via PostFast. Supports Facebook, Instagram, X, TikTok, LinkedIn, YouTube, BlueSky, Threads, Pinterest, and Telegram.",
|
|
4
|
-
"version": "0.1.
|
|
3
|
+
"description": "Schedule and manage social media posts via PostFast. Supports Facebook, Instagram, X, TikTok, LinkedIn, YouTube, BlueSky, Threads, Pinterest, and Telegram. After installing, tell Cowork: 'Set my PostFast API key' — get your key at https://app.postfa.st/dashboard → API.",
|
|
4
|
+
"version": "0.1.4",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "PostFast",
|
|
7
7
|
"email": "me@peturgeorgievv.com"
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postfast-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"mcpName": "io.github.peturgeorgievv-factory/postfast-mcp",
|
|
4
5
|
"description": "MCP server for the PostFast API — schedule and manage social media posts via AI tools",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"bin": {
|
|
@@ -10,6 +11,7 @@
|
|
|
10
11
|
"files": [
|
|
11
12
|
"dist",
|
|
12
13
|
".claude-plugin",
|
|
14
|
+
"skills",
|
|
13
15
|
"README.md"
|
|
14
16
|
],
|
|
15
17
|
"scripts": {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: social-media-post
|
|
3
|
+
description: Create, schedule, and manage social media posts using PostFast. Use when the user wants to publish, schedule, or manage posts on Facebook, Instagram, X (Twitter), TikTok, LinkedIn, YouTube, BlueSky, Threads, Pinterest, or Telegram.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Social Media Post via PostFast
|
|
7
|
+
|
|
8
|
+
You have access to PostFast MCP tools for social media scheduling and management.
|
|
9
|
+
|
|
10
|
+
## Setup Check
|
|
11
|
+
|
|
12
|
+
If any PostFast tool call fails with an authentication/401 error, tell the user:
|
|
13
|
+
1. Go to https://app.postfa.st/dashboard, click **API** in the sidebar, and generate a key
|
|
14
|
+
2. Set the `POSTFAST_API_KEY` environment variable with the key
|
|
15
|
+
|
|
16
|
+
## Posting Workflow
|
|
17
|
+
|
|
18
|
+
1. **List accounts** — Call `list_accounts` to see connected social media accounts. Each account has an `id`, `platform`, `platformUsername`, and `displayName`.
|
|
19
|
+
|
|
20
|
+
2. **Prepare media** (if needed) — If the user has images or videos to attach:
|
|
21
|
+
- Use `upload_media` with the local file path — it handles getting a signed URL, uploading, and returning a `key` and `type` (IMAGE or VIDEO)
|
|
22
|
+
- Supported formats: JPEG, PNG, GIF, WebP (images), MP4, WebM, MOV (video)
|
|
23
|
+
- Size limits: 10MB images, 250MB video, 60MB documents (PDF/DOC/DOCX/PPT/PPTX)
|
|
24
|
+
|
|
25
|
+
3. **Create posts** — Call `create_posts` with:
|
|
26
|
+
- `socialMediaId`: account ID from step 1
|
|
27
|
+
- `content`: the post text/caption
|
|
28
|
+
- `scheduledAt`: ISO 8601 datetime (required unless status is DRAFT)
|
|
29
|
+
- `mediaItems`: array of `{key, type, sortOrder}` from uploaded media
|
|
30
|
+
- `status`: SCHEDULED (default) or DRAFT
|
|
31
|
+
- `firstComment`: optional first comment text (supported on X, Instagram, Facebook, YouTube, Threads)
|
|
32
|
+
- `controls`: platform-specific settings (see below)
|
|
33
|
+
- You can batch up to 15 posts in a single call — great for content calendars
|
|
34
|
+
|
|
35
|
+
4. **Confirm** — Show the user a summary: which accounts, what content, when scheduled.
|
|
36
|
+
|
|
37
|
+
## Platform-Specific Controls
|
|
38
|
+
|
|
39
|
+
### X (Twitter)
|
|
40
|
+
- `xCommunityId`: post to a specific Community
|
|
41
|
+
- `xQuoteTweetUrl`: URL of tweet to quote (supports content + media alongside)
|
|
42
|
+
- `xRetweetUrl`: URL of tweet to retweet (ignores content/media)
|
|
43
|
+
- Cannot use both quote and retweet at the same time
|
|
44
|
+
|
|
45
|
+
### Instagram
|
|
46
|
+
- `instagramPublishType`: TIMELINE (default), STORY, or REEL
|
|
47
|
+
- `instagramPostToGrid`: boolean, default true (for Reels)
|
|
48
|
+
- `instagramCollaborators`: array of usernames to invite as collaborators
|
|
49
|
+
|
|
50
|
+
### Facebook
|
|
51
|
+
- `facebookContentType`: POST (default), REEL, or STORY
|
|
52
|
+
- POST: up to 10 photos OR 1 video
|
|
53
|
+
- REEL: 1 video only
|
|
54
|
+
- STORY: 1 image OR 1 video
|
|
55
|
+
- `facebookReelsCollaborators`: array of usernames (for Reels)
|
|
56
|
+
|
|
57
|
+
### TikTok
|
|
58
|
+
- `tiktokPrivacy`: PUBLIC (default), MUTUAL_FRIENDS, or ONLY_ME
|
|
59
|
+
- `tiktokIsDraft`: boolean, default false
|
|
60
|
+
- `tiktokAllowComments`: boolean, default true
|
|
61
|
+
- `tiktokAllowDuet`: boolean, default true
|
|
62
|
+
- `tiktokAllowStitch`: boolean, default true
|
|
63
|
+
- `tiktokBrandOrganic`: boolean, default false
|
|
64
|
+
- `tiktokBrandContent`: boolean, default false
|
|
65
|
+
- `tiktokAutoAddMusic`: boolean, default false
|
|
66
|
+
|
|
67
|
+
### YouTube
|
|
68
|
+
- `youtubeTitle`: defaults to first 100 chars of content
|
|
69
|
+
- `youtubePrivacy`: PUBLIC (default), PRIVATE, or UNLISTED
|
|
70
|
+
- `youtubeTags`: array of tag strings
|
|
71
|
+
- `youtubeCategoryId`: YouTube category ID
|
|
72
|
+
- `youtubeIsShort`: boolean, default true
|
|
73
|
+
- `youtubeMadeForKids`: boolean, default false (COPPA compliance)
|
|
74
|
+
- `youtubePlaylistId`: playlist ID (use `list_youtube_playlists` to find it)
|
|
75
|
+
|
|
76
|
+
### Pinterest
|
|
77
|
+
- `pinterestBoardId`: **required** — use `list_pinterest_boards` to get the `boardId`
|
|
78
|
+
- `pinterestLink`: destination URL when pin is clicked
|
|
79
|
+
- Content is parsed as: first line = pin title (max 100 chars), remaining lines = description (max 800 chars)
|
|
80
|
+
- Carousel: 2-5 static images (no videos)
|
|
81
|
+
|
|
82
|
+
### LinkedIn
|
|
83
|
+
- `linkedinAttachmentKey`: S3 key for document attachment (for document posts)
|
|
84
|
+
- `linkedinAttachmentTitle`: display title for the document (default "Document")
|
|
85
|
+
- Cannot mix documents with regular image/video media
|
|
86
|
+
- Supported document formats: PDF, DOC, DOCX, PPT, PPTX (max 60MB)
|
|
87
|
+
|
|
88
|
+
## Other Actions
|
|
89
|
+
|
|
90
|
+
- **View posts**: `list_posts` — filter by `platforms` (comma-separated), `statuses` (DRAFT, SCHEDULED, PUBLISHED, FAILED), `from`/`to` dates, with pagination (`page`, `limit` up to 50)
|
|
91
|
+
- **Delete a post**: `delete_post` with the post ID
|
|
92
|
+
- **Connect new accounts**: `generate_connect_link` — creates a secure URL to share with clients/collaborators to connect their accounts. Set `expiryDays` (1-30) and optionally `sendEmail` with an `email` address
|
|
93
|
+
- **Pinterest boards**: `list_pinterest_boards` — get board IDs before creating Pinterest posts
|
|
94
|
+
- **YouTube playlists**: `list_youtube_playlists` — get playlist IDs for adding videos to playlists
|
|
95
|
+
|
|
96
|
+
## Tips
|
|
97
|
+
|
|
98
|
+
- Always confirm schedule time and target accounts with the user before creating posts.
|
|
99
|
+
- For content calendars, batch multiple posts in one `create_posts` call (up to 15).
|
|
100
|
+
- When posting to Pinterest, always fetch boards first — `pinterestBoardId` is required.
|
|
101
|
+
- Use DRAFT status if the user wants to review posts in the PostFast dashboard before they go live.
|
|
102
|
+
- The `firstComment` feature is useful for adding hashtags on Instagram without cluttering the caption.
|