social-mcp 2.1.0 → 2.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 (103) hide show
  1. package/README.md +129 -3
  2. package/dist/index.js +64 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/config.d.ts +34 -0
  5. package/dist/lib/config.js +34 -0
  6. package/dist/lib/config.js.map +1 -1
  7. package/dist/services/beehiiv-service.d.ts +69 -0
  8. package/dist/services/beehiiv-service.js +97 -0
  9. package/dist/services/beehiiv-service.js.map +1 -0
  10. package/dist/services/devto-service.d.ts +99 -0
  11. package/dist/services/devto-service.js +92 -0
  12. package/dist/services/devto-service.js.map +1 -0
  13. package/dist/services/email-service.d.ts +5 -1
  14. package/dist/services/email-service.js +76 -4
  15. package/dist/services/email-service.js.map +1 -1
  16. package/dist/services/ghost-service.d.ts +80 -0
  17. package/dist/services/ghost-service.js +123 -0
  18. package/dist/services/ghost-service.js.map +1 -0
  19. package/dist/services/hashnode-service.d.ts +86 -0
  20. package/dist/services/hashnode-service.js +161 -0
  21. package/dist/services/hashnode-service.js.map +1 -0
  22. package/dist/services/tumblr-service.d.ts +73 -0
  23. package/dist/services/tumblr-service.js +113 -0
  24. package/dist/services/tumblr-service.js.map +1 -0
  25. package/dist/services/twitch-service.d.ts +85 -0
  26. package/dist/services/twitch-service.js +135 -0
  27. package/dist/services/twitch-service.js.map +1 -0
  28. package/dist/tools/beehiiv-tools/create-post.d.ts +40 -0
  29. package/dist/tools/beehiiv-tools/create-post.js +49 -0
  30. package/dist/tools/beehiiv-tools/create-post.js.map +1 -0
  31. package/dist/tools/beehiiv-tools/get-posts.d.ts +20 -0
  32. package/dist/tools/beehiiv-tools/get-posts.js +51 -0
  33. package/dist/tools/beehiiv-tools/get-posts.js.map +1 -0
  34. package/dist/tools/beehiiv-tools/get-subscribers.d.ts +20 -0
  35. package/dist/tools/beehiiv-tools/get-subscribers.js +48 -0
  36. package/dist/tools/beehiiv-tools/get-subscribers.js.map +1 -0
  37. package/dist/tools/devto-tools/create-article.d.ts +30 -0
  38. package/dist/tools/devto-tools/create-article.js +47 -0
  39. package/dist/tools/devto-tools/create-article.js.map +1 -0
  40. package/dist/tools/devto-tools/get-article.d.ts +16 -0
  41. package/dist/tools/devto-tools/get-article.js +40 -0
  42. package/dist/tools/devto-tools/get-article.js.map +1 -0
  43. package/dist/tools/devto-tools/get-articles.d.ts +18 -0
  44. package/dist/tools/devto-tools/get-articles.js +41 -0
  45. package/dist/tools/devto-tools/get-articles.js.map +1 -0
  46. package/dist/tools/devto-tools/update-article.d.ts +28 -0
  47. package/dist/tools/devto-tools/update-article.js +51 -0
  48. package/dist/tools/devto-tools/update-article.js.map +1 -0
  49. package/dist/tools/email-tools/send-bulk-email.d.ts +8 -0
  50. package/dist/tools/email-tools/send-bulk-email.js +17 -1
  51. package/dist/tools/email-tools/send-bulk-email.js.map +1 -1
  52. package/dist/tools/email-tools/send-email.d.ts +8 -0
  53. package/dist/tools/email-tools/send-email.js +17 -1
  54. package/dist/tools/email-tools/send-email.js.map +1 -1
  55. package/dist/tools/ghost-tools/create-post.d.ts +36 -0
  56. package/dist/tools/ghost-tools/create-post.js +51 -0
  57. package/dist/tools/ghost-tools/create-post.js.map +1 -0
  58. package/dist/tools/ghost-tools/delete-post.d.ts +18 -0
  59. package/dist/tools/ghost-tools/delete-post.js +28 -0
  60. package/dist/tools/ghost-tools/delete-post.js.map +1 -0
  61. package/dist/tools/ghost-tools/get-posts.d.ts +30 -0
  62. package/dist/tools/ghost-tools/get-posts.js +51 -0
  63. package/dist/tools/ghost-tools/get-posts.js.map +1 -0
  64. package/dist/tools/ghost-tools/update-post.d.ts +36 -0
  65. package/dist/tools/ghost-tools/update-post.js +58 -0
  66. package/dist/tools/ghost-tools/update-post.js.map +1 -0
  67. package/dist/tools/hashnode-tools/create-post.d.ts +34 -0
  68. package/dist/tools/hashnode-tools/create-post.js +46 -0
  69. package/dist/tools/hashnode-tools/create-post.js.map +1 -0
  70. package/dist/tools/hashnode-tools/get-posts.d.ts +18 -0
  71. package/dist/tools/hashnode-tools/get-posts.js +48 -0
  72. package/dist/tools/hashnode-tools/get-posts.js.map +1 -0
  73. package/dist/tools/hashnode-tools/get-publication.d.ts +16 -0
  74. package/dist/tools/hashnode-tools/get-publication.js +36 -0
  75. package/dist/tools/hashnode-tools/get-publication.js.map +1 -0
  76. package/dist/tools/tumblr-tools/create-post.d.ts +34 -0
  77. package/dist/tools/tumblr-tools/create-post.js +45 -0
  78. package/dist/tools/tumblr-tools/create-post.js.map +1 -0
  79. package/dist/tools/tumblr-tools/delete-post.d.ts +18 -0
  80. package/dist/tools/tumblr-tools/delete-post.js +28 -0
  81. package/dist/tools/tumblr-tools/delete-post.js.map +1 -0
  82. package/dist/tools/tumblr-tools/get-blog-info.d.ts +16 -0
  83. package/dist/tools/tumblr-tools/get-blog-info.js +38 -0
  84. package/dist/tools/tumblr-tools/get-blog-info.js.map +1 -0
  85. package/dist/tools/tumblr-tools/get-posts.d.ts +40 -0
  86. package/dist/tools/tumblr-tools/get-posts.js +53 -0
  87. package/dist/tools/tumblr-tools/get-posts.js.map +1 -0
  88. package/dist/tools/twitch-tools/get-channel-info.d.ts +18 -0
  89. package/dist/tools/twitch-tools/get-channel-info.js +38 -0
  90. package/dist/tools/twitch-tools/get-channel-info.js.map +1 -0
  91. package/dist/tools/twitch-tools/get-streams.d.ts +22 -0
  92. package/dist/tools/twitch-tools/get-streams.js +50 -0
  93. package/dist/tools/twitch-tools/get-streams.js.map +1 -0
  94. package/dist/tools/twitch-tools/get-user.d.ts +18 -0
  95. package/dist/tools/twitch-tools/get-user.js +39 -0
  96. package/dist/tools/twitch-tools/get-user.js.map +1 -0
  97. package/dist/tools/twitch-tools/search-channels.d.ts +22 -0
  98. package/dist/tools/twitch-tools/search-channels.js +41 -0
  99. package/dist/tools/twitch-tools/search-channels.js.map +1 -0
  100. package/dist/tools/twitch-tools/send-chat-message.d.ts +24 -0
  101. package/dist/tools/twitch-tools/send-chat-message.js +39 -0
  102. package/dist/tools/twitch-tools/send-chat-message.js.map +1 -0
  103. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user.js","sourceRoot":"","sources":["../../../src/tools/twitch-tools/get-user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEnF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACjG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;CAC7G,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,8FAA8F;IAC3G,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;QAC5B,IAAI,CAAC;YACJ,MAAM,OAAO,GACZ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY;gBAC3B,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC3E,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAEvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI;gBAAE,OAAO,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAE/E,OAAO;gBACN,gBAAgB,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,KAAK,GAAG;gBACpD,EAAE;gBACF,OAAO,IAAI,CAAC,EAAE,EAAE;gBAChB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,gBAAgB,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAClG,CAAC;IACF,CAAC;CACQ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ declare const params: z.ZodObject<{
3
+ query: z.ZodString;
4
+ liveOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
5
+ first: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
+ clientId: z.ZodOptional<z.ZodString>;
7
+ clientSecret: z.ZodOptional<z.ZodString>;
8
+ }, z.core.$strip>;
9
+ type Params = z.infer<typeof params>;
10
+ export declare const searchChannelsTool: {
11
+ readonly name: "TWITCH_SEARCH_CHANNELS";
12
+ readonly description: "Search Twitch channels by name. Optionally filter to live-only channels.";
13
+ readonly parameters: z.ZodObject<{
14
+ query: z.ZodString;
15
+ liveOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
16
+ first: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
17
+ clientId: z.ZodOptional<z.ZodString>;
18
+ clientSecret: z.ZodOptional<z.ZodString>;
19
+ }, z.core.$strip>;
20
+ readonly execute: (p: Params) => Promise<string>;
21
+ };
22
+ export {};
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import { CredentialsError } from "../../lib/errors.js";
3
+ import { TwitchService, getTwitchService } from "../../services/twitch-service.js";
4
+ const params = z.object({
5
+ query: z.string().min(1).describe("Search term (channel name or partial match)"),
6
+ liveOnly: z.boolean().optional().default(false).describe("Only return channels that are currently live"),
7
+ first: z.number().int().min(1).max(100).optional().default(10).describe("Number of results (default: 10, max: 100)"),
8
+ clientId: z.string().optional().describe("Twitch client ID (overrides TWITCH_CLIENT_ID env var)"),
9
+ clientSecret: z.string().optional().describe("Twitch client secret (overrides TWITCH_CLIENT_SECRET env var)"),
10
+ });
11
+ export const searchChannelsTool = {
12
+ name: "TWITCH_SEARCH_CHANNELS",
13
+ description: "Search Twitch channels by name. Optionally filter to live-only channels.",
14
+ parameters: params,
15
+ execute: async (p) => {
16
+ try {
17
+ const service = p.clientId && p.clientSecret
18
+ ? new TwitchService({ clientId: p.clientId, clientSecret: p.clientSecret })
19
+ : getTwitchService();
20
+ const result = await service.searchChannels(p.query, p.liveOnly ?? false, p.first ?? 10);
21
+ if (!result.data.length)
22
+ return `No channels found for "${p.query}".`;
23
+ return [
24
+ `Twitch Channel Search: "${p.query}" (${result.data.length} results)`,
25
+ ``,
26
+ ...result.data.map((c, i) => [
27
+ `${i + 1}. ${c.display_name} (@${c.broadcaster_login}) ${c.is_live ? "[LIVE]" : ""}`,
28
+ ...(c.title ? [` Title: ${c.title}`] : []),
29
+ ...(c.game_name ? [` Category: ${c.game_name}`] : []),
30
+ ...(c.tags?.length ? [` Tags: ${c.tags.join(", ")}`] : []),
31
+ ].join("\n")),
32
+ ].join("\n");
33
+ }
34
+ catch (error) {
35
+ if (error instanceof CredentialsError)
36
+ return `Error: ${error.message}`;
37
+ return `Error searching Twitch channels: ${error instanceof Error ? error.message : "Unknown error"}`;
38
+ }
39
+ },
40
+ };
41
+ //# sourceMappingURL=search-channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-channels.js","sourceRoot":"","sources":["../../../src/tools/twitch-tools/search-channels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ declare const params: z.ZodObject<{
3
+ broadcasterId: z.ZodString;
4
+ senderId: z.ZodString;
5
+ message: z.ZodString;
6
+ clientId: z.ZodOptional<z.ZodString>;
7
+ clientSecret: z.ZodOptional<z.ZodString>;
8
+ accessToken: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$strip>;
10
+ type Params = z.infer<typeof params>;
11
+ export declare const sendChatMessageTool: {
12
+ readonly name: "TWITCH_SEND_CHAT_MESSAGE";
13
+ readonly description: "Send a message to a Twitch chat channel. Requires a user OAuth token with the 'chat:edit' scope (set TWITCH_ACCESS_TOKEN).";
14
+ readonly parameters: z.ZodObject<{
15
+ broadcasterId: z.ZodString;
16
+ senderId: z.ZodString;
17
+ message: z.ZodString;
18
+ clientId: z.ZodOptional<z.ZodString>;
19
+ clientSecret: z.ZodOptional<z.ZodString>;
20
+ accessToken: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
22
+ readonly execute: (p: Params) => Promise<string>;
23
+ };
24
+ export {};
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ import { CredentialsError } from "../../lib/errors.js";
3
+ import { TwitchService, getTwitchService } from "../../services/twitch-service.js";
4
+ const params = z.object({
5
+ broadcasterId: z.string().describe("Channel ID to send the message to (get via TWITCH_GET_USER)"),
6
+ senderId: z.string().describe("User ID of the bot/user sending the message (must match the access token owner)"),
7
+ message: z.string().min(1).max(500).describe("Chat message content (max 500 characters)"),
8
+ clientId: z.string().optional().describe("Twitch client ID (overrides TWITCH_CLIENT_ID env var)"),
9
+ clientSecret: z.string().optional().describe("Twitch client secret (overrides TWITCH_CLIENT_SECRET env var)"),
10
+ accessToken: z.string().optional().describe("User OAuth token with chat:edit scope (overrides TWITCH_ACCESS_TOKEN env var)"),
11
+ });
12
+ export const sendChatMessageTool = {
13
+ name: "TWITCH_SEND_CHAT_MESSAGE",
14
+ description: "Send a message to a Twitch chat channel. Requires a user OAuth token with the 'chat:edit' scope (set TWITCH_ACCESS_TOKEN).",
15
+ parameters: params,
16
+ execute: async (p) => {
17
+ try {
18
+ const service = p.clientId && p.clientSecret
19
+ ? new TwitchService({ clientId: p.clientId, clientSecret: p.clientSecret, accessToken: p.accessToken })
20
+ : getTwitchService();
21
+ const result = await service.sendChatMessage(p.broadcasterId, p.senderId, p.message);
22
+ const sent = result.data[0];
23
+ if (!sent?.is_sent) {
24
+ return `Message was not sent. Response: ${JSON.stringify(result)}`;
25
+ }
26
+ return [
27
+ `Chat message sent to Twitch channel!`,
28
+ `Message ID: ${sent.message_id}`,
29
+ `Content: ${p.message}`,
30
+ ].join("\n");
31
+ }
32
+ catch (error) {
33
+ if (error instanceof CredentialsError)
34
+ return `Error: ${error.message}`;
35
+ return `Error sending Twitch chat message: ${error instanceof Error ? error.message : "Unknown error"}`;
36
+ }
37
+ },
38
+ };
39
+ //# sourceMappingURL=send-chat-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-chat-message.js","sourceRoot":"","sources":["../../../src/tools/twitch-tools/send-chat-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEnF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IACjG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;IAChH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACzF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACjG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;IAC7G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;CAC5H,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,IAAI,EAAE,0BAA0B;IAChC,WAAW,EACV,4HAA4H;IAC7H,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,KAAK,EAAE,CAAS,EAAE,EAAE;QAC5B,IAAI,CAAC;YACJ,MAAM,OAAO,GACZ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY;gBAC3B,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvG,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAEvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACrF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,mCAAmC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,CAAC;YAED,OAAO;gBACN,sCAAsC;gBACtC,eAAe,IAAI,CAAC,UAAU,EAAE;gBAChC,YAAY,CAAC,CAAC,OAAO,EAAE;aACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,gBAAgB;gBAAE,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,OAAO,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QACzG,CAAC;IACF,CAAC;CACQ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "social-mcp",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "MCP server for posting and interacting across social media platforms: Twitter, Instagram, Facebook, WhatsApp, Discord, Telegram, Slack, LinkedIn, Reddit, Threads, TikTok, Pinterest, Medium, and Email (SMTP/SendGrid/Mailgun)",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",