postfast-mcp 0.1.24 → 0.3.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.
Files changed (64) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +8 -1
  4. package/dist/core/backend-port.d.ts +138 -0
  5. package/dist/core/backend-port.js +2 -0
  6. package/dist/core/backend-port.js.map +1 -0
  7. package/dist/core/build-tools.d.ts +38 -0
  8. package/dist/core/build-tools.js +84 -0
  9. package/dist/core/build-tools.js.map +1 -0
  10. package/dist/core/index.d.ts +12 -0
  11. package/dist/core/index.js +12 -0
  12. package/dist/core/index.js.map +1 -0
  13. package/dist/core/instructions.d.ts +3 -0
  14. package/dist/core/instructions.js +63 -0
  15. package/dist/core/instructions.js.map +1 -0
  16. package/dist/core/shared.d.ts +23 -0
  17. package/dist/core/shared.js +60 -0
  18. package/dist/core/shared.js.map +1 -0
  19. package/dist/core/tool-def.d.ts +55 -0
  20. package/dist/core/tool-def.js +2 -0
  21. package/dist/core/tool-def.js.map +1 -0
  22. package/dist/core/tools/accounts.d.ts +2 -0
  23. package/dist/core/tools/accounts.js +112 -0
  24. package/dist/core/tools/accounts.js.map +1 -0
  25. package/dist/core/tools/inbox.d.ts +11 -0
  26. package/dist/core/tools/inbox.js +191 -0
  27. package/dist/core/tools/inbox.js.map +1 -0
  28. package/dist/core/tools/index.d.ts +8 -0
  29. package/dist/core/tools/index.js +19 -0
  30. package/dist/core/tools/index.js.map +1 -0
  31. package/dist/core/tools/posts.d.ts +2 -0
  32. package/dist/core/tools/posts.js +264 -0
  33. package/dist/core/tools/posts.js.map +1 -0
  34. package/dist/core/tools/uploads.d.ts +8 -0
  35. package/dist/core/tools/uploads.js +102 -0
  36. package/dist/core/tools/uploads.js.map +1 -0
  37. package/dist/core/tools/workspaces.d.ts +2 -0
  38. package/dist/core/tools/workspaces.js +15 -0
  39. package/dist/core/tools/workspaces.js.map +1 -0
  40. package/dist/core/types.js.map +1 -0
  41. package/dist/stdio/index.js +15 -0
  42. package/dist/stdio/index.js.map +1 -0
  43. package/dist/stdio/rest-adapter.d.ts +37 -0
  44. package/dist/stdio/rest-adapter.js +222 -0
  45. package/dist/stdio/rest-adapter.js.map +1 -0
  46. package/package.json +20 -7
  47. package/dist/client.d.ts +0 -9
  48. package/dist/client.js +0 -57
  49. package/dist/client.js.map +0 -1
  50. package/dist/index.js +0 -18
  51. package/dist/index.js.map +0 -1
  52. package/dist/tools/accounts.d.ts +0 -3
  53. package/dist/tools/accounts.js +0 -118
  54. package/dist/tools/accounts.js.map +0 -1
  55. package/dist/tools/files.d.ts +0 -3
  56. package/dist/tools/files.js +0 -87
  57. package/dist/tools/files.js.map +0 -1
  58. package/dist/tools/posts.d.ts +0 -3
  59. package/dist/tools/posts.js +0 -228
  60. package/dist/tools/posts.js.map +0 -1
  61. package/dist/types.js.map +0 -1
  62. /package/dist/{types.d.ts → core/types.d.ts} +0 -0
  63. /package/dist/{types.js → core/types.js} +0 -0
  64. /package/dist/{index.d.ts → stdio/index.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../../src/core/tools/posts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ToolDef } from '../tool-def.js';
