@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.
- package/LICENSE +21 -0
- package/README.md +164 -0
- package/dist/config.d.ts +92 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/platforms/facebook.d.ts +23 -0
- package/dist/platforms/facebook.d.ts.map +1 -0
- package/dist/platforms/facebook.js +145 -0
- package/dist/platforms/facebook.js.map +1 -0
- package/dist/platforms/index.d.ts +4 -0
- package/dist/platforms/index.d.ts.map +1 -0
- package/dist/platforms/index.js +29 -0
- package/dist/platforms/index.js.map +1 -0
- package/dist/platforms/instagram.d.ts +22 -0
- package/dist/platforms/instagram.d.ts.map +1 -0
- package/dist/platforms/instagram.js +95 -0
- package/dist/platforms/instagram.js.map +1 -0
- package/dist/platforms/linkedin.d.ts +27 -0
- package/dist/platforms/linkedin.d.ts.map +1 -0
- package/dist/platforms/linkedin.js +157 -0
- package/dist/platforms/linkedin.js.map +1 -0
- package/dist/platforms/platform.d.ts +12 -0
- package/dist/platforms/platform.d.ts.map +1 -0
- package/dist/platforms/platform.js +2 -0
- package/dist/platforms/platform.js.map +1 -0
- package/dist/platforms/tiktok.d.ts +22 -0
- package/dist/platforms/tiktok.d.ts.map +1 -0
- package/dist/platforms/tiktok.js +95 -0
- package/dist/platforms/tiktok.js.map +1 -0
- package/dist/platforms/twitter.d.ts +23 -0
- package/dist/platforms/twitter.d.ts.map +1 -0
- package/dist/platforms/twitter.js +156 -0
- package/dist/platforms/twitter.js.map +1 -0
- package/dist/platforms/youtube.d.ts +23 -0
- package/dist/platforms/youtube.d.ts.map +1 -0
- package/dist/platforms/youtube.js +177 -0
- package/dist/platforms/youtube.js.map +1 -0
- 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
|
+
}
|