@muhammadhamidraza/social-media-mcp-server 1.0.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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -0
  3. package/dist/config.d.ts +92 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +66 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +37 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/platforms/facebook.d.ts +23 -0
  12. package/dist/platforms/facebook.d.ts.map +1 -0
  13. package/dist/platforms/facebook.js +145 -0
  14. package/dist/platforms/facebook.js.map +1 -0
  15. package/dist/platforms/index.d.ts +4 -0
  16. package/dist/platforms/index.d.ts.map +1 -0
  17. package/dist/platforms/index.js +29 -0
  18. package/dist/platforms/index.js.map +1 -0
  19. package/dist/platforms/instagram.d.ts +22 -0
  20. package/dist/platforms/instagram.d.ts.map +1 -0
  21. package/dist/platforms/instagram.js +95 -0
  22. package/dist/platforms/instagram.js.map +1 -0
  23. package/dist/platforms/linkedin.d.ts +27 -0
  24. package/dist/platforms/linkedin.d.ts.map +1 -0
  25. package/dist/platforms/linkedin.js +157 -0
  26. package/dist/platforms/linkedin.js.map +1 -0
  27. package/dist/platforms/platform.d.ts +12 -0
  28. package/dist/platforms/platform.d.ts.map +1 -0
  29. package/dist/platforms/platform.js +2 -0
  30. package/dist/platforms/platform.js.map +1 -0
  31. package/dist/platforms/tiktok.d.ts +22 -0
  32. package/dist/platforms/tiktok.d.ts.map +1 -0
  33. package/dist/platforms/tiktok.js +95 -0
  34. package/dist/platforms/tiktok.js.map +1 -0
  35. package/dist/platforms/twitter.d.ts +23 -0
  36. package/dist/platforms/twitter.d.ts.map +1 -0
  37. package/dist/platforms/twitter.js +156 -0
  38. package/dist/platforms/twitter.js.map +1 -0
  39. package/dist/platforms/youtube.d.ts +23 -0
  40. package/dist/platforms/youtube.d.ts.map +1 -0
  41. package/dist/platforms/youtube.js +177 -0
  42. package/dist/platforms/youtube.js.map +1 -0
  43. package/package.json +49 -0
