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.2",
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.2",
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.