@scavio/mcp-server 0.13.1 → 0.14.1

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 (98) hide show
  1. package/README.md +23 -10
  2. package/dist/auth/cimd.d.ts +2 -0
  3. package/dist/auth/cimd.js +20 -0
  4. package/dist/auth/cimd.js.map +1 -0
  5. package/dist/auth/provider.d.ts +12 -0
  6. package/dist/auth/provider.js +43 -0
  7. package/dist/auth/provider.js.map +1 -0
  8. package/dist/auth/routes.d.ts +2 -0
  9. package/dist/auth/routes.js +214 -0
  10. package/dist/auth/routes.js.map +1 -0
  11. package/dist/auth/stores.d.ts +33 -0
  12. package/dist/auth/stores.js +69 -0
  13. package/dist/auth/stores.js.map +1 -0
  14. package/dist/index.js +15 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/lib/client.js +4 -1
  17. package/dist/lib/client.js.map +1 -1
  18. package/dist/lib/env.d.ts +3 -0
  19. package/dist/lib/env.js +4 -0
  20. package/dist/lib/env.js.map +1 -1
  21. package/dist/lib/errors.d.ts +5 -1
  22. package/dist/lib/errors.js +5 -1
  23. package/dist/lib/errors.js.map +1 -1
  24. package/dist/lib/tool-error.js +10 -0
  25. package/dist/lib/tool-error.js.map +1 -1
  26. package/dist/lib/trim-response.d.ts +6 -0
  27. package/dist/lib/trim-response.js +26 -0
  28. package/dist/lib/trim-response.js.map +1 -0
  29. package/dist/tools/airbnb.js +30 -49
  30. package/dist/tools/airbnb.js.map +1 -1
  31. package/dist/tools/amazon.js +11 -18
  32. package/dist/tools/amazon.js.map +1 -1
  33. package/dist/tools/appstore.js +16 -15
  34. package/dist/tools/appstore.js.map +1 -1
  35. package/dist/tools/booking.js +28 -45
  36. package/dist/tools/booking.js.map +1 -1
  37. package/dist/tools/capterra.js +16 -15
  38. package/dist/tools/capterra.js.map +1 -1
  39. package/dist/tools/companieshouse.js +11 -10
  40. package/dist/tools/companieshouse.js.map +1 -1
  41. package/dist/tools/ebay.js +21 -30
  42. package/dist/tools/ebay.js.map +1 -1
  43. package/dist/tools/extract.js +6 -5
  44. package/dist/tools/extract.js.map +1 -1
  45. package/dist/tools/g2.js +23 -22
  46. package/dist/tools/g2.js.map +1 -1
  47. package/dist/tools/glassdoor.js +18 -17
  48. package/dist/tools/glassdoor.js.map +1 -1
  49. package/dist/tools/google.js +154 -153
  50. package/dist/tools/google.js.map +1 -1
  51. package/dist/tools/googleads.js +20 -19
  52. package/dist/tools/googleads.js.map +1 -1
  53. package/dist/tools/googleplay.js +14 -13
  54. package/dist/tools/googleplay.js.map +1 -1
  55. package/dist/tools/homedepot.js +15 -28
  56. package/dist/tools/homedepot.js.map +1 -1
  57. package/dist/tools/indeed.js +20 -39
  58. package/dist/tools/indeed.js.map +1 -1
  59. package/dist/tools/index.d.ts +5 -4
  60. package/dist/tools/index.js +5 -4
  61. package/dist/tools/index.js.map +1 -1
  62. package/dist/tools/instagram.js +59 -58
  63. package/dist/tools/instagram.js.map +1 -1
  64. package/dist/tools/kuaishou.js +47 -46
  65. package/dist/tools/kuaishou.js.map +1 -1
  66. package/dist/tools/linkedin.js +26 -25
  67. package/dist/tools/linkedin.js.map +1 -1
  68. package/dist/tools/metaads.js +21 -20
  69. package/dist/tools/metaads.js.map +1 -1
  70. package/dist/tools/reddit.js +48 -47
  71. package/dist/tools/reddit.js.map +1 -1
  72. package/dist/tools/redfin.js +29 -28
  73. package/dist/tools/redfin.js.map +1 -1
  74. package/dist/tools/sec.js +36 -35
  75. package/dist/tools/sec.js.map +1 -1
  76. package/dist/tools/target.js +19 -40
  77. package/dist/tools/target.js.map +1 -1
  78. package/dist/tools/threads.js +20 -19
  79. package/dist/tools/threads.js.map +1 -1
  80. package/dist/tools/tiktok-shop.js +38 -37
  81. package/dist/tools/tiktok-shop.js.map +1 -1
  82. package/dist/tools/tiktok.js +54 -53
  83. package/dist/tools/tiktok.js.map +1 -1
  84. package/dist/tools/tripadvisor.js +20 -43
  85. package/dist/tools/tripadvisor.js.map +1 -1
  86. package/dist/tools/usage.js +3 -2
  87. package/dist/tools/usage.js.map +1 -1
  88. package/dist/tools/walmart.js +35 -34
  89. package/dist/tools/walmart.js.map +1 -1
  90. package/dist/tools/x.js +44 -43
  91. package/dist/tools/x.js.map +1 -1
  92. package/dist/tools/yelp.js +21 -20
  93. package/dist/tools/yelp.js.map +1 -1
  94. package/dist/tools/youtube.js +77 -76
  95. package/dist/tools/youtube.js.map +1 -1
  96. package/dist/tools/zillow.js +38 -53
  97. package/dist/tools/zillow.js.map +1 -1
  98. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kuaishou.js","sourceRoot":"","sources":["../../src/tools/kuaishou.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kuaishou.js","sourceRoot":"","sources":["../../src/tools/kuaishou.ts"],"names":[],"mappings":"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"}
