@bycrawl/mcp 0.4.0 → 0.4.2
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 +10 -7
- package/build/server.js +0 -2
- package/build/server.js.map +1 -1
- package/build/tools/facebook.js +16 -0
- package/build/tools/facebook.js.map +1 -1
- package/package.json +3 -4
- package/build/tools/xiaohongshu.d.ts +0 -2
- package/build/tools/xiaohongshu.js +0 -31
- package/build/tools/xiaohongshu.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
MCP server for [ByCrawl](https://bycrawl.com) — query
|
|
1
|
+
MCP server for [ByCrawl](https://bycrawl.com) — query 12 social media platforms from AI agents like Claude and Cursor.
|
|
2
2
|
|
|
3
|
-
**Supported platforms:** Threads, X/Twitter, Facebook, Reddit, LinkedIn, Xiaohongshu (RED), TikTok, Instagram
|
|
3
|
+
**Supported platforms:** Threads, X/Twitter, Facebook, Reddit, LinkedIn, Xiaohongshu (RED), TikTok, Instagram, YouTube, Dcard, 104 Job Bank
|
|
4
4
|
|
|
5
5
|
## Setup
|
|
6
6
|
|
|
@@ -28,18 +28,21 @@ Add to your MCP config:
|
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
## Tools (
|
|
31
|
+
## Tools (64)
|
|
32
32
|
|
|
33
33
|
| Platform | Tools | Examples |
|
|
34
34
|
|----------|-------|---------|
|
|
35
|
-
| Threads |
|
|
35
|
+
| Threads | 8 | Search posts, get user profile/replies, public feed |
|
|
36
36
|
| X/Twitter | 4 | Search tweets, get user timeline |
|
|
37
37
|
| Facebook | 4 | Get page, search posts, get post by URL |
|
|
38
38
|
| Reddit | 5 | Get subreddit, search posts, get user |
|
|
39
|
-
| LinkedIn |
|
|
39
|
+
| LinkedIn | 7 | Get company, search jobs/users, get post |
|
|
40
40
|
| Xiaohongshu | 9 | Search notes, get comments, resolve share URL |
|
|
41
|
-
| TikTok |
|
|
42
|
-
| Instagram |
|
|
41
|
+
| TikTok | 7 | Get video, search, comments, subtitles, browse by category |
|
|
42
|
+
| Instagram | 5 | Search hashtags, get user/post, comments, user posts |
|
|
43
|
+
| YouTube | 5 | Get video/channel, search, comments, transcription |
|
|
44
|
+
| Dcard | 6 | Get post/forum, search posts, comments, persona |
|
|
45
|
+
| Job104 | 3 | Search jobs, get company/job details |
|
|
43
46
|
| System | 1 | Health check |
|
|
44
47
|
|
|
45
48
|
## API Key
|
package/build/server.js
CHANGED
|
@@ -4,7 +4,6 @@ import { registerXTools } from "./tools/x.js";
|
|
|
4
4
|
import { registerFacebookTools } from "./tools/facebook.js";
|
|
5
5
|
import { registerRedditTools } from "./tools/reddit.js";
|
|
6
6
|
import { registerLinkedinTools } from "./tools/linkedin.js";
|
|
7
|
-
import { registerXiaohongshuTools } from "./tools/xiaohongshu.js";
|
|
8
7
|
import { registerTiktokTools } from "./tools/tiktok.js";
|
|
9
8
|
import { registerInstagramTools } from "./tools/instagram.js";
|
|
10
9
|
import { registerYoutubeTools } from "./tools/youtube.js";
|
|
@@ -21,7 +20,6 @@ export function createServer() {
|
|
|
21
20
|
registerFacebookTools(server);
|
|
22
21
|
registerRedditTools(server);
|
|
23
22
|
registerLinkedinTools(server);
|
|
24
|
-
registerXiaohongshuTools(server);
|
|
25
23
|
registerTiktokTools(server);
|
|
26
24
|
registerInstagramTools(server);
|
|
27
25
|
registerYoutubeTools(server);
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/build/tools/facebook.js
CHANGED
|
@@ -9,5 +9,21 @@ export function registerFacebookTools(server) {
|
|
|
9
9
|
count: z.number().optional().describe("Number of results (max 5)"),
|
|
10
10
|
cursor: z.string().optional().describe("Pagination cursor"),
|
|
11
11
|
}, async ({ query, count, cursor }) => bycrawlGet("/facebook/posts/search", { q: query, count, cursor }));
|
|
12
|
+
server.tool("facebook_get_post_comments", "Get comments on a Facebook post by URL", {
|
|
13
|
+
url: z.string().describe("Facebook post URL"),
|
|
14
|
+
cursor: z.string().optional().describe("Pagination cursor"),
|
|
15
|
+
}, async ({ url, cursor }) => bycrawlGet("/facebook/posts/comments", { url, cursor }));
|
|
16
|
+
server.tool("facebook_marketplace_browse", "Browse Facebook Marketplace listings by location and category", {
|
|
17
|
+
location: z.string().optional().describe("Location slug (e.g. 'taipei', 'newyork')"),
|
|
18
|
+
category: z.string().optional().describe("Category slug (e.g. 'vehicles', 'electronics')"),
|
|
19
|
+
}, async ({ location, category }) => bycrawlGet("/facebook/marketplace/listings", { location, category }));
|
|
20
|
+
server.tool("facebook_marketplace_search", "Search Facebook Marketplace listings by keyword", {
|
|
21
|
+
query: z.string().describe("Search keyword"),
|
|
22
|
+
location: z.string().optional().describe("Location slug (e.g. 'taipei', 'newyork')"),
|
|
23
|
+
category: z.string().optional().describe("Category filter (e.g. 'vehicles')"),
|
|
24
|
+
}, async ({ query, location, category }) => bycrawlGet("/facebook/marketplace/search", { q: query, location, category }));
|
|
25
|
+
server.tool("facebook_marketplace_item", "Get detailed Facebook Marketplace listing by ID", {
|
|
26
|
+
listing_id: z.string().describe("Marketplace listing ID"),
|
|
27
|
+
}, async ({ listing_id }) => bycrawlGet(`/facebook/marketplace/items/${listing_id}`));
|
|
12
28
|
}
|
|
13
29
|
//# sourceMappingURL=facebook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facebook.js","sourceRoot":"","sources":["../../src/tools/facebook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,uCAAuC,EACvC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,EAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAClE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,qCAAqC,EACrC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,EAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,QAAQ,QAAQ,CAAC,CACxE,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,yEAAyE,EACzE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EACjD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,CAC1D,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,yCAAyC,EACzC;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAC5D,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,wBAAwB,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACtG,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"facebook.js","sourceRoot":"","sources":["../../src/tools/facebook.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bycrawl/mcp",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"description": "MCP server for ByCrawl — query 9+ social media platforms (Threads, X, Facebook, Reddit, LinkedIn,
|
|
3
|
+
"version": "0.4.2",
|
|
4
|
+
"description": "MCP server for ByCrawl — query 9+ social media platforms (Threads, X, Facebook, Reddit, LinkedIn, TikTok, Instagram, YouTube) from AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"bycrawl-mcp": "./build/index.js"
|
|
@@ -32,8 +32,7 @@
|
|
|
32
32
|
"facebook",
|
|
33
33
|
"reddit",
|
|
34
34
|
"linkedin",
|
|
35
|
-
|
|
36
|
-
"tiktok",
|
|
35
|
+
"tiktok",
|
|
37
36
|
"instagram",
|
|
38
37
|
"ai",
|
|
39
38
|
"claude",
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { bycrawlGet } from "../client.js";
|
|
3
|
-
export function registerXiaohongshuTools(server) {
|
|
4
|
-
server.tool("xiaohongshu_search_notes", "Search Xiaohongshu (RED) notes by keyword", {
|
|
5
|
-
keyword: z.string().describe("Search keyword"),
|
|
6
|
-
page: z.number().optional().describe("Page number (starts at 1)"),
|
|
7
|
-
sort: z.enum(["general", "time_descending", "popularity_descending"]).optional().describe("Sort order"),
|
|
8
|
-
}, async ({ keyword, page, sort }) => bycrawlGet("/xiaohongshu/notes/search", { keyword, page, sort }));
|
|
9
|
-
server.tool("xiaohongshu_get_note", "Get a Xiaohongshu note (post) by ID", { noteId: z.string().describe("Xiaohongshu note ID") }, async ({ noteId }) => bycrawlGet(`/xiaohongshu/notes/${noteId}`));
|
|
10
|
-
server.tool("xiaohongshu_get_note_comments", "Get comments on a Xiaohongshu note", {
|
|
11
|
-
noteId: z.string().describe("Xiaohongshu note ID"),
|
|
12
|
-
cursor: z.string().optional().describe("Pagination cursor"),
|
|
13
|
-
}, async ({ noteId, cursor }) => bycrawlGet(`/xiaohongshu/notes/${noteId}/comments`, { cursor }));
|
|
14
|
-
server.tool("xiaohongshu_get_comment_replies", "Get replies (sub-comments) for a specific comment on a Xiaohongshu note", {
|
|
15
|
-
noteId: z.string().describe("Xiaohongshu note ID"),
|
|
16
|
-
commentId: z.string().describe("Parent comment ID"),
|
|
17
|
-
cursor: z.string().optional().describe("Pagination cursor"),
|
|
18
|
-
}, async ({ noteId, commentId, cursor }) => bycrawlGet(`/xiaohongshu/notes/${noteId}/comments/${commentId}/replies`, { cursor }));
|
|
19
|
-
server.tool("xiaohongshu_search_users", "Search Xiaohongshu users by keyword", {
|
|
20
|
-
keyword: z.string().describe("Search keyword"),
|
|
21
|
-
page: z.number().optional().describe("Page number (starts at 1)"),
|
|
22
|
-
}, async ({ keyword, page }) => bycrawlGet("/xiaohongshu/users/search", { keyword, page }));
|
|
23
|
-
server.tool("xiaohongshu_get_user", "Get a Xiaohongshu user profile by ID", { userId: z.string().describe("Xiaohongshu user ID") }, async ({ userId }) => bycrawlGet(`/xiaohongshu/users/${userId}`));
|
|
24
|
-
server.tool("xiaohongshu_get_user_notes", "Get notes posted by a Xiaohongshu user", {
|
|
25
|
-
userId: z.string().describe("Xiaohongshu user ID"),
|
|
26
|
-
cursor: z.string().optional().describe("Pagination cursor"),
|
|
27
|
-
}, async ({ userId, cursor }) => bycrawlGet(`/xiaohongshu/users/${userId}/notes`, { cursor }));
|
|
28
|
-
server.tool("xiaohongshu_get_feed", "Get Xiaohongshu discovery feed", { cursor: z.string().optional().describe("Pagination cursor") }, async ({ cursor }) => bycrawlGet("/xiaohongshu/feed", { cursor }));
|
|
29
|
-
server.tool("xiaohongshu_resolve_share_url", "Resolve a Xiaohongshu share URL to get note/user data", { url: z.string().describe("Xiaohongshu share URL") }, async ({ url }) => bycrawlGet("/xiaohongshu/share/resolve", { url }));
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=xiaohongshu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xiaohongshu.js","sourceRoot":"","sources":["../../src/tools/xiaohongshu.ts"],"names":[],"mappings":"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"}
|