@scavio/mcp-server 0.3.1 → 0.4.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/README.md +22 -6
- package/dist/tools/youtube.js +214 -16
- package/dist/tools/youtube.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|

|
|
4
4
|

|
|
5
5
|
|
|
6
|
-
[Scavio](https://scavio.dev) is a unified [Web Search API](https://scavio.dev/docs/search-api) and MCP server that connects AI agents to Google, YouTube, Amazon, Walmart, TikTok, Instagram, and Reddit.
|
|
6
|
+
[Scavio](https://scavio.dev) is a unified [Web Search API](https://scavio.dev/docs/search-api) and MCP server that connects AI agents to Google, YouTube, Amazon, Walmart, TikTok, Instagram, and Reddit. 60 tools for web search, product lookup, video discovery, and social media data through a single [Search API](https://scavio.dev/docs/search-api) endpoint.
|
|
7
7
|
|
|
8
8
|
## Remote MCP Server
|
|
9
9
|
|
|
@@ -216,7 +216,21 @@ Add to settings (`Cmd+,`):
|
|
|
216
216
|
| Tool | Description |
|
|
217
217
|
|------|-------------|
|
|
218
218
|
| `search_youtube` | Search videos, channels, and playlists |
|
|
219
|
-
| `
|
|
219
|
+
| `search_youtube_shorts` | Search short-form videos |
|
|
220
|
+
| `youtube_search_suggestions` | Get search autocomplete suggestions |
|
|
221
|
+
| `get_youtube_video` | Get full video details, chapters, and captions |
|
|
222
|
+
| `get_youtube_metadata` | Deprecated alias of `get_youtube_video` |
|
|
223
|
+
| `get_youtube_comments` | Get comments on a video with pagination |
|
|
224
|
+
| `get_youtube_comment_replies` | Get replies to a specific comment |
|
|
225
|
+
| `get_youtube_transcript` | Get a video transcript as plain text or SRT |
|
|
226
|
+
| `get_youtube_related` | Get videos related to a video |
|
|
227
|
+
| `search_youtube_channels` | Search channels by keyword |
|
|
228
|
+
| `get_youtube_channel` | Get channel profile by ID, handle, or URL |
|
|
229
|
+
| `get_youtube_channel_videos` | List a channel's videos |
|
|
230
|
+
| `get_youtube_channel_shorts` | List a channel's Shorts |
|
|
231
|
+
| `get_youtube_channel_community` | List a channel's community posts |
|
|
232
|
+
| `resolve_youtube_channel` | Resolve a handle or URL to a channel ID |
|
|
233
|
+
| `get_youtube_streams` | Get direct media stream URLs for a video |
|
|
220
234
|
|
|
221
235
|
### [Amazon Product API](https://scavio.dev/docs/amazon-api)
|
|
222
236
|
|
|
@@ -282,11 +296,13 @@ Add to settings (`Cmd+,`):
|
|
|
282
296
|
|
|
283
297
|
## About Scavio
|
|
284
298
|
|
|
285
|
-
[Scavio](https://scavio.dev) is a unified [
|
|
299
|
+
[Scavio](https://scavio.dev) is a unified [search API for AI agents](https://scavio.dev/search-api-for-ai-agents) and a data API for developers. One key, structured JSON, no scraping or proxies:
|
|
286
300
|
|
|
287
|
-
- [Google Search API](https://scavio.dev/
|
|
288
|
-
- [Amazon Product API](https://scavio.dev/
|
|
289
|
-
- [TikTok API](https://scavio.dev/
|
|
301
|
+
- [Google Search API](https://scavio.dev/google-search-api) — SERP results, news, images, maps, and knowledge graph
|
|
302
|
+
- [Amazon Product API](https://scavio.dev/amazon-product-api) and [Walmart Product API](https://scavio.dev/walmart-product-api) — product search and details
|
|
303
|
+
- [TikTok API](https://scavio.dev/tiktok-api), [Instagram API](https://scavio.dev/instagram-api), [Reddit API](https://scavio.dev/reddit-api), and [YouTube API](https://scavio.dev/youtube-transcript-api) — social and video data
|
|
304
|
+
|
|
305
|
+
Teams use it as a [SerpAPI alternative](https://scavio.dev/alternatives/serpapi) with structured multi-platform data — see [Tavily vs Scavio](https://scavio.dev/compare/tavily/vs-scavio) for a head-to-head comparison.
|
|
290
306
|
|
|
291
307
|
Get a free [Search API](https://scavio.dev/docs/search-api) key at [scavio.dev](https://scavio.dev).
|
|
292
308
|
|
package/dist/tools/youtube.js
CHANGED
|
@@ -12,37 +12,39 @@ function handleApiError(err) {
|
|
|
12
12
|
throw new McpError(ErrorCode.InternalError, String(err));
|
|
13
13
|
}
|
|
14
14
|
export function registerYoutubeTools(server, getClient) {
|
|
15
|
-
server.tool("search_youtube", `Search YouTube and return video results as JSON. Each result includes video ID, title, channel, duration, view count, and upload date. Use when the user asks to find YouTube videos on a topic.`, {
|
|
15
|
+
server.tool("search_youtube", `Search YouTube and return video results as JSON. Each result includes video ID, title, channel, duration, view count, and upload date; the response also groups shorts, channels, and playlists. Use data.next_cursor as the next cursor while has_more is true. Costs 2 credits. Use when the user asks to find YouTube videos on a topic.`, {
|
|
16
16
|
search: z.string().min(1).max(500)
|
|
17
17
|
.describe("YouTube search query."),
|
|
18
18
|
sort_by: z.enum(["relevance", "date", "view_count", "rating"]).default("relevance")
|
|
19
19
|
.describe("Sort order. Use 'date' for most recent, 'view_count' for most watched."),
|
|
20
|
-
type: z.enum(["video", "channel", "playlist"]).default("video")
|
|
20
|
+
type: z.enum(["video", "channel", "playlist", "movie"]).default("video")
|
|
21
21
|
.describe("Result type filter."),
|
|
22
22
|
upload_date: z.enum(["last_hour", "today", "this_week", "this_month", "this_year"]).optional()
|
|
23
23
|
.describe("Filter by upload date. Omit for all time."),
|
|
24
24
|
duration: z.enum(["short", "medium", "long"]).optional()
|
|
25
25
|
.describe("Filter by duration. short=<4min, medium=4-20min, long=>20min."),
|
|
26
|
+
features: z.array(z.enum(["hd", "4k", "subtitles", "creative_commons", "live", "360", "3d", "hdr", "vr180"])).optional()
|
|
27
|
+
.describe("Feature filters to require, e.g. ['hd','subtitles']."),
|
|
28
|
+
cursor: z.string().optional()
|
|
29
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
26
30
|
hd: z.boolean().optional()
|
|
27
|
-
.describe("HD videos only."),
|
|
31
|
+
.describe("Deprecated: use features ['hd']. HD videos only."),
|
|
28
32
|
"4k": z.boolean().optional()
|
|
29
|
-
.describe("4K videos only."),
|
|
33
|
+
.describe("Deprecated: use features ['4k']. 4K videos only."),
|
|
30
34
|
subtitles: z.boolean().optional()
|
|
31
|
-
.describe("Videos with subtitles/CC only."),
|
|
35
|
+
.describe("Deprecated: use features ['subtitles']. Videos with subtitles/CC only."),
|
|
32
36
|
creative_commons: z.boolean().optional()
|
|
33
|
-
.describe("Creative Commons licensed videos only."),
|
|
37
|
+
.describe("Deprecated: use features ['creative_commons']. Creative Commons licensed videos only."),
|
|
34
38
|
live: z.boolean().optional()
|
|
35
|
-
.describe("Live videos only."),
|
|
39
|
+
.describe("Deprecated: use features ['live']. Live videos only."),
|
|
36
40
|
"360": z.boolean().optional()
|
|
37
|
-
.describe("360-degree videos only."),
|
|
41
|
+
.describe("Deprecated: use features ['360']. 360-degree videos only."),
|
|
38
42
|
"3d": z.boolean().optional()
|
|
39
|
-
.describe("3D videos only."),
|
|
43
|
+
.describe("Deprecated: use features ['3d']. 3D videos only."),
|
|
40
44
|
hdr: z.boolean().optional()
|
|
41
|
-
.describe("HDR videos only."),
|
|
42
|
-
location: z.boolean().optional()
|
|
43
|
-
.describe("Videos with location metadata only."),
|
|
45
|
+
.describe("Deprecated: use features ['hdr']. HDR videos only."),
|
|
44
46
|
vr180: z.boolean().optional()
|
|
45
|
-
.describe("VR180 videos only."),
|
|
47
|
+
.describe("Deprecated: use features ['vr180']. VR180 videos only."),
|
|
46
48
|
}, async (params) => {
|
|
47
49
|
try {
|
|
48
50
|
const data = await getClient().post("/api/v1/youtube/search", params);
|
|
@@ -52,12 +54,208 @@ export function registerYoutubeTools(server, getClient) {
|
|
|
52
54
|
return handleApiError(err);
|
|
53
55
|
}
|
|
54
56
|
});
|
|
55
|
-
server.tool("
|
|
57
|
+
server.tool("search_youtube_shorts", `Search YouTube Shorts and return short-form video results as JSON. Each result includes video ID, title, URL, thumbnail, view count, and upload time. Use data.next_cursor as the next cursor while has_more is true. Costs 2 credits.`, {
|
|
58
|
+
search: z.string().min(1).max(500)
|
|
59
|
+
.describe("YouTube Shorts search query."),
|
|
60
|
+
sort_by: z.enum(["relevance", "date", "view_count", "rating"]).default("relevance")
|
|
61
|
+
.describe("Sort order. Use 'date' for most recent, 'view_count' for most watched."),
|
|
62
|
+
cursor: z.string().optional()
|
|
63
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
64
|
+
}, async (params) => {
|
|
65
|
+
try {
|
|
66
|
+
const data = await getClient().post("/api/v1/youtube/shorts", params);
|
|
67
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
return handleApiError(err);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
server.tool("youtube_search_suggestions", `Get YouTube search autocomplete suggestions for a partial query as JSON. Returns a list of suggested search strings. Use to expand a seed keyword or surface what people search for.`, {
|
|
74
|
+
search: z.string().min(1).max(500)
|
|
75
|
+
.describe("Partial or seed search query to autocomplete."),
|
|
76
|
+
language: z.string().default("en")
|
|
77
|
+
.describe("Suggestion language code, e.g. 'en', 'es', 'fr'."),
|
|
78
|
+
region: z.string().default("US")
|
|
79
|
+
.describe("Two-letter region code, e.g. 'US', 'GB', 'IN'."),
|
|
80
|
+
}, async (params) => {
|
|
81
|
+
try {
|
|
82
|
+
const data = await getClient().post("/api/v1/youtube/suggestions", params);
|
|
83
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
return handleApiError(err);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
server.tool("get_youtube_video", `Get full details for a YouTube video as JSON. Returns title, author, channel, publish date, description, length in seconds, view count, keywords, thumbnail, playability status, chapters, and available captions. Accepts a video ID or a watch URL. Use when the user has a specific video and wants details about it.`, {
|
|
90
|
+
video_id: z.string()
|
|
91
|
+
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ', or a full watch URL."),
|
|
92
|
+
}, async (params) => {
|
|
93
|
+
try {
|
|
94
|
+
const data = await getClient().post("/api/v1/youtube/video", params);
|
|
95
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
return handleApiError(err);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
server.tool("get_youtube_metadata", `Deprecated alias of get_youtube_video, kept for backward compatibility. Get details for a YouTube video by its video ID or watch URL. Prefer get_youtube_video for new integrations.`, {
|
|
102
|
+
video_id: z.string()
|
|
103
|
+
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ', or a full watch URL."),
|
|
104
|
+
}, async (params) => {
|
|
105
|
+
try {
|
|
106
|
+
const data = await getClient().post("/api/v1/youtube/video", params);
|
|
107
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
return handleApiError(err);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
server.tool("get_youtube_comments", `Get comments on a YouTube video as JSON. Each comment includes its ID, text, like count, reply count, publish time, a reply_cursor for fetching its replies, and author details. Accepts a video ID. Use data.next_cursor as the next cursor while has_more is true.`, {
|
|
114
|
+
video_id: z.string()
|
|
115
|
+
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ'."),
|
|
116
|
+
cursor: z.string().optional()
|
|
117
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
118
|
+
}, async (params) => {
|
|
119
|
+
try {
|
|
120
|
+
const data = await getClient().post("/api/v1/youtube/comments", params);
|
|
121
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
return handleApiError(err);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
server.tool("get_youtube_comment_replies", `Get replies to a specific YouTube comment as JSON. Requires the video ID and the reply_cursor from a comment in the get_youtube_comments response. Use data.next_cursor as the next cursor while has_more is true.`, {
|
|
128
|
+
video_id: z.string()
|
|
129
|
+
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ'."),
|
|
130
|
+
reply_cursor: z.string()
|
|
131
|
+
.describe("The reply_cursor from a comment in the get_youtube_comments response."),
|
|
132
|
+
cursor: z.string().optional()
|
|
133
|
+
.describe("Pagination cursor (next_cursor) from a previous replies response."),
|
|
134
|
+
}, async (params) => {
|
|
135
|
+
try {
|
|
136
|
+
const data = await getClient().post("/api/v1/youtube/comments/replies", params);
|
|
137
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
return handleApiError(err);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
server.tool("get_youtube_transcript", `Get the transcript of a YouTube video as JSON. Returns the caption text for the requested language. Use format 'text' for a plain transcript or 'srt' for timed subtitles. Accepts a video ID. Costs 8 credits. Use when the user wants to read, summarize, or analyze a video's content.`, {
|
|
144
|
+
video_id: z.string()
|
|
145
|
+
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ', or a full watch URL."),
|
|
146
|
+
language: z.string().default("en")
|
|
147
|
+
.describe("Transcript language code, e.g. 'en', 'es', 'fr'."),
|
|
148
|
+
format: z.enum(["text", "srt"]).default("text")
|
|
149
|
+
.describe("'text' for a plain transcript, 'srt' for timed subtitles."),
|
|
150
|
+
}, async (params) => {
|
|
151
|
+
try {
|
|
152
|
+
const data = await getClient().post("/api/v1/youtube/transcript", params);
|
|
153
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
return handleApiError(err);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
server.tool("get_youtube_related", `Get videos related to a YouTube video as JSON. Each result includes video ID, title, URL, channel, thumbnail, view count, publish time, and length. Accepts a video ID. Use to discover similar or recommended videos.`, {
|
|
160
|
+
video_id: z.string()
|
|
161
|
+
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ'."),
|
|
162
|
+
cursor: z.string().optional()
|
|
163
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
164
|
+
}, async (params) => {
|
|
165
|
+
try {
|
|
166
|
+
const data = await getClient().post("/api/v1/youtube/related", params);
|
|
167
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
return handleApiError(err);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
server.tool("search_youtube_channels", `Search YouTube channels by keyword as JSON. Each result includes channel ID, name, handle, URL, thumbnail, subscriber count, and description. Use data.next_cursor as the next cursor while has_more is true.`, {
|
|
174
|
+
search: z.string().min(1).max(500)
|
|
175
|
+
.describe("Channel search query."),
|
|
176
|
+
cursor: z.string().optional()
|
|
177
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
178
|
+
}, async (params) => {
|
|
179
|
+
try {
|
|
180
|
+
const data = await getClient().post("/api/v1/youtube/channel/search", params);
|
|
181
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
return handleApiError(err);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
server.tool("get_youtube_channel", `Get a YouTube channel's profile as JSON. Returns channel ID, title, description, handle, URL, subscriber/video/view counts, country, creation date, verified flag, avatar, banner, and external links. Accepts a channel ID, an @handle, or a channel URL.`, {
|
|
188
|
+
channel_id: z.string()
|
|
189
|
+
.describe("YouTube channel ID (e.g. 'UC...'), an @handle, or a channel URL."),
|
|
190
|
+
}, async (params) => {
|
|
191
|
+
try {
|
|
192
|
+
const data = await getClient().post("/api/v1/youtube/channel", params);
|
|
193
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
return handleApiError(err);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
server.tool("get_youtube_channel_videos", `List a YouTube channel's videos as JSON. Each result includes video ID, title, URL, thumbnail, duration, view count, publish time, and live flag. Accepts a channel ID. Use data.next_cursor as the next cursor while has_more is true.`, {
|
|
200
|
+
channel_id: z.string()
|
|
201
|
+
.describe("YouTube channel ID, e.g. 'UC...'."),
|
|
202
|
+
cursor: z.string().optional()
|
|
203
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
204
|
+
}, async (params) => {
|
|
205
|
+
try {
|
|
206
|
+
const data = await getClient().post("/api/v1/youtube/channel/videos", params);
|
|
207
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
return handleApiError(err);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
server.tool("get_youtube_channel_shorts", `List a YouTube channel's Shorts as JSON. Each result includes video ID, title, URL, thumbnail, and view count. Accepts a channel ID. Use data.next_cursor as the next cursor while has_more is true.`, {
|
|
214
|
+
channel_id: z.string()
|
|
215
|
+
.describe("YouTube channel ID, e.g. 'UC...'."),
|
|
216
|
+
cursor: z.string().optional()
|
|
217
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
218
|
+
}, async (params) => {
|
|
219
|
+
try {
|
|
220
|
+
const data = await getClient().post("/api/v1/youtube/channel/shorts", params);
|
|
221
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
return handleApiError(err);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
server.tool("get_youtube_channel_community", `List a YouTube channel's community posts as JSON. Each post includes its ID, URL, text, author, publish time, vote count, comment count, attached images, and attachment type. Accepts a channel ID. Use data.next_cursor as the next cursor while has_more is true.`, {
|
|
228
|
+
channel_id: z.string()
|
|
229
|
+
.describe("YouTube channel ID, e.g. 'UC...'."),
|
|
230
|
+
cursor: z.string().optional()
|
|
231
|
+
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
232
|
+
}, async (params) => {
|
|
233
|
+
try {
|
|
234
|
+
const data = await getClient().post("/api/v1/youtube/channel/community", params);
|
|
235
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
return handleApiError(err);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
server.tool("resolve_youtube_channel", `Resolve a YouTube @handle or channel URL to its canonical channel ID and URL, returned as JSON. Use before other channel tools when you only have a handle or a vanity URL.`, {
|
|
242
|
+
channel: z.string()
|
|
243
|
+
.describe("A YouTube @handle (e.g. '@MrBeast') or a channel URL."),
|
|
244
|
+
}, async (params) => {
|
|
245
|
+
try {
|
|
246
|
+
const data = await getClient().post("/api/v1/youtube/channel/resolve", params);
|
|
247
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
248
|
+
}
|
|
249
|
+
catch (err) {
|
|
250
|
+
return handleApiError(err);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
server.tool("get_youtube_streams", `Get direct media stream URLs for a YouTube video as JSON. Returns progressive and adaptive formats with itag, URL, mime type, bitrate, resolution, quality label, fps, and audio details, plus available qualities and URL expiry. Accepts a video ID. Costs 3 credits.`, {
|
|
56
254
|
video_id: z.string()
|
|
57
|
-
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ'
|
|
255
|
+
.describe("YouTube video ID, e.g. 'dQw4w9WgXcQ', or a full watch URL."),
|
|
58
256
|
}, async (params) => {
|
|
59
257
|
try {
|
|
60
|
-
const data = await getClient().post("/api/v1/youtube/
|
|
258
|
+
const data = await getClient().post("/api/v1/youtube/streams", params);
|
|
61
259
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
62
260
|
}
|
|
63
261
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube.js","sourceRoot":"","sources":["../../src/tools/youtube.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"youtube.js","sourceRoot":"","sources":["../../src/tools/youtube.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scavio/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"mcpName": "io.github.scavio-ai/scavio-mcp",
|
|
5
|
-
"description": "MCP server connecting AI agents to Google, YouTube, Amazon, Walmart, TikTok, Instagram, and Reddit.
|
|
5
|
+
"description": "MCP server connecting AI agents to Google, YouTube, Amazon, Walmart, TikTok, Instagram, and Reddit. 60 tools for web search, product lookup, video discovery, and social media analysis.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "Scavio",
|