@scavio/mcp-server 0.13.1 → 0.14.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/dist/lib/trim-response.d.ts +6 -0
- package/dist/lib/trim-response.js +26 -0
- package/dist/lib/trim-response.js.map +1 -0
- package/dist/tools/airbnb.js +30 -49
- package/dist/tools/airbnb.js.map +1 -1
- package/dist/tools/amazon.js +11 -18
- package/dist/tools/amazon.js.map +1 -1
- package/dist/tools/appstore.js +16 -15
- package/dist/tools/appstore.js.map +1 -1
- package/dist/tools/booking.js +28 -45
- package/dist/tools/booking.js.map +1 -1
- package/dist/tools/capterra.js +16 -15
- package/dist/tools/capterra.js.map +1 -1
- package/dist/tools/companieshouse.js +11 -10
- package/dist/tools/companieshouse.js.map +1 -1
- package/dist/tools/ebay.js +21 -30
- package/dist/tools/ebay.js.map +1 -1
- package/dist/tools/extract.js +6 -5
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/g2.js +23 -22
- package/dist/tools/g2.js.map +1 -1
- package/dist/tools/glassdoor.js +18 -17
- package/dist/tools/glassdoor.js.map +1 -1
- package/dist/tools/google.js +154 -153
- package/dist/tools/google.js.map +1 -1
- package/dist/tools/googleads.js +20 -19
- package/dist/tools/googleads.js.map +1 -1
- package/dist/tools/googleplay.js +14 -13
- package/dist/tools/googleplay.js.map +1 -1
- package/dist/tools/homedepot.js +15 -28
- package/dist/tools/homedepot.js.map +1 -1
- package/dist/tools/indeed.js +20 -39
- package/dist/tools/indeed.js.map +1 -1
- package/dist/tools/instagram.js +59 -58
- package/dist/tools/instagram.js.map +1 -1
- package/dist/tools/kuaishou.js +47 -46
- package/dist/tools/kuaishou.js.map +1 -1
- package/dist/tools/linkedin.js +26 -25
- package/dist/tools/linkedin.js.map +1 -1
- package/dist/tools/metaads.js +21 -20
- package/dist/tools/metaads.js.map +1 -1
- package/dist/tools/reddit.js +48 -47
- package/dist/tools/reddit.js.map +1 -1
- package/dist/tools/redfin.js +29 -28
- package/dist/tools/redfin.js.map +1 -1
- package/dist/tools/sec.js +36 -35
- package/dist/tools/sec.js.map +1 -1
- package/dist/tools/target.js +19 -40
- package/dist/tools/target.js.map +1 -1
- package/dist/tools/threads.js +20 -19
- package/dist/tools/threads.js.map +1 -1
- package/dist/tools/tiktok-shop.js +38 -37
- package/dist/tools/tiktok-shop.js.map +1 -1
- package/dist/tools/tiktok.js +54 -53
- package/dist/tools/tiktok.js.map +1 -1
- package/dist/tools/tripadvisor.js +20 -43
- package/dist/tools/tripadvisor.js.map +1 -1
- package/dist/tools/usage.js +3 -2
- package/dist/tools/usage.js.map +1 -1
- package/dist/tools/walmart.js +35 -34
- package/dist/tools/walmart.js.map +1 -1
- package/dist/tools/x.js +44 -43
- package/dist/tools/x.js.map +1 -1
- package/dist/tools/yelp.js +21 -20
- package/dist/tools/yelp.js.map +1 -1
- package/dist/tools/youtube.js +77 -76
- package/dist/tools/youtube.js.map +1 -1
- package/dist/tools/zillow.js +38 -53
- package/dist/tools/zillow.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kuaishou.js","sourceRoot":"","sources":["../../src/tools/kuaishou.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"kuaishou.js","sourceRoot":"","sources":["../../src/tools/kuaishou.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/linkedin.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { handleApiError } from "../lib/tool-error.js";
|
|
3
|
+
import { trimResponse } from "../lib/trim-response.js";
|
|
3
4
|
// The provider retired the `linkedin/web/*` namespace these tools were built on.
|
|
4
5
|
// The nine below run on `web_v2`: every reference is a vanity handle, slug or id
|
|
5
6
|
// (a full LinkedIn URL also works anywhere).
|
|
@@ -16,60 +17,60 @@ import { handleApiError } from "../lib/tool-error.js";
|
|
|
16
17
|
// better absent. The REST API still answers those paths with an explicit 410.
|
|
17
18
|
const personRef = {
|
|
18
19
|
username: z.string().min(1).optional()
|
|
19
|
-
.describe("
|
|
20
|
+
.describe("Vanity handle, e.g. 'williamhgates'."),
|
|
20
21
|
url: z.string().url().optional()
|
|
21
|
-
.describe("
|
|
22
|
+
.describe("Profile URL (alternative to username)."),
|
|
22
23
|
};
|
|
23
24
|
const companyRef = {
|
|
24
25
|
company: z.string().min(1).optional()
|
|
25
|
-
.describe("Company
|
|
26
|
+
.describe("Company slug, e.g. 'microsoft'."),
|
|
26
27
|
url: z.string().url().optional()
|
|
27
|
-
.describe("
|
|
28
|
+
.describe("Company URL (alternative to company)."),
|
|
28
29
|
};
|
|
29
30
|
const postRef = {
|
|
30
31
|
post_id: z.string().min(1).optional()
|
|
31
|
-
.describe("Post
|
|
32
|
+
.describe("Post ID or activity URN."),
|
|
32
33
|
url: z.string().url().optional()
|
|
33
|
-
.describe("
|
|
34
|
+
.describe("Post URL (alternative to post_id)."),
|
|
34
35
|
};
|
|
35
36
|
export function registerLinkedinTools(server, getClient) {
|
|
36
37
|
const call = (path) => async (params) => {
|
|
37
38
|
try {
|
|
38
39
|
const data = await getClient().post(path, params);
|
|
39
|
-
return
|
|
40
|
+
return trimResponse(data);
|
|
40
41
|
}
|
|
41
42
|
catch (err) {
|
|
42
43
|
return handleApiError(err);
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
|
-
server.tool("get_linkedin_person", `Get a LinkedIn member's full profile
|
|
46
|
-
server.tool("get_linkedin_person_about", `Get the about/overview slice of a LinkedIn
|
|
47
|
-
server.tool("get_linkedin_person_posts", `Get a LinkedIn member's posts
|
|
46
|
+
server.tool("get_linkedin_person", `Get a LinkedIn member's full profile. 1 credit.`, personRef, call("/api/v1/linkedin/person"));
|
|
47
|
+
server.tool("get_linkedin_person_about", `Get the about/overview slice of a LinkedIn profile. Lighter than get_linkedin_person. 1 credit.`, personRef, call("/api/v1/linkedin/person/about"));
|
|
48
|
+
server.tool("get_linkedin_person_posts", `Get a LinkedIn member's posts. Paginate with next_cursor/has_more. 10 credits/page.`, {
|
|
48
49
|
...personRef,
|
|
49
50
|
type: z.enum(["posts", "comments", "reactions"]).optional()
|
|
50
|
-
.describe("
|
|
51
|
-
cursor: z.string().optional().describe("next_cursor from
|
|
51
|
+
.describe("'posts' (default), 'comments', or 'reactions'."),
|
|
52
|
+
cursor: z.string().optional().describe("next_cursor from previous response."),
|
|
52
53
|
}, call("/api/v1/linkedin/person/posts"));
|
|
53
|
-
server.tool("get_linkedin_company", `Get a LinkedIn company profile
|
|
54
|
-
server.tool("get_linkedin_company_posts", `Get a LinkedIn company's
|
|
54
|
+
server.tool("get_linkedin_company", `Get a LinkedIn company profile. 1 credit.`, companyRef, call("/api/v1/linkedin/company"));
|
|
55
|
+
server.tool("get_linkedin_company_posts", `Get a LinkedIn company's posts. Paginate with next_cursor/has_more. 10 credits/page.`, {
|
|
55
56
|
...companyRef,
|
|
56
|
-
cursor: z.string().optional().describe("next_cursor from
|
|
57
|
+
cursor: z.string().optional().describe("next_cursor from previous response."),
|
|
57
58
|
}, call("/api/v1/linkedin/company/posts"));
|
|
58
|
-
server.tool("search_linkedin_jobs", `Search LinkedIn
|
|
59
|
-
search: z.string().min(1).describe("
|
|
59
|
+
server.tool("search_linkedin_jobs", `Search LinkedIn jobs. Results rotate; dedupe by job_id. Paginate with next_cursor. 10 credits/page.`, {
|
|
60
|
+
search: z.string().min(1).describe("Keyword, e.g. 'software engineer'."),
|
|
60
61
|
location: z.string().optional()
|
|
61
|
-
.describe("
|
|
62
|
-
cursor: z.string().optional().describe("next_cursor from
|
|
62
|
+
.describe("e.g. 'United States'. Omit for worldwide."),
|
|
63
|
+
cursor: z.string().optional().describe("next_cursor from previous response."),
|
|
63
64
|
}, call("/api/v1/linkedin/search/jobs"));
|
|
64
|
-
server.tool("get_linkedin_job", `Get full
|
|
65
|
-
job_id: z.string().min(1).optional().describe("Job listing
|
|
66
|
-
url: z.string().url().optional().describe("
|
|
65
|
+
server.tool("get_linkedin_job", `Get full LinkedIn job details. 30 credits (most expensive LinkedIn tool; prefer search_linkedin_jobs fields when sufficient). 404 = no detail upstream, not billed.`, {
|
|
66
|
+
job_id: z.string().min(1).optional().describe("Job listing ID."),
|
|
67
|
+
url: z.string().url().optional().describe("Job URL (alternative to job_id)."),
|
|
67
68
|
}, call("/api/v1/linkedin/job"));
|
|
68
|
-
server.tool("get_linkedin_post", `Get
|
|
69
|
-
server.tool("get_linkedin_post_comments", `Get
|
|
69
|
+
server.tool("get_linkedin_post", `Get a single LinkedIn post's full details. 1 credit.`, postRef, call("/api/v1/linkedin/post"));
|
|
70
|
+
server.tool("get_linkedin_post_comments", `Get comments on a LinkedIn post. Page-number pagination; stop when page is empty. 10 credits/page.`, {
|
|
70
71
|
...postRef,
|
|
71
72
|
page: z.number().int().positive().optional()
|
|
72
|
-
.describe("1-based page number.
|
|
73
|
+
.describe("1-based page number. Stop when page returns empty."),
|
|
73
74
|
}, call("/api/v1/linkedin/post/comments"));
|
|
74
75
|
}
|
|
75
76
|
//# sourceMappingURL=linkedin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkedin.js","sourceRoot":"","sources":["../../src/tools/linkedin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"linkedin.js","sourceRoot":"","sources":["../../src/tools/linkedin.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/metaads.js
CHANGED
|
@@ -1,59 +1,60 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { handleApiError } from "../lib/tool-error.js";
|
|
3
|
+
import { trimResponse } from "../lib/trim-response.js";
|
|
3
4
|
export function registerMetaAdsTools(server, getClient) {
|
|
4
|
-
server.tool("search_meta_ads", `Meta Ad Library
|
|
5
|
+
server.tool("search_meta_ads", `Search Meta Ad Library (Facebook/Instagram). Cursor-paginated (30 first page, 10 after). Cursor is self-contained: other filters ignored when set. Spend/impressions null on commercial ads (political only). 1 credit/page.`, {
|
|
5
6
|
query: z.string().min(1).max(200)
|
|
6
|
-
.describe("Keyword or brand
|
|
7
|
+
.describe("Keyword or brand. Ignored if cursor set."),
|
|
7
8
|
country: z.string().length(2).optional()
|
|
8
|
-
.describe("
|
|
9
|
+
.describe("Country, e.g. 'US' (default)."),
|
|
9
10
|
active_status: z.enum(["all", "active", "inactive"]).optional()
|
|
10
|
-
.describe("
|
|
11
|
+
.describe("Default 'all'."),
|
|
11
12
|
ad_type: z.enum(["all", "political_and_issue_ads"]).optional()
|
|
12
|
-
.describe("
|
|
13
|
+
.describe("'political_and_issue_ads' to get spend/impressions (null on commercial)."),
|
|
13
14
|
media_type: z.enum(["all", "image", "video", "meme", "image_and_meme", "none"]).optional()
|
|
14
|
-
.describe("Creative media type.
|
|
15
|
+
.describe("Creative media type."),
|
|
15
16
|
search_type: z.enum(["keyword_unordered", "keyword_exact_phrase"]).optional()
|
|
16
|
-
.describe("
|
|
17
|
+
.describe("Default 'keyword_unordered'."),
|
|
17
18
|
cursor: z.string().min(1).optional()
|
|
18
|
-
.describe("next_cursor from
|
|
19
|
+
.describe("next_cursor from prior response. All other filters ignored when set."),
|
|
19
20
|
}, async (params) => {
|
|
20
21
|
try {
|
|
21
22
|
const data = await getClient().post("/api/v1/meta-ads/search", params);
|
|
22
|
-
return
|
|
23
|
+
return trimResponse(data);
|
|
23
24
|
}
|
|
24
25
|
catch (err) {
|
|
25
26
|
return handleApiError(err);
|
|
26
27
|
}
|
|
27
28
|
});
|
|
28
|
-
server.tool("get_meta_ads_advertiser", `
|
|
29
|
+
server.tool("get_meta_ads_advertiser", `List all ads for one Meta advertiser by numeric page_id. Same cursor pagination as search_meta_ads. Spend/impressions null on commercial ads. 1 credit/page.`, {
|
|
29
30
|
page_id: z.string().regex(/^\d{3,25}$/)
|
|
30
|
-
.describe("
|
|
31
|
+
.describe("Numeric Facebook Page id, e.g. '20531316728'. Not a page name."),
|
|
31
32
|
country: z.string().length(2).optional()
|
|
32
|
-
.describe("
|
|
33
|
+
.describe("Country, e.g. 'US' (default)."),
|
|
33
34
|
active_status: z.enum(["all", "active", "inactive"]).optional()
|
|
34
|
-
.describe("
|
|
35
|
+
.describe("Default 'all'."),
|
|
35
36
|
ad_type: z.enum(["all", "political_and_issue_ads"]).optional()
|
|
36
|
-
.describe("
|
|
37
|
+
.describe("'political_and_issue_ads' for spend/impressions."),
|
|
37
38
|
media_type: z.enum(["all", "image", "video", "meme", "image_and_meme", "none"]).optional()
|
|
38
|
-
.describe("Creative media type.
|
|
39
|
+
.describe("Creative media type."),
|
|
39
40
|
cursor: z.string().min(1).optional()
|
|
40
|
-
.describe("next_cursor from
|
|
41
|
+
.describe("next_cursor from prior response. Filters ignored when set."),
|
|
41
42
|
}, async (params) => {
|
|
42
43
|
try {
|
|
43
44
|
const data = await getClient().post("/api/v1/meta-ads/advertiser", params);
|
|
44
|
-
return
|
|
45
|
+
return trimResponse(data);
|
|
45
46
|
}
|
|
46
47
|
catch (err) {
|
|
47
48
|
return handleApiError(err);
|
|
48
49
|
}
|
|
49
50
|
});
|
|
50
|
-
server.tool("get_meta_ad", `
|
|
51
|
+
server.tool("get_meta_ad", `Get one Meta ad by archive id. Spend/impressions null on commercial ads. 1 credit.`, {
|
|
51
52
|
ad_archive_id: z.string().regex(/^\d{3,25}$/)
|
|
52
|
-
.describe("
|
|
53
|
+
.describe("Numeric ad archive id from search_meta_ads."),
|
|
53
54
|
}, async (params) => {
|
|
54
55
|
try {
|
|
55
56
|
const data = await getClient().post("/api/v1/meta-ads/ad", params);
|
|
56
|
-
return
|
|
57
|
+
return trimResponse(data);
|
|
57
58
|
}
|
|
58
59
|
catch (err) {
|
|
59
60
|
return handleApiError(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaads.js","sourceRoot":"","sources":["../../src/tools/metaads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"metaads.js","sourceRoot":"","sources":["../../src/tools/metaads.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/reddit.js
CHANGED
|
@@ -1,166 +1,167 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { handleApiError } from "../lib/tool-error.js";
|
|
3
|
+
import { trimResponse } from "../lib/trim-response.js";
|
|
3
4
|
export function registerRedditTools(server, getClient) {
|
|
4
|
-
server.tool("search_reddit", `Search Reddit posts
|
|
5
|
+
server.tool("search_reddit", `Search Reddit posts. Relevance order only, no sort/filter. Paginate with next_cursor. Slow (5-15s). 1 credit.`, {
|
|
5
6
|
query: z.string().min(1).max(500)
|
|
6
|
-
.describe("Search query
|
|
7
|
+
.describe("Search query."),
|
|
7
8
|
cursor: z.string().optional()
|
|
8
|
-
.describe("Pagination cursor
|
|
9
|
+
.describe("Pagination cursor from data.next_cursor."),
|
|
9
10
|
}, async (params) => {
|
|
10
11
|
try {
|
|
11
12
|
const data = await getClient().post("/api/v1/reddit/search", params);
|
|
12
|
-
return
|
|
13
|
+
return trimResponse(data);
|
|
13
14
|
}
|
|
14
15
|
catch (err) {
|
|
15
16
|
return handleApiError(err);
|
|
16
17
|
}
|
|
17
18
|
});
|
|
18
|
-
server.tool("get_reddit_post", `Get a
|
|
19
|
+
server.tool("get_reddit_post", `Get a Reddit post by URL or post id. Does NOT return comments (use get_reddit_post_comments). Slow (5-15s). 1 credit.`, {
|
|
19
20
|
post_id: z.string().min(1).optional()
|
|
20
|
-
.describe("Post fullname (t3_...) or bare id
|
|
21
|
+
.describe("Post fullname (t3_...) or bare id. Either this or url required."),
|
|
21
22
|
url: z.string().url().optional()
|
|
22
|
-
.describe("Full Reddit post URL
|
|
23
|
+
.describe("Full Reddit post URL. Either this or post_id required."),
|
|
23
24
|
}, async (params) => {
|
|
24
25
|
try {
|
|
25
26
|
const data = await getClient().post("/api/v1/reddit/post", params);
|
|
26
|
-
return
|
|
27
|
+
return trimResponse(data);
|
|
27
28
|
}
|
|
28
29
|
catch (err) {
|
|
29
30
|
return handleApiError(err);
|
|
30
31
|
}
|
|
31
32
|
});
|
|
32
|
-
server.tool("get_reddit_search_suggestions", `Get Reddit search autocomplete suggestions
|
|
33
|
+
server.tool("get_reddit_search_suggestions", `Get Reddit search autocomplete suggestions. 1 credit.`, {
|
|
33
34
|
query: z.string().min(1).max(500)
|
|
34
|
-
.describe("
|
|
35
|
+
.describe("Seed query to autocomplete."),
|
|
35
36
|
}, async (params) => {
|
|
36
37
|
try {
|
|
37
38
|
const data = await getClient().post("/api/v1/reddit/search/suggestions", params);
|
|
38
|
-
return
|
|
39
|
+
return trimResponse(data);
|
|
39
40
|
}
|
|
40
41
|
catch (err) {
|
|
41
42
|
return handleApiError(err);
|
|
42
43
|
}
|
|
43
44
|
});
|
|
44
|
-
server.tool("get_reddit_post_comments", `Get
|
|
45
|
+
server.tool("get_reddit_post_comments", `Get top-level comments for a Reddit post. Paginate with next_cursor. 1 credit.`, {
|
|
45
46
|
post_id: z.string().min(1)
|
|
46
|
-
.describe("Post fullname
|
|
47
|
+
.describe("Post fullname, e.g. 't3_1v6ngaf'."),
|
|
47
48
|
sort: z.enum(["HOT", "NEW", "TOP", "BEST", "CONTROVERSIAL"]).default("TOP")
|
|
48
|
-
.describe("
|
|
49
|
+
.describe("Sort order."),
|
|
49
50
|
cursor: z.string().optional()
|
|
50
|
-
.describe("
|
|
51
|
+
.describe("Cursor from data.next_cursor."),
|
|
51
52
|
}, async (params) => {
|
|
52
53
|
try {
|
|
53
54
|
const data = await getClient().post("/api/v1/reddit/post/comments", params);
|
|
54
|
-
return
|
|
55
|
+
return trimResponse(data);
|
|
55
56
|
}
|
|
56
57
|
catch (err) {
|
|
57
58
|
return handleApiError(err);
|
|
58
59
|
}
|
|
59
60
|
});
|
|
60
|
-
server.tool("get_reddit_comment_replies", `Get
|
|
61
|
+
server.tool("get_reddit_comment_replies", `Get replies to a Reddit comment. Requires post_id and reply_cursor from get_reddit_post_comments. 1 credit.`, {
|
|
61
62
|
post_id: z.string().min(1)
|
|
62
|
-
.describe("Post fullname
|
|
63
|
+
.describe("Post fullname, e.g. 't3_1v6ngaf'."),
|
|
63
64
|
cursor: z.string().min(1)
|
|
64
|
-
.describe("
|
|
65
|
+
.describe("reply_cursor from a comment in get_reddit_post_comments."),
|
|
65
66
|
sort: z.enum(["HOT", "NEW", "TOP", "BEST", "CONTROVERSIAL"]).default("TOP")
|
|
66
|
-
.describe("
|
|
67
|
+
.describe("Sort order."),
|
|
67
68
|
}, async (params) => {
|
|
68
69
|
try {
|
|
69
70
|
const data = await getClient().post("/api/v1/reddit/post/comments/replies", params);
|
|
70
|
-
return
|
|
71
|
+
return trimResponse(data);
|
|
71
72
|
}
|
|
72
73
|
catch (err) {
|
|
73
74
|
return handleApiError(err);
|
|
74
75
|
}
|
|
75
76
|
});
|
|
76
|
-
server.tool("get_reddit_subreddit", `Get
|
|
77
|
+
server.tool("get_reddit_subreddit", `Get subreddit metadata (description, subscribers, type, etc). 1 credit.`, {
|
|
77
78
|
subreddit: z.string().min(1).max(100)
|
|
78
|
-
.describe("Subreddit name without r
|
|
79
|
+
.describe("Subreddit name without r/."),
|
|
79
80
|
}, async (params) => {
|
|
80
81
|
try {
|
|
81
82
|
const data = await getClient().post("/api/v1/reddit/subreddit", params);
|
|
82
|
-
return
|
|
83
|
+
return trimResponse(data);
|
|
83
84
|
}
|
|
84
85
|
catch (err) {
|
|
85
86
|
return handleApiError(err);
|
|
86
87
|
}
|
|
87
88
|
});
|
|
88
|
-
server.tool("get_reddit_subreddit_posts", `List
|
|
89
|
+
server.tool("get_reddit_subreddit_posts", `List posts in a subreddit. Paginate with next_cursor. 1 credit.`, {
|
|
89
90
|
subreddit: z.string().min(1).max(100)
|
|
90
|
-
.describe("Subreddit name without r
|
|
91
|
+
.describe("Subreddit name without r/."),
|
|
91
92
|
sort: z.enum(["BEST", "HOT", "NEW", "TOP", "CONTROVERSIAL", "RISING"]).default("HOT")
|
|
92
|
-
.describe("
|
|
93
|
+
.describe("Sort order."),
|
|
93
94
|
cursor: z.string().optional()
|
|
94
|
-
.describe("
|
|
95
|
+
.describe("Cursor from data.next_cursor."),
|
|
95
96
|
}, async (params) => {
|
|
96
97
|
try {
|
|
97
98
|
const data = await getClient().post("/api/v1/reddit/subreddit/posts", params);
|
|
98
|
-
return
|
|
99
|
+
return trimResponse(data);
|
|
99
100
|
}
|
|
100
101
|
catch (err) {
|
|
101
102
|
return handleApiError(err);
|
|
102
103
|
}
|
|
103
104
|
});
|
|
104
|
-
server.tool("get_reddit_user", `Get a
|
|
105
|
+
server.tool("get_reddit_user", `Get a Reddit user's profile. 1 credit.`, {
|
|
105
106
|
username: z.string().min(1).max(100)
|
|
106
|
-
.describe("
|
|
107
|
+
.describe("Username without u/."),
|
|
107
108
|
}, async (params) => {
|
|
108
109
|
try {
|
|
109
110
|
const data = await getClient().post("/api/v1/reddit/user", params);
|
|
110
|
-
return
|
|
111
|
+
return trimResponse(data);
|
|
111
112
|
}
|
|
112
113
|
catch (err) {
|
|
113
114
|
return handleApiError(err);
|
|
114
115
|
}
|
|
115
116
|
});
|
|
116
|
-
server.tool("get_reddit_user_posts", `List a
|
|
117
|
+
server.tool("get_reddit_user_posts", `List a Reddit user's submitted posts. Paginate with next_cursor. 1 credit.`, {
|
|
117
118
|
username: z.string().min(1).max(100)
|
|
118
|
-
.describe("
|
|
119
|
+
.describe("Username without u/."),
|
|
119
120
|
sort: z.enum(["HOT", "NEW", "TOP", "BEST", "CONTROVERSIAL"]).default("NEW")
|
|
120
|
-
.describe("Sort order
|
|
121
|
+
.describe("Sort order."),
|
|
121
122
|
cursor: z.string().optional()
|
|
122
|
-
.describe("
|
|
123
|
+
.describe("Cursor from data.next_cursor."),
|
|
123
124
|
}, async (params) => {
|
|
124
125
|
try {
|
|
125
126
|
const data = await getClient().post("/api/v1/reddit/user/posts", params);
|
|
126
|
-
return
|
|
127
|
+
return trimResponse(data);
|
|
127
128
|
}
|
|
128
129
|
catch (err) {
|
|
129
130
|
return handleApiError(err);
|
|
130
131
|
}
|
|
131
132
|
});
|
|
132
|
-
server.tool("get_reddit_user_comments", `List a
|
|
133
|
+
server.tool("get_reddit_user_comments", `List a Reddit user's comments. Paginate with next_cursor. 1 credit.`, {
|
|
133
134
|
username: z.string().min(1).max(100)
|
|
134
|
-
.describe("
|
|
135
|
+
.describe("Username without u/."),
|
|
135
136
|
sort: z.enum(["HOT", "NEW", "TOP", "BEST", "CONTROVERSIAL"]).default("NEW")
|
|
136
|
-
.describe("Sort order
|
|
137
|
+
.describe("Sort order."),
|
|
137
138
|
cursor: z.string().optional()
|
|
138
|
-
.describe("
|
|
139
|
+
.describe("Cursor from data.next_cursor."),
|
|
139
140
|
}, async (params) => {
|
|
140
141
|
try {
|
|
141
142
|
const data = await getClient().post("/api/v1/reddit/user/comments", params);
|
|
142
|
-
return
|
|
143
|
+
return trimResponse(data);
|
|
143
144
|
}
|
|
144
145
|
catch (err) {
|
|
145
146
|
return handleApiError(err);
|
|
146
147
|
}
|
|
147
148
|
});
|
|
148
|
-
server.tool("get_reddit_popular", `Get
|
|
149
|
+
server.tool("get_reddit_popular", `Get Reddit's site-wide popular feed. Paginate with next_cursor. 1 credit.`, {
|
|
149
150
|
cursor: z.string().optional()
|
|
150
|
-
.describe("
|
|
151
|
+
.describe("Cursor from data.next_cursor."),
|
|
151
152
|
}, async (params) => {
|
|
152
153
|
try {
|
|
153
154
|
const data = await getClient().post("/api/v1/reddit/popular", params);
|
|
154
|
-
return
|
|
155
|
+
return trimResponse(data);
|
|
155
156
|
}
|
|
156
157
|
catch (err) {
|
|
157
158
|
return handleApiError(err);
|
|
158
159
|
}
|
|
159
160
|
});
|
|
160
|
-
server.tool("get_reddit_trending", `Get Reddit's current trending search queries
|
|
161
|
+
server.tool("get_reddit_trending", `Get Reddit's current trending search queries. 1 credit.`, {}, async () => {
|
|
161
162
|
try {
|
|
162
163
|
const data = await getClient().post("/api/v1/reddit/trending", {});
|
|
163
|
-
return
|
|
164
|
+
return trimResponse(data);
|
|
164
165
|
}
|
|
165
166
|
catch (err) {
|
|
166
167
|
return handleApiError(err);
|
package/dist/tools/reddit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/tools/reddit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/tools/reddit.ts"],"names":[],"mappings":"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"}
|