@@ -0,0 +1,23 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import { Platform } from "./platform.js";
3
+ interface YouTubeConfig {
4
+ apiKey: string;
5
+ }
6
+ export declare class YouTubePlatform implements Platform {
7
+ name: string;
8
+ private apiKey;
9
+ private baseUrl;
10
+ constructor(config: YouTubeConfig);
11
+ getTools(): Tool[];
12
+ executeTool(name: string, args: unknown): Promise<{
13
+ content: Array<{
14
+ type: string;
15
+ text: string;
16
+ }>;
17
+ }>;
18
+ private searchVideos;
19
+ private getVideo;
20
+ private getComments;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=youtube.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"youtube.d.ts","sourceRoot":"","sources":["../../src/platforms/youtube.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,IAAI,SAAa;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA2C;gBAE9C,MAAM,EAAE,aAAa;IAIjC,QAAQ,IAAI,IAAI,EAAE;IAyDZ,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;YAaY,YAAY;YAqCZ,QAAQ;YA2CR,WAAW;CAmC1B"}
@@ -0,0 +1,177 @@
1
+ export class YouTubePlatform {
2
+ name = "youtube";
3
+ apiKey;
4
+ baseUrl = "https://www.googleapis.com/youtube/v3";
5
+ constructor(config) {
6
+ this.apiKey = config.apiKey;
7
+ }
8
+ getTools() {
9
+ return [
10
+ {
11
+ name: "youtube_search",
12
+ description: "Search for videos on YouTube",
13
+ inputSchema: {
14
+ type: "object",
15
+ properties: {
16
+ query: {
17
+ type: "string",
18
+ description: "Search query"
19
+ },
20
+ maxResults: {
21
+ type: "number",
22
+ description: "Maximum number of results (default: 10)",
23
+ default: 10
24
+ }
25
+ },
26
+ required: ["query"]
27
+ }
28
+ },
29
+ {
30
+ name: "youtube_get_video",
31
+ description: "Get details of a specific YouTube video",
32
+ inputSchema: {
33
+ type: "object",
34
+ properties: {
35
+ videoId: {
36
+ type: "string",
37
+ description: "YouTube video ID"
38
+ }
39
+ },
40
+ required: ["videoId"]
41
+ }
42
+ },
43
+ {
44
+ name: "youtube_get_comments",
45
+ description: "Get comments for a YouTube video",
46
+ inputSchema: {
47
+ type: "object",
48
+ properties: {
49
+ videoId: {
50
+ type: "string",
51
+ description: "YouTube video ID"
52
+ },
53
+ maxResults: {
54
+ type: "number",
55
+ description: "Maximum number of comments (default: 20)",
56
+ default: 20
57
+ }
58
+ },
59
+ required: ["videoId"]
60
+ }
61
+ }
62
+ ];
63
+ }
64
+ async executeTool(name, args) {
65
+ switch (name) {
66
+ case "youtube_search":
67
+ return this.searchVideos(args);
68
+ case "youtube_get_video":
69
+ return this.getVideo(args);
70
+ case "youtube_get_comments":
71
+ return this.getComments(args);
72
+ default:
73
+ throw new Error(`Unknown tool: ${name}`);
74
+ }
75
+ }
76
+ async searchVideos(args) {
77
+ const maxResults = args.maxResults || 10;
78
+ const url = new URL(`${this.baseUrl}/search`);
79
+ url.searchParams.append("part", "snippet");
80
+ url.searchParams.append("q", args.query);
81
+ url.searchParams.append("type", "video");
82
+ url.searchParams.append("maxResults", maxResults.toString());
83
+ url.searchParams.append("key", this.apiKey);
84
+ try {
85
+ const response = await fetch(url.toString());
86
+ if (!response.ok) {
87
+ throw new Error(`YouTube API error: ${response.status} ${response.statusText}`);
88
+ }
89
+ const data = await response.json();
90
+ const videos = data.items.map((item) => ({
91
+ id: item.id.videoId,
92
+ title: item.snippet.title,
93
+ description: item.snippet.description,
94
+ channelTitle: item.snippet.channelTitle,
95
+ publishedAt: item.snippet.publishedAt
96
+ }));
97
+ return {
98
+ content: [{
99
+ type: "text",
100
+ text: JSON.stringify(videos, null, 2)
101
+ }]
102
+ };
103
+ }
104
+ catch (error) {
105
+ throw new Error(`Failed to search YouTube: ${error}`);
106
+ }
107
+ }
108
+ async getVideo(args) {
109
+ const url = new URL(`${this.baseUrl}/videos`);
110
+ url.searchParams.append("part", "snippet,contentDetails,statistics");
111
+ url.searchParams.append("id", args.videoId);
112
+ url.searchParams.append("key", this.apiKey);
113
+ try {
114
+ const response = await fetch(url.toString());
115
+ if (!response.ok) {
116
+ throw new Error(`YouTube API error: ${response.status} ${response.statusText}`);
117
+ }
118
+ const data = await response.json();
119
+ if (data.items.length === 0) {
120
+ throw new Error(`Video not found: ${args.videoId}`);
121
+ }
122
+ const video = data.items[0];
123
+ const result = {
124
+ id: video.id,
125
+ title: video.snippet.title,
126
+ description: video.snippet.description,
127
+ channelTitle: video.snippet.channelTitle,
128
+ publishedAt: video.snippet.publishedAt,
129
+ duration: video.contentDetails.duration,
130
+ viewCount: video.statistics.viewCount,
131
+ likeCount: video.statistics.likeCount,
132
+ commentCount: video.statistics.commentCount
133
+ };
134
+ return {
135
+ content: [{
136
+ type: "text",
137
+ text: JSON.stringify(result, null, 2)
138
+ }]
139
+ };
140
+ }
141
+ catch (error) {
142
+ throw new Error(`Failed to get video: ${error}`);
143
+ }
144
+ }
145
+ async getComments(args) {
146
+ const maxResults = args.maxResults || 20;
147
+ const url = new URL(`${this.baseUrl}/commentThreads`);
148
+ url.searchParams.append("part", "snippet");
149
+ url.searchParams.append("videoId", args.videoId);
150
+ url.searchParams.append("maxResults", maxResults.toString());
151
+ url.searchParams.append("key", this.apiKey);
152
+ try {
153
+ const response = await fetch(url.toString());
154
+ if (!response.ok) {
155
+ throw new Error(`YouTube API error: ${response.status} ${response.statusText}`);
156
+ }
157
+ const data = await response.json();
158
+ const comments = data.items.map((item) => ({
159
+ id: item.id,
160
+ author: item.snippet.topLevelComment.snippet.authorDisplayName,
161
+ text: item.snippet.topLevelComment.snippet.textDisplay,
162
+ publishedAt: item.snippet.topLevelComment.snippet.publishedAt,
163
+ likeCount: item.snippet.topLevelComment.snippet.likeCount
164
+ }));
165
+ return {
166
+ content: [{
167
+ type: "text",
168
+ text: JSON.stringify(comments, null, 2)
169
+ }]
170
+ };
171
+ }
172
+ catch (error) {
173
+ throw new Error(`Failed to get comments: ${error}`);
174
+ }
175
+ }
176
+ }
177
+ //# sourceMappingURL=youtube.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"youtube.js","sourceRoot":"","sources":["../../src/platforms/youtube.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@muhammadhamidraza/social-media-mcp-server",
3
+ "version": "1.0.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
+ }