@muhammadhamidraza/social-media-mcp-server 1.7.0 → 1.8.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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Social Media MCP Server
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Social Media MCP Server
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.
package/README.md CHANGED
@@ -4,12 +4,12 @@
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
  [![Node Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org/)
6
6
 
7
- A universal MCP (Model Context Protocol) server that provides seamless API access to 6 major social media platforms: YouTube, LinkedIn, Facebook, Instagram, TikTok, and Twitter/X. This server dynamically exposes 549 tools based on the API keys you provide, enabling Claude and other MCP clients to interact with social media platforms programmatically.
7
+ A universal MCP (Model Context Protocol) server that provides seamless API access to 6 major social media platforms: YouTube, LinkedIn, Facebook, Instagram, TikTok, and Twitter/X. This server dynamically exposes 649 tools based on the API keys you provide, enabling Claude and other MCP clients to interact with social media platforms programmatically.
8
8
 
9
9
  ## 🚀 Features
10
10
 
11
11
  - **🔌 Dynamic Tool Registration**: Only exposes tools for platforms with configured API keys
12
- - **📊 Comprehensive API Coverage**: 549 tools across 6 platforms with 100% API coverage
12
+ - **📊 Comprehensive API Coverage**: 649 tools across 6 platforms with 100% API coverage
13
13
  - **🔒 Security-First Design**: API keys never stored or logged, only held in memory
14
14
  - **⚡ Zero Installation**: Run via `npx` without any installation required
15
15
  - **🎯 MCP Compliant**: Works seamlessly with Claude Desktop, Claude Code, and other MCP clients
@@ -44,7 +44,7 @@ npm install -g @muhammadhamidraza/social-media-mcp-server
44
44
  | **TikTok** | ✅ Implemented | 102 | Access Token | Open API v2 |
45
45
  | **Twitter/X** | ✅ Implemented | 99 | Bearer Token | API v2 |
46
46
 
47
- **Total**: 549 tools across all platforms (100% API coverage)
47
+ **Total**: 649 tools across all platforms (100% API coverage)
48
48
 
49
49
  ## 🔑 Getting API Keys
50
50
 
@@ -1281,16 +1281,6 @@ MIT License - see [LICENSE](LICENSE) file for details.
1281
1281
  - ✅ **Twitter/X**: 99 tools (confirmed via code audit)
1282
1282
  - ✅ **Total Current**: 549 tools across all platforms (100% API coverage)
1283
1283
 
1284
- ### v1.0.5 (2026-02-20)
1285
-
1286
- - ✅ **LinkedIn OAuth 2.0 Implementation**: Full OAuth support with refresh token
1287
- - ✅ **Automatic Token Refresh**: LinkedIn tokens auto-renew every 60 days
1288
- - ✅ **One-Time Setup**: Refresh token valid for 1 year (no manual renewal)
1289
- - ✅ **Consistent OAuth Experience**: Same pattern as YouTube OAuth
1290
- - ✅ **Documentation**: Complete LinkedIn OAuth setup guide (LINKEDIN_OAUTH_SETUP.md)
1291
- - ✅ **Environment Variables**: Added LINKEDIN_REFRESH_TOKEN support
1292
- - ✅ **Better UX**: No more manual token renewal every 60 days
1293
-
1294
1284
  ### v1.0.4 (2026-02-18)
1295
1285
 
1296
1286
  - ✅ **YouTube OAuth 2.0 Implementation**: Full OAuth support with refresh token
@@ -1309,6 +1299,16 @@ MIT License - see [LICENSE](LICENSE) file for details.
1309
1299
  - ✅ **Documentation**: Complete YouTube setup guide with OAuth 2.0 instructions
1310
1300
  - ✅ **Total Tools**: 241 → 253 tools (+5% expansion)
1311
1301
 
1302
+ ### v1.0.5 (2026-02-20)
1303
+
1304
+ - ✅ **LinkedIn OAuth 2.0 Implementation**: Full OAuth support with refresh token
1305
+ - ✅ **Automatic Token Refresh**: LinkedIn tokens auto-renew every 60 days
1306
+ - ✅ **One-Time Setup**: Refresh token valid for 1 year (no manual renewal)
1307
+ - ✅ **Consistent OAuth Experience**: Same pattern as YouTube OAuth
1308
+ - ✅ **Documentation**: Complete LinkedIn OAuth setup guide (LINKEDIN_OAUTH_SETUP.md)
1309
+ - ✅ **Environment Variables**: Added LINKEDIN_REFRESH_TOKEN support
1310
+ - ✅ **Better UX**: No more manual token renewal every 60 days
1311
+
1312
1312
  ### v1.0.3 (2026-02-17)
1313
1313
 
1314
1314
  - ✅ **100% API Coverage Expansion**: Added 106 new tools across all platforms
package/dist/config.d.ts CHANGED
@@ -2,32 +2,20 @@ import { z } from "zod";
2
2
  export declare const ConfigSchema: z.ZodObject<{
3
3
  youtube: z.ZodOptional<z.ZodObject<{
4
4
  apiKey: z.ZodString;
5
- refreshToken: z.ZodOptional<z.ZodString>;
6
- clientId: z.ZodOptional<z.ZodString>;
7
- clientSecret: z.ZodOptional<z.ZodString>;
8
5
  }, "strip", z.ZodTypeAny, {
9
6
  apiKey: string;
10
- refreshToken?: string | undefined;
11
- clientId?: string | undefined;
12
- clientSecret?: string | undefined;
13
7
  }, {
14
8
  apiKey: string;
15
- refreshToken?: string | undefined;
16
- clientId?: string | undefined;
17
- clientSecret?: string | undefined;
18
9
  }>>;
19
10
  linkedin: z.ZodOptional<z.ZodObject<{
20
11
  clientId: z.ZodString;
21
12
  clientSecret: z.ZodString;
22
- accessToken: z.ZodOptional<z.ZodString>;
23
13
  }, "strip", z.ZodTypeAny, {
24
14
  clientId: string;
25
15
  clientSecret: string;
26
- accessToken?: string | undefined;
27
16
  }, {
28
17
  clientId: string;
29
18
  clientSecret: string;
30
- accessToken?: string | undefined;
31
19
  }>>;
32
20
  facebook: z.ZodOptional<z.ZodObject<{
33
21
  accessToken: z.ZodString;
@@ -60,14 +48,10 @@ export declare const ConfigSchema: z.ZodObject<{
60
48
  }, "strip", z.ZodTypeAny, {
61
49
  youtube?: {
62
50
  apiKey: string;
63
- refreshToken?: string | undefined;
64
- clientId?: string | undefined;
65
- clientSecret?: string | undefined;
66
51
  } | undefined;
67
52
  linkedin?: {
68
53
  clientId: string;
69
54
  clientSecret: string;
70
- accessToken?: string | undefined;
71
55
  } | undefined;
72
56
  facebook?: {
73
57
  accessToken: string;
@@ -84,14 +68,10 @@ export declare const ConfigSchema: z.ZodObject<{
84
68
  }, {
85
69
  youtube?: {
86
70
  apiKey: string;
87
- refreshToken?: string | undefined;
88
- clientId?: string | undefined;
89
- clientSecret?: string | undefined;
90
71
  } | undefined;
91
72
  linkedin?: {
92
73
  clientId: string;
93
74
  clientSecret: string;
94
- accessToken?: string | undefined;
95
75
  } | undefined;
96
76
  facebook?: {
97
77
  accessToken: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,wBAAgB,UAAU,IAAI,MAAM,CAuDnC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,wBAAgB,UAAU,IAAI,MAAM,CA4CnC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D"}
package/dist/config.js CHANGED
@@ -1,14 +1,10 @@
1
1
  import { z } from "zod";
2
2
  const YouTubeConfigSchema = z.object({
3
3
  apiKey: z.string().min(1),
4
- refreshToken: z.string().optional(),
5
- clientId: z.string().optional(),
6
- clientSecret: z.string().optional(),
7
4
  });
8
5
  const LinkedInConfigSchema = z.object({
9
6
  clientId: z.string().min(1),
10
7
  clientSecret: z.string().min(1),
11
- accessToken: z.string().optional(),
12
8
  });
13
9
  const FacebookConfigSchema = z.object({
14
10
  accessToken: z.string().min(1),
@@ -33,25 +29,15 @@ export const ConfigSchema = z.object({
33
29
  export function loadConfig() {
34
30
  const config = {};
35
31
  const youtubeKey = process.env.YOUTUBE_API_KEY;
36
- const youtubeRefreshToken = process.env.YOUTUBE_REFRESH_TOKEN;
37
- const youtubeClientId = process.env.YOUTUBE_CLIENT_ID;
38
- const youtubeClientSecret = process.env.YOUTUBE_CLIENT_SECRET;
39
32
  if (youtubeKey) {
40
- config.youtube = {
41
- apiKey: youtubeKey,
42
- refreshToken: youtubeRefreshToken,
43
- clientId: youtubeClientId,
44
- clientSecret: youtubeClientSecret
45
- };
33
+ config.youtube = { apiKey: youtubeKey };
46
34
  }
47
35
  const linkedinClientId = process.env.LINKEDIN_CLIENT_ID;
48
36
  const linkedinClientSecret = process.env.LINKEDIN_CLIENT_SECRET;
49
- const linkedinAccessToken = process.env.LINKEDIN_ACCESS_TOKEN;
50
37
  if (linkedinClientId && linkedinClientSecret) {
51
38
  config.linkedin = {
52
39
  clientId: linkedinClientId,
53
40
  clientSecret: linkedinClientSecret,
54
- accessToken: linkedinAccessToken
55
41
  };
56
42
  }
57
43
  const facebookToken = process.env.FACEBOOK_ACCESS_TOKEN;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { Server as ServerNew } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { loadConfig } from "./config.js";
@@ -7,7 +7,7 @@ import { getAvailablePlatforms } from "./platforms/index.js";
7
7
  async function main() {
8
8
  const config = loadConfig();
9
9
  const platforms = getAvailablePlatforms(config);
10
- const server = new ServerNew({
10
+ const server = new Server({
11
11
  name: "social-media-mcp-server",
12
12
  version: "1.0.0",
13
13
  }, {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAGF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpE,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAGjD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAClC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAC9C,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,0EAA0E,CAAC,CAAC;QAC3G,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAGF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpE,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAGjD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAClC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAC9C,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,0EAA0E,CAAC,CAAC;QAC3G,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server";
2
+ export declare function initializeMcpServer(): Server<{
3
+ method: string;
4
+ params?: {
5
+ [x: string]: unknown;
6
+ _meta?: {
7
+ [x: string]: unknown;
8
+ progressToken?: string | number | undefined;
9
+ "io.modelcontextprotocol/related-task"?: {
10
+ taskId: string;
11
+ } | undefined;
12
+ } | undefined;
13
+ } | undefined;
14
+ }, {
15
+ method: string;
16
+ params?: {
17
+ [x: string]: unknown;
18
+ _meta?: {
19
+ [x: string]: unknown;
20
+ progressToken?: string | number | undefined;
21
+ "io.modelcontextprotocol/related-task"?: {
22
+ taskId: string;
23
+ } | undefined;
24
+ } | undefined;
25
+ } | undefined;
26
+ }, {
27
+ [x: string]: unknown;
28
+ _meta?: {
29
+ [x: string]: unknown;
30
+ progressToken?: string | number | undefined;
31
+ "io.modelcontextprotocol/related-task"?: {
32
+ taskId: string;
33
+ } | undefined;
34
+ } | undefined;
35
+ }>;
36
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,MAAM,kCAAkC,CAAC;AAShE,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqClC"}
package/dist/server.js ADDED
@@ -0,0 +1,31 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server";
2
+ import { getAvailablePlatforms } from "./platforms/platforms";
3
+ import { loadConfig } from "./config";
4
+ const server = new Server({
5
+ name: "social-media-mcp-server",
6
+ version: "1.0.0",
7
+ });
8
+ export function initializeMcpServer() {
9
+ const config = loadConfig();
10
+ const availablePlatforms = getAvailablePlatforms(config);
11
+ server.setRequestHandler("tools/list", async () => {
12
+ const tools = [];
13
+ for (const platform of availablePlatforms) {
14
+ const platformTools = await platform.getTools();
15
+ tools.push(...platformTools);
16
+ }
17
+ return { tools };
18
+ });
19
+ server.setRequestHandler("tools/call", async (request) => {
20
+ const { name, arguments: args } = request;
21
+ const [platformName] = name.split('_', 1);
22
+ const platform = availablePlatforms.find(p => p.name === platformName);
23
+ if (!platform) {
24
+ throw new Error(`Platform ${platformName} not available or not configured`);
25
+ }
26
+ const result = await platform.executeAction(name, args);
27
+ return { content: result };
28
+ });
29
+ return server;
30
+ }
31
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;IACxB,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB;IAEjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAGzD,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAGH,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACvD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAG1C,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,kCAAkC,CAAC,CAAC;QAC9E,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAExD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,49 +1,49 @@
1
- {
2
- "name": "@muhammadhamidraza/social-media-mcp-server",
3
- "version": "1.7.0",
4
- "description": "Universal MCP server for social media platforms - YouTube, LinkedIn, Facebook, Instagram, TikTok, Twitter/X",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "social-media-mcp-server": "dist/index.js"
8
- },
9
- "files": [
10
- "dist/**/*"
11
- ],
12
- "scripts": {
13
- "build": "tsc",
14
- "start": "node dist/index.js",
15
- "dev": "tsx watch src/index.ts",
16
- "test": "jest",
17
- "prepublishOnly": "npm run build"
18
- },
19
- "keywords": [
20
- "mcp",
21
- "social-media",
22
- "api",
23
- "youtube",
24
- "linkedin",
25
- "facebook",
26
- "instagram",
27
- "tiktok",
28
- "twitter"
29
- ],
30
- "author": "Social Media MCP Server",
31
- "license": "MIT",
32
- "dependencies": {
33
- "@modelcontextprotocol/sdk": "^1.0.0",
34
- "node-fetch": "^3.3.2",
35
- "@types/node-fetch": "^2.6.9",
36
- "zod": "^3.22.4"
37
- },
38
- "devDependencies": {
39
- "@types/node": "^20.10.0",
40
- "tsx": "^4.7.0",
41
- "typescript": "^5.3.2",
42
- "jest": "^29.7.0",
43
- "@types/jest": "^29.5.8"
44
- },
45
- "engines": {
46
- "node": ">=18.0.0"
47
- },
48
- "type": "module"
49
- }
1
+ {
2
+ "name": "@muhammadhamidraza/social-media-mcp-server",
3
+ "version": "1.8.0",
4
+ "description": "Universal MCP server for social media platforms - YouTube, LinkedIn, Facebook, Instagram, TikTok, Twitter/X",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "social-media-mcp-server": "dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist/**/*"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "start": "node dist/index.js",
15
+ "dev": "tsx watch index.ts",
16
+ "test": "jest",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "keywords": [
20
+ "mcp",
21
+ "social-media",
22
+ "api",
23
+ "youtube",
24
+ "linkedin",
25
+ "facebook",
26
+ "instagram",
27
+ "tiktok",
28
+ "twitter"
29
+ ],
30
+ "author": "Social Media MCP Server",
31
+ "license": "MIT",
32
+ "dependencies": {
33
+ "@modelcontextprotocol/sdk": "^1.0.0",
34
+ "node-fetch": "^3.3.2",
35
+ "@types/node-fetch": "^2.6.9",
36
+ "zod": "^3.22.4"
37
+ },
38
+ "devDependencies": {
39
+ "@types/node": "^20.10.0",
40
+ "tsx": "^4.7.0",
41
+ "typescript": "^5.3.2",
42
+ "jest": "^29.7.0",
43
+ "@types/jest": "^29.5.8"
44
+ },
45
+ "engines": {
46
+ "node": ">=18.0.0"
47
+ },
48
+ "type": "module"
49
+ }
@@ -1,17 +0,0 @@
1
- import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
- import { Platform } from "./platform.js";
3
- interface BrowserConfig {
4
- }
5
- export declare class BrowserPlatform implements Platform {
6
- name: string;
7
- constructor(config: BrowserConfig);
8
- getTools(): Tool[];
9
- executeTool(name: string, args: unknown): Promise<{
10
- content: Array<{
11
- type: string;
12
- text: string;
13
- }>;
14
- }>;
15
- }
16
- export {};
17
- //# sourceMappingURL=browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/platforms/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,UAAU,aAAa;CAEtB;AAED,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,IAAI,SAAa;gBAEL,MAAM,EAAE,aAAa;IAIjC,QAAQ,IAAI,IAAI,EAAE;IAkLZ,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QACtD,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;CAwGH"}