2
+ /**
3
+ * `upload_media` exists on BOTH bindings but is a different tool on each:
4
+ * the stdio bin reads a local file from disk (only possible on the user's
5
+ * machine), while the remote host ingests a conversation-attached file or
6
+ * base64 bytes. They share the name, not the schema — hence two defs.
7
+ */
8
+ export declare const uploadTools: ToolDef[];
@@ -0,0 +1,102 @@
1
+ import { z } from 'zod';
2
+ import { IMAGE_MIME_TYPES, VIDEO_MIME_TYPES, dataListOutputSchema, } from '../shared.js';
3
+ const SUPPORTED_MIME_TYPES = [...IMAGE_MIME_TYPES, ...VIDEO_MIME_TYPES].join(', ');
4
+ /**
5
+ * `upload_media` exists on BOTH bindings but is a different tool on each:
6
+ * the stdio bin reads a local file from disk (only possible on the user's
7
+ * machine), while the remote host ingests a conversation-attached file or
8
+ * base64 bytes. They share the name, not the schema — hence two defs.
9
+ */
10
+ export const uploadTools = [
11
+ {
12
+ name: 'get_upload_urls',
13
+ binding: 'stdio',
14
+ title: 'Get Upload URLs',
15
+ description: 'Get signed upload URLs for media files. Upload your file to the returned URL via PUT, then use the key in create_posts mediaItems.',
16
+ inputSchema: {
17
+ contentType: z
18
+ .string()
19
+ .describe(`MIME type of the file. Supported: ${SUPPORTED_MIME_TYPES}`),
20
+ count: z
21
+ .number()
22
+ .int()
23
+ .min(1)
24
+ .max(8)
25
+ .default(1)
26
+ .describe('Number of upload URLs (1-8 for images, 1 for videos)'),
27
+ },
28
+ outputSchema: dataListOutputSchema,
29
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
30
+ run: (port, args, workspaceId) => port.getUploadUrls(args, workspaceId),
31
+ },
32
+ {
33
+ name: 'upload_media',
34
+ binding: 'stdio',
35
+ title: 'Upload Media',
36
+ description: 'Upload a local file to PostFast and get back a media key for use in create_posts. Handles the full flow: detects content type, gets a signed URL, uploads the file, and returns the key and type.',
37
+ inputSchema: {
38
+ filePath: z
39
+ .string()
40
+ .describe('Absolute path to the local file (e.g. /Users/me/photo.jpg)'),
41
+ },
42
+ outputSchema: {
43
+ key: z.string().optional(),
44
+ type: z.string().optional(),
45
+ contentType: z.string().optional(),
46
+ },
47
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
48
+ run: (port, args) => port.uploadLocalFile(args.filePath),
49
+ },
50
+ {
51
+ name: 'upload_from_url',
52
+ binding: 'remote',
53
+ title: 'Upload Media From URL',
54
+ description: 'Fetch media from a public https URL and store it for use in create_posts. Returns { media_id, type }; pass media_id as a mediaItems[].key. Ideal for ChatGPT/Claude-generated image URLs and remote CDN media. Redirects are followed (each hop is SSRF-validated); the URL must be public https and within the size limit. Supported types: image/jpeg, image/png, image/gif, image/webp, video/mp4, video/webm, video/quicktime.',
55
+ inputSchema: {
56
+ sourceUrl: z.url().describe('Public https URL of the media to upload'),
57
+ contentType: z
58
+ .string()
59
+ .optional()
60
+ .describe("MIME type override. If omitted, the source's Content-Type is used."),
61
+ },
62
+ outputSchema: {
63
+ media_id: z.string().optional(),
64
+ type: z.string().optional(),
65
+ },
66
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
67
+ run: (port, args, workspaceId) => port.uploadFromUrl(args, workspaceId),
68
+ },
69
+ {
70
+ name: 'upload_media',
71
+ binding: 'remote',
72
+ title: 'Upload Media',
73
+ description: 'Upload an image/video that is present in this conversation, for use in create_posts. Pass EITHER a ChatGPT-attached or model-generated file (the `file` argument — ChatGPT fills this automatically) OR base64 bytes (`data` + `contentType`). Returns { media_id, type }; use media_id as a mediaItems[].key. For large or remote media, prefer upload_from_url. Supported types: image/jpeg, image/png, image/gif, image/webp, video/mp4, video/webm, video/quicktime.',
74
+ inputSchema: {
75
+ file: z
76
+ .object({
77
+ download_url: z.url().describe('Temporary URL to fetch the file'),
78
+ file_id: z.string(),
79
+ mime_type: z.string().optional(),
80
+ file_name: z.string().optional(),
81
+ })
82
+ .optional()
83
+ .describe('A ChatGPT-provided file (attached or generated). Filled in automatically by ChatGPT.'),
84
+ data: z
85
+ .string()
86
+ .optional()
87
+ .describe('Base64-encoded file bytes (alternative to file; no data: prefix)'),
88
+ contentType: z
89
+ .string()
90
+ .optional()
91
+ .describe('MIME type for base64 data (e.g. image/png). Required with data.'),
92
+ },
93
+ outputSchema: {
94
+ media_id: z.string().optional(),
95
+ type: z.string().optional(),
96
+ },
97
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
98
+ _meta: { 'openai/fileParams': ['file'] },
99
+ run: (port, args, workspaceId) => port.uploadMedia(args, workspaceId),
100
+ },
101
+ ];
102
+ //# sourceMappingURL=uploads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../../src/core/tools/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,MAAM,oBAAoB,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC;QACE,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,oIAAoI;QACtI,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,qCAAqC,oBAAoB,EAAE,CAAC;YACxE,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,OAAO,CAAC,CAAC,CAAC;iBACV,QAAQ,CAAC,sDAAsD,CAAC;SACpE;QACD,YAAY,EAAE,oBAAoB;QAClC,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;QACjF,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAC/B,IAAI,CAAC,aAAa,CAAC,IAAiC,EAAE,WAAW,CAAC;KACrE;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,mMAAmM;QACrM,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,4DAA4D,CAAC;SAC1E;QACD,YAAY,EAAE;YACZ,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;QACjF,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAkB,CAAC;KACnE;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,oaAAoa;QACta,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACtE,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,oEAAoE,CAAC;SAClF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;QACjF,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAC/B,IAAI,CAAC,aAAa,CAAC,IAAoC,EAAE,WAAW,CAAC;KACxE;IACD;QACE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,0cAA0c;QAC5c,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,CAAC;gBACN,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;gBACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACjC,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,sFAAsF,CAAC;YACnG,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iEAAiE,CAAC;SAC/E;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;QACjF,KAAK,EAAE,EAAE,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE;QACxC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAC/B,IAAI,CAAC,WAAW,CAAC,IAAkC,EAAE,WAAW,CAAC;KACpE;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDef } from '../tool-def.js';
2
+ export declare const workspaceTools: ToolDef[];
@@ -0,0 +1,15 @@
1
+ import { dataListOutputSchema } from '../shared.js';
2
+ export const workspaceTools = [
3
+ {
4
+ name: 'list_workspaces',
5
+ binding: 'remote',
6
+ title: 'List Workspaces',
7
+ description: 'List the workspaces this connection can act in. Use a workspace id as the optional workspaceId argument on other tools to operate across multiple workspaces (the default workspace is used when omitted).',
8
+ inputSchema: {},
9
+ outputSchema: dataListOutputSchema,
10
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
11
+ workspaceScoped: false,
12
+ run: (port) => port.listWorkspaces(),
13
+ },
14
+ ];
15
+ //# sourceMappingURL=workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../src/core/tools/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC;QACE,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,4MAA4M;QAC9M,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,oBAAoB;QAClC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,eAAe,EAAE,KAAK;QACtB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;KACrC;CACF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { registerCatalogTools } from '../core/build-tools.js';
5
+ import { instructionsFor } from '../core/instructions.js';
6
+ import { RestAdapter } from './rest-adapter.js';
7
+ const server = new McpServer({
8
+ name: 'postfast',
9
+ version: '0.3.0',
10
+ }, { instructions: instructionsFor('stdio') });
11
+ const port = new RestAdapter();
12
+ registerCatalogTools(server, { binding: 'stdio', port });
13
+ const transport = new StdioServerTransport();
14
+ await server.connect(transport);
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stdio/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;IACE,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;CACjB,EACD,EAAE,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAC3C,CAAC;AAEF,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;AAE/B,oBAAoB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { AnalyticsArgs, ApprovePostsArgs, AssignInboxConversationArgs, BackendPort, ConnectLinkArgs, CreatePostsArgs, FollowerHistoryArgs, InboxReplyArgs, ListInboxConversationsArgs, ListInboxItemsArgs, ListPostsArgs, LocalUploadResult, SetInboxConversationStatusArgs, SetInboxItemStateArgs, UploadUrlsArgs } from '../core/backend-port.js';
2
+ /** The stdio bin's BackendPort: the public PostFast REST API over pf-api-key. */
3
+ export declare class RestAdapter implements BackendPort {
4
+ private baseUrl;
5
+ private apiKey;
6
+ constructor();
7
+ private request;
8
+ private get;
9
+ private post;
10
+ listWorkspaces(): Promise<unknown>;
11
+ listAccounts(): Promise<unknown>;
12
+ getFollowerHistory(args: FollowerHistoryArgs): Promise<unknown>;
13
+ listPinterestBoards(socialMediaId: string): Promise<unknown>;
14
+ listYoutubePlaylists(socialMediaId: string): Promise<unknown>;
15
+ listGbpLocations(socialMediaId: string): Promise<unknown>;
16
+ searchPlaces(query: string): Promise<unknown>;
17
+ generateConnectLink(args: ConnectLinkArgs): Promise<unknown>;
18
+ listPosts(args: ListPostsArgs): Promise<unknown>;
19
+ createPosts(args: CreatePostsArgs): Promise<unknown>;
20
+ approvePosts(_args: ApprovePostsArgs): Promise<unknown>;
21
+ deletePost(id: string): Promise<unknown>;
22
+ getPostAnalytics(args: AnalyticsArgs): Promise<unknown>;
23
+ getUploadUrls(args: UploadUrlsArgs): Promise<unknown>;
24
+ uploadLocalFile(filePath: string): Promise<LocalUploadResult>;
25
+ uploadFromUrl(): Promise<unknown>;
26
+ uploadMedia(): Promise<unknown>;
27
+ listInboxConversations(args: ListInboxConversationsArgs): Promise<unknown>;
28
+ getInboxConversation(id: string): Promise<unknown>;
29
+ listInboxItems(args: ListInboxItemsArgs): Promise<unknown>;
30
+ getInboxUnreadCount(): Promise<unknown>;
31
+ replyToInboxItem(args: InboxReplyArgs): Promise<unknown>;
32
+ sendInboxPrivateReply(args: InboxReplyArgs): Promise<unknown>;
33
+ setInboxItemState(args: SetInboxItemStateArgs): Promise<unknown>;
34
+ markInboxConversationRead(conversationId: string): Promise<unknown>;
35
+ setInboxConversationStatus(args: SetInboxConversationStatusArgs): Promise<unknown>;
36
+ assignInboxConversation(args: AssignInboxConversationArgs): Promise<unknown>;
37
+ }
@@ -0,0 +1,222 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { extname } from 'node:path';
3
+ const DEFAULT_BASE_URL = 'https://api.postfa.st';
4
+ const MIME_MAP = {
5
+ '.jpg': 'image/jpeg',
6
+ '.jpeg': 'image/jpeg',
7
+ '.png': 'image/png',
8
+ '.gif': 'image/gif',
9
+ '.webp': 'image/webp',
10
+ '.mp4': 'video/mp4',
11
+ '.webm': 'video/webm',
12
+ '.mov': 'video/quicktime',
13
+ };
14
+ function detectContentType(filePath) {
15
+ const ext = extname(filePath).toLowerCase();
16
+ const mime = MIME_MAP[ext];
17
+ if (!mime) {
18
+ throw new Error(`Unsupported file extension "${ext}". Supported: ${Object.keys(MIME_MAP).join(', ')}`);
19
+ }
20
+ return mime;
21
+ }
22
+ /** The stdio bin's BackendPort: the public PostFast REST API over pf-api-key. */
23
+ export class RestAdapter {
24
+ baseUrl;
25
+ apiKey;
26
+ constructor() {
27
+ this.apiKey = process.env.POSTFAST_API_KEY ?? '';
28
+ this.baseUrl = (process.env.POSTFAST_API_URL ?? DEFAULT_BASE_URL).replace(/\/$/, '');
29
+ if (!this.apiKey) {
30
+ throw new Error('POSTFAST_API_KEY environment variable is required. Generate one in PostFast → Workspace Settings → API Key.');
31
+ }
32
+ }
33
+ async request(method, path, body, query) {
34
+ const url = new URL(`${this.baseUrl}${path}`);
35
+ if (query) {
36
+ for (const [key, value] of Object.entries(query)) {
37
+ if (value !== undefined && value !== '') {
38
+ url.searchParams.set(key, value);
39
+ }
40
+ }
41
+ }
42
+ const headers = {
43
+ 'pf-api-key': this.apiKey,
44
+ 'Content-Type': 'application/json',
45
+ };
46
+ const response = await fetch(url.toString(), {
47
+ method,
48
+ headers,
49
+ body: body ? JSON.stringify(body) : undefined,
50
+ });
51
+ if (!response.ok) {
52
+ const text = await response.text();
53
+ let message;
54
+ try {
55
+ const json = JSON.parse(text);
56
+ message = json.message ?? json.error ?? text;
57
+ }
58
+ catch {
59
+ message = text;
60
+ }
61
+ throw new Error(`PostFast API error (${response.status}): ${message}`);
62
+ }
63
+ const text = await response.text();
64
+ if (!text)
65
+ return undefined;
66
+ return JSON.parse(text);
67
+ }
68
+ get(path, query) {
69
+ return this.request('GET', path, undefined, query);
70
+ }
71
+ post(path, body) {
72
+ return this.request('POST', path, body);
73
+ }
74
+ listWorkspaces() {
75
+ throw new Error('list_workspaces is not available over the public REST API.');
76
+ }
77
+ listAccounts() {
78
+ return this.get('/social-media/my-social-accounts');
79
+ }
80
+ getFollowerHistory(args) {
81
+ return this.get(`/social-media/${args.socialMediaId}/follower-history`, {
82
+ from: args.from,
83
+ to: args.to,
84
+ });
85
+ }
86
+ listPinterestBoards(socialMediaId) {
87
+ return this.get(`/social-media/${socialMediaId}/pinterest-boards`);
88
+ }
89
+ listYoutubePlaylists(socialMediaId) {
90
+ return this.get(`/social-media/${socialMediaId}/youtube-playlists`);
91
+ }
92
+ listGbpLocations(socialMediaId) {
93
+ return this.get(`/social-media/${socialMediaId}/gbp-locations`);
94
+ }
95
+ searchPlaces(query) {
96
+ return this.get('/social-media/search-places', { q: query });
97
+ }
98
+ generateConnectLink(args) {
99
+ return this.post('/social-media/connect-link', {
100
+ expiryDays: args.expiryDays,
101
+ sendEmail: args.sendEmail,
102
+ email: args.email,
103
+ });
104
+ }
105
+ listPosts(args) {
106
+ return this.get('/social-posts', {
107
+ page: String(args.page),
108
+ limit: String(args.limit),
109
+ ids: args.ids?.join(','),
110
+ platforms: args.platforms?.join(','),
111
+ statuses: args.statuses?.join(','),
112
+ from: args.from,
113
+ to: args.to,
114
+ });
115
+ }
116
+ createPosts(args) {
117
+ return this.post('/social-posts', {
118
+ posts: args.posts,
119
+ status: args.status,
120
+ approvalStatus: args.approvalStatus,
121
+ controls: args.controls,
122
+ });
123
+ }
124
+ approvePosts(_args) {
125
+ throw new Error('approve_posts is not available over the public REST API.');
126
+ }
127
+ deletePost(id) {
128
+ return this.request('DELETE', `/social-posts/${id}`);
129
+ }
130
+ getPostAnalytics(args) {
131
+ return this.get('/social-posts/analytics', {
132
+ startDate: args.startDate,
133
+ endDate: args.endDate,
134
+ platforms: args.platforms?.join(','),
135
+ socialMediaIds: args.socialMediaIds?.join(','),
136
+ });
137
+ }
138
+ getUploadUrls(args) {
139
+ return this.post('/file/get-signed-upload-urls', {
140
+ contentType: args.contentType,
141
+ count: args.count,
142
+ });
143
+ }
144
+ async uploadLocalFile(filePath) {
145
+ const contentType = detectContentType(filePath);
146
+ const isVideo = contentType.startsWith('video/');
147
+ const [uploadUrl] = await this.post('/file/get-signed-upload-urls', { contentType, count: 1 });
148
+ const fileBuffer = await readFile(filePath);
149
+ const uploadResponse = await fetch(uploadUrl.signedUrl, {
150
+ method: 'PUT',
151
+ headers: { 'Content-Type': contentType },
152
+ body: fileBuffer,
153
+ });
154
+ if (!uploadResponse.ok) {
155
+ throw new Error(`Upload failed (${uploadResponse.status}): ${await uploadResponse.text()}`);
156
+ }
157
+ return {
158
+ key: uploadUrl.key,
159
+ type: isVideo ? 'VIDEO' : 'IMAGE',
160
+ contentType,
161
+ };
162
+ }
163
+ uploadFromUrl() {
164
+ throw new Error('upload_from_url is only available on the hosted PostFast MCP server.');
165
+ }
166
+ uploadMedia() {
167
+ throw new Error('Conversation-media upload is only available on the hosted PostFast MCP server.');
168
+ }
169
+ listInboxConversations(args) {
170
+ return this.get('/social-inbox/conversations', {
171
+ page: String(args.page),
172
+ limit: String(args.limit),
173
+ platforms: args.platforms?.join(','),
174
+ socialMediaIds: args.socialMediaIds?.join(','),
175
+ statuses: args.statuses?.join(','),
176
+ unreadOnly: args.unreadOnly === undefined ? undefined : String(args.unreadOnly),
177
+ assignedToUserId: args.assignedToUserId,
178
+ });
179
+ }
180
+ getInboxConversation(id) {
181
+ return this.get(`/social-inbox/conversations/${id}`);
182
+ }
183
+ listInboxItems(args) {
184
+ return this.get(`/social-inbox/conversations/${args.conversationId}/items`, {
185
+ page: String(args.page),
186
+ limit: String(args.limit),
187
+ order: args.order,
188
+ });
189
+ }
190
+ getInboxUnreadCount() {
191
+ return this.get('/social-inbox/unread-count');
192
+ }
193
+ replyToInboxItem(args) {
194
+ return this.post(`/social-inbox/items/${args.itemId}/reply`, {
195
+ text: args.text,
196
+ });
197
+ }
198
+ sendInboxPrivateReply(args) {
199
+ return this.post(`/social-inbox/items/${args.itemId}/private-reply`, {
200
+ text: args.text,
201
+ });
202
+ }
203
+ setInboxItemState(args) {
204
+ return this.post(`/social-inbox/items/${args.itemId}/state`, {
205
+ action: args.action,
206
+ });
207
+ }
208
+ markInboxConversationRead(conversationId) {
209
+ return this.post(`/social-inbox/conversations/${conversationId}/read`);
210
+ }
211
+ setInboxConversationStatus(args) {
212
+ return this.post(`/social-inbox/conversations/${args.conversationId}/status`, {
213
+ status: args.status,
214
+ });
215
+ }
216
+ assignInboxConversation(args) {
217
+ return this.post(`/social-inbox/conversations/${args.conversationId}/assign`, {
218
+ assigneeUserId: args.assigneeUserId,
219
+ });
220
+ }
221
+ }
222
+ //# sourceMappingURL=rest-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-adapter.js","sourceRoot":"","sources":["../../src/stdio/rest-adapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,23 @@
1
1
  {
2
2
  "name": "postfast-mcp",
3
- "version": "0.1.24",
3
+ "version": "0.3.0",
4
4
  "mcpName": "io.github.peturgeorgievv-factory/postfast-mcp",
5
5
  "description": "MCP server for the PostFast API — schedule and manage social media posts via AI tools",
6
6
  "type": "module",
7
7
  "bin": {
8
- "postfast-mcp": "dist/index.js"
8
+ "postfast-mcp": "dist/stdio/index.js"
9
+ },
10
+ "main": "./dist/stdio/index.js",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/stdio/index.d.ts",
14
+ "default": "./dist/stdio/index.js"
15
+ },
16
+ "./core": {
17
+ "types": "./dist/core/index.d.ts",
18
+ "default": "./dist/core/index.js"
19
+ }
9
20
  },