@@ -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("Public identifier (vanity handle), e.g. 'williamhgates'."),
20
+ .describe("Vanity handle, e.g. 'williamhgates'."),
20
21
  url: z.string().url().optional()
21
- .describe("Full LinkedIn profile URL, as an alternative to username."),
22
+ .describe("Profile URL (alternative to username)."),
22
23
  };
23
24
  const companyRef = {
24
25
  company: z.string().min(1).optional()
25
- .describe("Company universal name (slug), e.g. 'microsoft'."),
26
+ .describe("Company slug, e.g. 'microsoft'."),
26
27
  url: z.string().url().optional()
27
- .describe("Full LinkedIn company URL, as an alternative to company."),
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 id or activity urn, e.g. '7488618410256523265'."),
32
+ .describe("Post ID or activity URN."),
32
33
  url: z.string().url().optional()
33
- .describe("Full LinkedIn post URL, as an alternative to post_id."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 as JSON: name, headline, about text, location, avatar, banner, follower and connection counts, current company, full work experience (including grouped multi-role entries), education, honours, bio links and similar profiles. Provide a vanity handle or a full profile URL. Costs 1 credit.`, personRef, call("/api/v1/linkedin/person"));
46
- server.tool("get_linkedin_person_about", `Get the about/overview slice of a LinkedIn member's profile as JSON: about text, headline, work experience, education, honours and bio links. Use this instead of get_linkedin_person when you only need the narrative sections. Provide a vanity handle or a full profile URL. Costs 1 credit.`, personRef, call("/api/v1/linkedin/person/about"));
47
- server.tool("get_linkedin_person_posts", `Get a LinkedIn member's posts as JSON, each with text, url, timestamps, a full reaction breakdown (likes, appreciations, empathy, interest, praise), comment and repost counts, attached images, article metadata and the author. Set type to also fetch the posts the member commented on or reacted to. Returns 50 per page with next_cursor and has_more; pass next_cursor back to get the following page. Provide a vanity handle or a full profile URL. Costs 10 credits per page.`, {
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("Which feed: the member's own posts (default), posts they commented on, or posts they reacted to."),
51
- cursor: z.string().optional().describe("next_cursor from a previous response, to fetch the next page."),
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 as JSON: name, about, description, website, industries, specialties, company size, employee and follower counts, headquarters, all office locations, logo, a small sample of featured employees, similar and affiliated companies, and recent updates. Provide a company slug or a full company URL. Costs 1 credit.`, companyRef, call("/api/v1/linkedin/company"));
54
- server.tool("get_linkedin_company_posts", `Get a LinkedIn company's recent posts as JSON, in the same shape as member posts (text, url, reaction breakdown, comment and repost counts, images, author). Returns 50 per page with next_cursor and has_more; pass next_cursor back for the following page. Provide a company slug or a full company URL. Costs 10 credits per page.`, {
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 a previous response, to fetch the next page."),
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 job listings by keyword as JSON, returning title, company, company URL and logo, location, posted time, workplace type and salary for each hit. Returns 25 per page with next_cursor. Note the provider rotates its result set, so pages overlap slightly and repeating the same search returns different listings - dedupe by job id and do not treat it as an exhaustive list. Pass a company name as the search term to approximate a per-company job listing. Costs 10 credits per page.`, {
59
- search: z.string().min(1).describe("Search keyword, e.g. 'software engineer'."),
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("Geographic filter, e.g. 'United States'. Omit to search everywhere."),
62
- cursor: z.string().optional().describe("next_cursor from a previous response, to fetch the next page."),
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 details for one LinkedIn job listing as JSON: title, full description, location, employment type, experience level, job functions, industries, benefits, skills, remote flag, closed/expiry state, applicant and view counts, salary, plus the hiring company (name, size, follower count and headquarters). Provide a job id or a full job URL. Costs 30 credits - the most expensive LinkedIn tool, so prefer the fields already present in search_linkedin_jobs when they are enough. A listing with no detail record upstream returns an unbilled 404.`, {
65
- job_id: z.string().min(1).optional().describe("Job listing id, e.g. '4415427228'."),
66
- url: z.string().url().optional().describe("Full LinkedIn job URL, as an alternative to job_id."),
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 full details for one LinkedIn post as JSON: title, headline, body text, url, timestamp, hashtags, embedded links, images, video and document metadata, like and comment counts, tagged companies and people, the top visible comments, and the author with their follower and post counts. Provide a post id, activity urn, or a full post URL. Costs 1 credit.`, postRef, call("/api/v1/linkedin/post"));
69
- server.tool("get_linkedin_post_comments", `Get the comments on a LinkedIn post as JSON, each with text, permalink, timestamp, pinned flag, the commenter (name, headline, avatar, profile URL) and any nested replies. Paginated via a 1-based page number; page size varies, so keep incrementing page until a page returns no comments. The total is reported on page 1 only. Provide a post id, activity urn, or a full post URL. Costs 10 credits per page.`, {
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. Defaults to 1. Page size varies; stop when a page is empty."),
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":"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"}
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;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,iFAAiF;AACjF,iFAAiF;AACjF,6CAA6C;AAC7C,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,iFAAiF;AACjF,2DAA2D;AAC3D,EAAE;AACF,wEAAwE;AACxE,gFAAgF;AAChF,gFAAgF;AAChF,2EAA2E;AAC3E,8EAA8E;AAE9E,MAAM,SAAS,GAAG;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,sCAAsC,CAAC;IACnD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,wCAAwC,CAAC;CACtD,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,uCAAuC,CAAC;CACrD,CAAC;AAEF,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,0BAA0B,CAAC;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,SAA6B;IACpF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,EAAE,MAA+B,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,iDAAiD,EACjD,SAAS,EACT,IAAI,CAAC,yBAAyB,CAAC,CAChC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,iGAAiG,EACjG,SAAS,EACT,IAAI,CAAC,+BAA+B,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,qFAAqF,EACrF;QACE,GAAG,SAAS;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;aACxD,QAAQ,CAAC,gDAAgD,CAAC;QAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC9E,EACD,IAAI,CAAC,+BAA+B,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,2CAA2C,EAC3C,UAAU,EACV,IAAI,CAAC,0BAA0B,CAAC,CACjC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,sFAAsF,EACtF;QACE,GAAG,UAAU;QACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC9E,EACD,IAAI,CAAC,gCAAgC,CAAC,CACvC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,qGAAqG,EACrG;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,QAAQ,CAAC,2CAA2C,CAAC;QACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC9E,EACD,IAAI,CAAC,8BAA8B,CAAC,CACrC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,qKAAqK,EACrK;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC9E,EACD,IAAI,CAAC,sBAAsB,CAAC,CAC7B,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,sDAAsD,EACtD,OAAO,EACP,IAAI,CAAC,uBAAuB,CAAC,CAC9B,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,oGAAoG,EACpG;QACE,GAAG,OAAO;QACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;aACzC,QAAQ,CAAC,oDAAoD,CAAC;KAClE,EACD,IAAI,CAAC,gCAAgC,CAAC,CACvC,CAAC;AACJ,CAAC"}
@@ -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 - every ad running on Facebook and Instagram, public and logged-out. Search it by keyword and get 30 ads on page one as JSON, each with the full creative: advertising page name, ad copy, headline, call to action, image and video URLs, which platforms it ran on, and its run dates. Also returns total_results, total_is_capped, has_next_page and next_cursor. FULL CURSOR PAGINATION, which is the differentiator here: page one is 30 ads, every page after it is 10, and walking has_next_page with next_cursor lets you scrape an entire query rather than a sample. THE CURSOR IS SELF-CONTAINED, SO ALL OTHER FILTERS ARE IGNORED WHEN YOU SEND ONE - it already carries the query, country and filters from page one; changing them mid-walk does nothing. total_results CAPS AT 50000 with total_is_capped set true, because Meta only reports ">50,000" - never present it as an exact count. spend, reach, impressions and the paid-for-by disclosure are NULL ON COMMERCIAL ADS: only political and issue ads carry them, so set ad_type='political_and_issue_ads' if you need spend data. Costs 1 CREDIT PER PAGE, so a full crawl costs roughly 1 credit per 10 ads past the first 30 - budget the walk before starting it.`, {
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 to search the ad library for, e.g. 'protein powder' or 'Ridge Wallet'. Ignored if cursor is set."),
7
+ .describe("Keyword or brand. Ignored if cursor set."),
7
8
  country: z.string().length(2).optional()
8
- .describe("Two-letter country code the ads ran in, e.g. 'US', 'GB', 'DE' (default 'US')."),
9
+ .describe("Country, e.g. 'US' (default)."),
9
10
  active_status: z.enum(["all", "active", "inactive"]).optional()
10
- .describe("Whether the ad is still running (default 'all')."),
11
+ .describe("Default 'all'."),
11
12
  ad_type: z.enum(["all", "political_and_issue_ads"]).optional()
12
- .describe("Ad category (default 'all'). Set 'political_and_issue_ads' to expose spend, reach, impressions and the paid-for-by disclosure - those fields are null on commercial ads."),
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. Default: no media filter."),
15
+ .describe("Creative media type."),
15
16
  search_type: z.enum(["keyword_unordered", "keyword_exact_phrase"]).optional()
16
- .describe("How the query is matched (default 'keyword_unordered'). 'keyword_exact_phrase' requires the words in order."),
17
+ .describe("Default 'keyword_unordered'."),
17
18
  cursor: z.string().min(1).optional()
18
- .describe("next_cursor from the previous response. Page one is 30 ads, each page after it is 10. THE OTHER FILTERS ARE IGNORED when this is set - the cursor already carries them."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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", `Meta Ad Library - every ad running on Facebook and Instagram, public and logged-out. Get every ad ONE advertiser is running, addressed by its numeric Facebook Page id. Returns 30 ads on page one as JSON with the same creative detail as search_meta_ads: page name, ad copy, headline, call to action, image and video URLs, platforms and run dates, plus has_next_page and next_cursor. CURSOR PAGINATION: page one is 30 ads, every page after it is 10 - walk has_next_page with next_cursor to pull an advertiser's whole active set. THE CURSOR IS SELF-CONTAINED, SO THE OTHER FILTERS ARE IGNORED WHEN YOU SEND ONE. Requires the NUMERIC page id, not a page name or vanity handle. spend, reach, impressions and the paid-for-by disclosure are NULL ON COMMERCIAL ADS - only political and issue ads carry them, so set ad_type='political_and_issue_ads' if you need spend data. Costs 1 CREDIT PER PAGE, roughly 1 credit per 10 ads past the first 30.`, {
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("The advertiser's NUMERIC Facebook Page id, digits only, e.g. '20531316728'. A page name or vanity handle will not work."),
31
+ .describe("Numeric Facebook Page id, e.g. '20531316728'. Not a page name."),
31
32
  country: z.string().length(2).optional()
32
- .describe("Two-letter country code the ads ran in, e.g. 'US', 'GB', 'DE' (default 'US')."),
33
+ .describe("Country, e.g. 'US' (default)."),
33
34
  active_status: z.enum(["all", "active", "inactive"]).optional()
34
- .describe("Whether the ad is still running (default 'all')."),
35
+ .describe("Default 'all'."),
35
36
  ad_type: z.enum(["all", "political_and_issue_ads"]).optional()
36
- .describe("Ad category (default 'all'). Set 'political_and_issue_ads' to expose spend, reach, impressions and the paid-for-by disclosure - those fields are null on commercial ads."),
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. Default: no media filter."),
39
+ .describe("Creative media type."),
39
40
  cursor: z.string().min(1).optional()
40
- .describe("next_cursor from the previous response. Page one is 30 ads, each page after it is 10. The other filters are ignored when this is set."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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", `Meta Ad Library - every ad running on Facebook and Instagram, public and logged-out. Get ONE ad in full as JSON by its ad archive id: the creative, the advertiser, run dates, the platforms it ran on, and any political disclosure. Use it to expand a single ad you already found via search_meta_ads or get_meta_ads_advertiser. Requires the numeric ad_archive_id. No pagination - one ad, one call. spend, reach, impressions and the paid-for-by disclosure are NULL unless this is a political or issue ad; commercial ads never carry them. Costs 1 credit.`, {
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("The ad's numeric archive id, digits only, e.g. '1234567890123456'. Take it from a search_meta_ads or get_meta_ads_advertiser row."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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":"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"}
1
+ {"version":3,"file":"metaads.js","sourceRoot":"","sources":["../../src/tools/metaads.ts"],"names":[],"mappings":"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"}
@@ -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 across all of Reddit as JSON. Returns data.results, each with post_id, title, text, url, subreddit, author, score, upvote_ratio, num_comments, created_at, is_nsfw, is_video, thumbnail, and media. Use data.next_cursor as the cursor parameter for the next page while data.has_more is true. Results cannot be sorted or filtered by type - the API returns relevance order only. Slower than other platforms (5-15 seconds). Costs 1 credit.`, {
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 (1-500 chars)."),
7
+ .describe("Search query."),
7
8
  cursor: z.string().optional()
8
- .describe("Pagination cursor. Use data.next_cursor from previous response for next page."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 single Reddit post by URL or post id as JSON. Returns a flat post object: post_id, title, text, url, subreddit, author, score, upvote_ratio, num_comments, created_at, is_nsfw, is_video, thumbnail, and media. Does NOT return comments - call get_reddit_post_comments with the post_id for those. Pass post_id or url (at least one is required). Slower than other platforms (5-15 seconds). Costs 1 credit.`, {
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, e.g. 't3_1v6ngaf'. Either this or url is required."),
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, e.g. 'https://www.reddit.com/r/Python/comments/1smb9du/fastapi_vs_django/'. Either this or post_id is required."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 for a query as JSON. Returns a list of suggested search strings. Use to expand a seed keyword or surface what people search for. Costs 1 credit.`, {
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("Partial or seed search query to autocomplete."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 the top-level comments for a Reddit post as JSON. Each comment includes its ID, text, author, score, timestamp, and a reply_cursor for fetching its replies. Accepts a post fullname (t3_...). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.`, {
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 (t3_...), e.g. 't3_1v6ngaf'."),
47
+ .describe("Post fullname, e.g. 't3_1v6ngaf'."),
47
48
  sort: z.enum(["HOT", "NEW", "TOP", "BEST", "CONTROVERSIAL"]).default("TOP")
48
- .describe("Comment sort order (default 'TOP')."),
49
+ .describe("Sort order."),
49
50
  cursor: z.string().optional()
50
- .describe("Pagination cursor (next_cursor) from a previous response."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 the replies to a specific Reddit comment as JSON. Requires the post fullname and the reply_cursor from a comment in the get_reddit_post_comments response. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.`, {
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 (t3_...), e.g. 't3_1v6ngaf'."),
63
+ .describe("Post fullname, e.g. 't3_1v6ngaf'."),
63
64
  cursor: z.string().min(1)
64
- .describe("The reply_cursor from a comment in the get_reddit_post_comments response."),
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("Reply sort order (default 'TOP')."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 metadata for a subreddit as JSON, including its name, title, description, subscriber count, type, NSFW flag, icon, banner, primary color, and creation date. Accepts a subreddit name (without r/). Costs 1 credit.`, {
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/, e.g. 'AskReddit'."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 a subreddit's post feed as JSON. Each post includes its ID, title, URL, text, author, score, comment count, timestamp, and NSFW flag. Accepts a subreddit name (without r/). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.`, {
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/, e.g. 'AskReddit'."),
91
+ .describe("Subreddit name without r/."),
91
92
  sort: z.enum(["BEST", "HOT", "NEW", "TOP", "CONTROVERSIAL", "RISING"]).default("HOT")
92
- .describe("Feed sort order (default 'HOT')."),
93
+ .describe("Sort order."),
93
94
  cursor: z.string().optional()
94
- .describe("Pagination cursor (next_cursor) from a previous response."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 redditor's profile as JSON, including their ID, name, employee/verified flags, account type, and whether they accept private messages. Accepts a username (without u/). Costs 1 credit.`, {
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("Reddit username without u/, e.g. 'spez'."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 redditor's submitted posts as JSON. Each post includes its ID, title, URL, subreddit, score, comment count, and timestamp. Accepts a username (without u/). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.`, {
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("Reddit username without u/, e.g. 'spez'."),
119
+ .describe("Username without u/."),
119
120
  sort: z.enum(["HOT", "NEW", "TOP", "BEST", "CONTROVERSIAL"]).default("NEW")
120
- .describe("Sort order (default 'NEW')."),
121
+ .describe("Sort order."),
121
122
  cursor: z.string().optional()
122
- .describe("Pagination cursor (next_cursor) from a previous response."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 redditor's comments as JSON. Each comment includes its ID, text, author, the post it belongs to (ID and title), score, and timestamp. Accepts a username (without u/). Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.`, {
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("Reddit username without u/, e.g. 'spez'."),
135
+ .describe("Username without u/."),
135
136
  sort: z.enum(["HOT", "NEW", "TOP", "BEST", "CONTROVERSIAL"]).default("NEW")
136
- .describe("Sort order (default 'NEW')."),
137
+ .describe("Sort order."),
137
138
  cursor: z.string().optional()
138
- .describe("Pagination cursor (next_cursor) from a previous response."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 the site-wide popular feed as JSON. Each post includes its ID, title, subreddit, author, score, comment count, URL, and timestamp. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.`, {
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("Pagination cursor (next_cursor) from a previous response."),
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
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 as JSON. Each entry includes the display query and the raw query. Takes no parameters. Costs 1 credit.`, {}, async () => {
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 { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
164
+ return trimResponse(data);
164
165
  }
165
166
  catch (err) {
166
167
  return handleApiError(err);
@@ -1 +1 @@
1
- {"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/tools/reddit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/tools/reddit.ts"],"names":[],"mappings":"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"}