10
- "main": "./dist/index.js",
11
21
  "files": [
12
22
  "dist",
13
23
  ".claude-plugin",
@@ -17,7 +27,8 @@
17
27
  "scripts": {
18
28
  "build": "tsc",
19
29
  "dev": "tsc --watch",
20
- "start": "node dist/index.js",
30
+ "start": "node dist/stdio/index.js",
31
+ "version": "changeset version && node scripts/stamp-versions.mjs",
21
32
  "prepublishOnly": "npm run build"
22
33
  },
23
34
  "keywords": [
@@ -39,10 +50,12 @@
39
50
  "node": ">=18"
40
51
  },
41
52
  "dependencies": {
42
- "@modelcontextprotocol/sdk": "^1.29.0"
53
+ "@modelcontextprotocol/sdk": "^1.29.0",
54
+ "zod": "^4.4.3"
43
55
  },
44
56
  "devDependencies": {
45
- "typescript": "^5.9.3",
46
- "@types/node": "^22.19.21"
57
+ "@changesets/cli": "^2.29.8",
58
+ "@types/node": "^22.19.21",
59
+ "typescript": "^5.9.3"
47
60
  }
48
61
  }
package/dist/client.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export declare class PostFastClient {
2
- private baseUrl;
3
- private apiKey;
4
- constructor();
5
- request<T>(method: string, path: string, body?: unknown, query?: Record<string, string | undefined>): Promise<T>;
6
- get<T>(path: string, query?: Record<string, string | undefined>): Promise<T>;
7
- post<T>(path: string, body?: unknown): Promise<T>;
8
- delete<T>(path: string): Promise<T>;
9
- }
package/dist/client.js DELETED
@@ -1,57 +0,0 @@
1
- const DEFAULT_BASE_URL = 'https://api.postfa.st';
2
- export class PostFastClient {
3
- baseUrl;
4
- apiKey;
5
- constructor() {
6
- this.apiKey = process.env.POSTFAST_API_KEY ?? '';
7
- this.baseUrl = (process.env.POSTFAST_API_URL ?? DEFAULT_BASE_URL).replace(/\/$/, '');
8
- if (!this.apiKey) {
9
- throw new Error('POSTFAST_API_KEY environment variable is required. Generate one in PostFast → Workspace Settings → API Key.');
10
- }
11
- }
12
- async request(method, path, body, query) {
13
- const url = new URL(`${this.baseUrl}${path}`);
14
- if (query) {
15
- for (const [key, value] of Object.entries(query)) {
16
- if (value !== undefined && value !== '') {
17
- url.searchParams.set(key, value);
18
- }
19
- }
20
- }
21
- const headers = {
22
- 'pf-api-key': this.apiKey,
23
- 'Content-Type': 'application/json',
24
- };
25
- const response = await fetch(url.toString(), {
26
- method,
27
- headers,
28
- body: body ? JSON.stringify(body) : undefined,
29
- });
30
- if (!response.ok) {
31
- const text = await response.text();
32
- let message;
33
- try {
34
- const json = JSON.parse(text);
35
- message = json.message ?? json.error ?? text;
36
- }
37
- catch {
38
- message = text;
39
- }
40
- throw new Error(`PostFast API error (${response.status}): ${message}`);
41
- }
42
- const text = await response.text();
43
- if (!text)
44
- return undefined;
45
- return JSON.parse(text);
46
- }
47
- get(path, query) {
48
- return this.request('GET', path, undefined, query);
49
- }
50
- post(path, body) {
51
- return this.request('POST', path, body);
52
- }
53
- delete(path) {
54
- return this.request('DELETE', path);
55
- }
56
- }
57
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD,MAAM,OAAO,cAAc;IACjB,OAAO,CAAS;IAChB,MAAM,CAAS;IAEvB;QACE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,OAAO,CACvE,KAAK,EACL,EAAE,CACH,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAc,EACd,IAAY,EACZ,IAAc,EACd,KAA0C;QAE1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;QAE9C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBACxC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAA2B;YACtC,YAAY,EAAE,IAAI,CAAC,MAAM;YACzB,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,OAAe,CAAC;YAEpB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAc,CAAC;QAEjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAED,GAAG,CAAI,IAAY,EAAE,KAA0C;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAI,IAAY,EAAE,IAAc;QAClC,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAI,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;CACF"}
package/dist/index.js DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
- import { PostFastClient } from './client.js';
5
- import { registerPostTools } from './tools/posts.js';
6
- import { registerAccountTools } from './tools/accounts.js';
7
- import { registerFileTools } from './tools/files.js';
8
- const server = new McpServer({
9
- name: 'postfast',
10
- version: '0.1.24',
11
- });
12
- const client = new PostFastClient();
13
- registerPostTools(server, client);
14
- registerAccountTools(server, client);
15
- registerFileTools(server, client);
16
- const transport = new StdioServerTransport();
17
- await server.connect(transport);
18
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;AAEpC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { PostFastClient } from '../client.js';
3
- export declare function registerAccountTools(server: McpServer, client: PostFastClient): void;