@scavio/mcp-server 0.7.0 → 0.9.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 +17 -13
- package/dist/tools/linkedin.js +58 -227
- package/dist/tools/linkedin.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, Reddit, X, LinkedIn, and TikTok Shop.
|
|
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, Reddit, X, LinkedIn, and TikTok Shop. 98 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
|
|
|
@@ -316,20 +316,24 @@ Add to settings (`Cmd+,`):
|
|
|
316
316
|
|
|
317
317
|
| Tool | Description |
|
|
318
318
|
|------|-------------|
|
|
319
|
-
| `get_linkedin_person` | Get a member's full profile |
|
|
320
|
-
| `get_linkedin_person_about` | Get a member's about/overview
|
|
321
|
-
| `get_linkedin_person_posts` | List a member's recent posts |
|
|
322
|
-
| `
|
|
323
|
-
| `
|
|
324
|
-
| `
|
|
325
|
-
| `get_linkedin_company_people` | List people who work at a company |
|
|
326
|
-
| `get_linkedin_company_jobs` | List a company's open job listings |
|
|
327
|
-
| `search_linkedin_people` | Search for people by name, title, company, or school |
|
|
328
|
-
| `search_linkedin_jobs` | Search for jobs by keyword |
|
|
329
|
-
| `search_linkedin_posts` | Search for posts by keyword |
|
|
319
|
+
| `get_linkedin_person` | Get a member's full profile, experience and education |
|
|
320
|
+
| `get_linkedin_person_about` | Get a member's about/overview sections |
|
|
321
|
+
| `get_linkedin_person_posts` | List a member's recent posts (up to 50) |
|
|
322
|
+
| `get_linkedin_company` | Get a company's profile, locations and related companies |
|
|
323
|
+
| `get_linkedin_company_posts` | List a company's recent posts (up to 50) |
|
|
324
|
+
| `search_linkedin_jobs` | Search for jobs by keyword and location |
|
|
330
325
|
| `get_linkedin_job` | Get full details for a job listing |
|
|
331
326
|
| `get_linkedin_post` | Get full details for a single post |
|
|
332
|
-
| `get_linkedin_post_comments` | Get comments on a post |
|
|
327
|
+
| `get_linkedin_post_comments` | Get comments on a post, 10 per page |
|
|
328
|
+
|
|
329
|
+
Every LinkedIn tool costs 1 credit. Take a vanity handle, slug or id, or a full
|
|
330
|
+
LinkedIn URL.
|
|
331
|
+
|
|
332
|
+
The upstream provider retired the datasets behind member contact info, the
|
|
333
|
+
company employee directory, per-company job listings, people search and post
|
|
334
|
+
search, so those five tools were removed. `get_linkedin_company` still returns a
|
|
335
|
+
small sample of featured employees, and `search_linkedin_jobs` with a company
|
|
336
|
+
name substitutes for per-company listings.
|
|
333
337
|
|
|
334
338
|
### [TikTok Shop API](https://scavio.dev/docs/tiktok-shop-search)
|
|
335
339
|
|
package/dist/tools/linkedin.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
|
|
3
3
|
import { ApiError } from "../lib/errors.js";
|
|
4
|
+
// The provider retired the `linkedin/web/*` namespace these tools were built on.
|
|
5
|
+
// The nine below run on `web_v2`: every reference is a vanity handle, slug or id
|
|
6
|
+
// (a full LinkedIn URL also works anywhere), and all cost 1 credit.
|
|
7
|
+
//
|
|
8
|
+
// Five tools were removed rather than left registered - person_contact,
|
|
9
|
+
// company_people, company_jobs, search_people and search_posts have no upstream
|
|
10
|
+
// and can only return 410. Unlike an SDK method, an MCP tool is a menu item for
|
|
11
|
+
// a model: one that always fails burns turns and invites retries, so it is
|
|
12
|
+
// better absent. The REST API still answers those paths with an explicit 410.
|
|
4
13
|
function handleApiError(err) {
|
|
5
14
|
if (err instanceof ApiError) {
|
|
6
15
|
if (err.status === 429)
|
|
@@ -11,240 +20,62 @@ function handleApiError(err) {
|
|
|
11
20
|
}
|
|
12
21
|
throw new McpError(ErrorCode.InternalError, String(err));
|
|
13
22
|
}
|
|
23
|
+
const personRef = {
|
|
24
|
+
username: z.string().min(1).optional()
|
|
25
|
+
.describe("Public identifier (vanity handle), e.g. 'williamhgates'."),
|
|
26
|
+
url: z.string().url().optional()
|
|
27
|
+
.describe("Full LinkedIn profile URL, as an alternative to username."),
|
|
28
|
+
};
|
|
29
|
+
const companyRef = {
|
|
30
|
+
company: z.string().min(1).optional()
|
|
31
|
+
.describe("Company universal name (slug), e.g. 'microsoft'."),
|
|
32
|
+
url: z.string().url().optional()
|
|
33
|
+
.describe("Full LinkedIn company URL, as an alternative to company."),
|
|
34
|
+
};
|
|
35
|
+
const postRef = {
|
|
36
|
+
post_id: z.string().min(1).optional()
|
|
37
|
+
.describe("Post id or activity urn, e.g. '7488618410256523265'."),
|
|
38
|
+
url: z.string().url().optional()
|
|
39
|
+
.describe("Full LinkedIn post URL, as an alternative to post_id."),
|
|
40
|
+
};
|
|
14
41
|
export function registerLinkedinTools(server, getClient) {
|
|
15
|
-
|
|
16
|
-
username: z.string().min(1)
|
|
17
|
-
.describe("Public identifier (vanity handle), e.g. 'williamhgates'."),
|
|
18
|
-
include_experiences: z.boolean().optional()
|
|
19
|
-
.describe("Include the work experience section (default true)."),
|
|
20
|
-
include_educations: z.boolean().optional()
|
|
21
|
-
.describe("Include the education section (default true)."),
|
|
22
|
-
include_skills: z.boolean().optional()
|
|
23
|
-
.describe("Include the skills section (default true)."),
|
|
24
|
-
include_certifications: z.boolean().optional()
|
|
25
|
-
.describe("Include the certifications section (default true)."),
|
|
26
|
-
include_follower_and_connection: z.boolean().optional()
|
|
27
|
-
.describe("Include follower and connection counts (default true)."),
|
|
28
|
-
}, async (params) => {
|
|
42
|
+
const call = (path) => async (params) => {
|
|
29
43
|
try {
|
|
30
|
-
const data = await getClient().post(
|
|
44
|
+
const data = await getClient().post(path, params);
|
|
31
45
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
32
46
|
}
|
|
33
47
|
catch (err) {
|
|
34
48
|
return handleApiError(err);
|
|
35
49
|
}
|
|
36
|
-
}
|
|
37
|
-
server.tool("
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
urn: z.string().min(1).optional()
|
|
53
|
-
.describe("Member urn, e.g. 'ACoAAA8BYqEBCGLg_vT_ca6mMEqkpp9nVffJ3hc'."),
|
|
54
|
-
username: z.string().min(1).optional()
|
|
55
|
-
.describe("Public identifier; resolved if urn is omitted, e.g. 'williamhgates'."),
|
|
56
|
-
cursor: z.string().optional()
|
|
57
|
-
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
58
|
-
}, async (params) => {
|
|
59
|
-
try {
|
|
60
|
-
const data = await getClient().post("/api/v1/linkedin/person/posts", params);
|
|
61
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
return handleApiError(err);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
server.tool("get_linkedin_person_contact", `Get a LinkedIn member's public contact information as JSON. Accepts the public identifier (vanity handle). Costs 4 credits.`, {
|
|
68
|
-
username: z.string().min(1)
|
|
69
|
-
.describe("Public identifier (vanity handle), e.g. 'williamhgates'."),
|
|
70
|
-
}, async (params) => {
|
|
71
|
-
try {
|
|
72
|
-
const data = await getClient().post("/api/v1/linkedin/person/contact", params);
|
|
73
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
74
|
-
}
|
|
75
|
-
catch (err) {
|
|
76
|
-
return handleApiError(err);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
server.tool("get_linkedin_company", `Get a LinkedIn company's profile as JSON. Accepts the company universal name (slug) or a LinkedIn company URL. Costs 1 credit.`, {
|
|
80
|
-
company: z.string().min(1)
|
|
81
|
-
.describe("Company universal name (slug) or LinkedIn company URL, e.g. 'microsoft'."),
|
|
82
|
-
}, async (params) => {
|
|
83
|
-
try {
|
|
84
|
-
const data = await getClient().post("/api/v1/linkedin/company", params);
|
|
85
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
86
|
-
}
|
|
87
|
-
catch (err) {
|
|
88
|
-
return handleApiError(err);
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
server.tool("get_linkedin_company_posts", `List a LinkedIn company's recent posts as JSON. Accepts the company slug or URL. Use data.next_cursor as the next cursor while has_more is true. Costs 1 credit.`, {
|
|
92
|
-
company: z.string().min(1)
|
|
93
|
-
.describe("Company universal name (slug) or LinkedIn company URL, e.g. 'microsoft'."),
|
|
94
|
-
cursor: z.string().optional()
|
|
95
|
-
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
96
|
-
count: z.number().int().positive().max(100).optional()
|
|
97
|
-
.describe("Number of posts to return per page (max 100)."),
|
|
98
|
-
}, async (params) => {
|
|
99
|
-
try {
|
|
100
|
-
const data = await getClient().post("/api/v1/linkedin/company/posts", params);
|
|
101
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
102
|
-
}
|
|
103
|
-
catch (err) {
|
|
104
|
-
return handleApiError(err);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
server.tool("get_linkedin_company_people", `List people who work at a LinkedIn company as JSON. Provide the numeric company_id, or a company slug/url that will be resolved to a company_id. Use data.next_cursor as the next cursor while has_more is true. Costs 4 credits.`, {
|
|
108
|
-
company_id: z.string().min(1).optional()
|
|
109
|
-
.describe("Numeric company id, e.g. '1035'."),
|
|
110
|
-
company: z.string().min(1).optional()
|
|
111
|
-
.describe("Company slug/url; resolved to a company_id if company_id is omitted, e.g. 'microsoft'."),
|
|
112
|
-
cursor: z.string().optional()
|
|
113
|
-
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
114
|
-
}, async (params) => {
|
|
115
|
-
try {
|
|
116
|
-
const data = await getClient().post("/api/v1/linkedin/company/people", params);
|
|
117
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
118
|
-
}
|
|
119
|
-
catch (err) {
|
|
120
|
-
return handleApiError(err);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
server.tool("get_linkedin_company_jobs", `List a LinkedIn company's open job listings as JSON. Provide the numeric company_id, or a company slug/url that will be resolved to a company_id. Use data.next_cursor as the next cursor while has_more is true. Costs 4 credits.`, {
|
|
124
|
-
company_id: z.string().min(1).optional()
|
|
125
|
-
.describe("Numeric company id, e.g. '1035'."),
|
|
126
|
-
company: z.string().min(1).optional()
|
|
127
|
-
.describe("Company slug/url; resolved to a company_id if company_id is omitted, e.g. 'microsoft'."),
|
|
128
|
-
cursor: z.string().optional()
|
|
129
|
-
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
130
|
-
}, async (params) => {
|
|
131
|
-
try {
|
|
132
|
-
const data = await getClient().post("/api/v1/linkedin/company/jobs", params);
|
|
133
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
134
|
-
}
|
|
135
|
-
catch (err) {
|
|
136
|
-
return handleApiError(err);
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
server.tool("search_linkedin_people", `Search LinkedIn for people as JSON. Filter by name, title, company, or school, and optionally location. Each result includes the member urn, profile URL, public identifier, name, title, location, and verified/premium/open-to-work/hiring flags. Provide at least one of search, title, company, or school. Use data.next_cursor as the next cursor while has_more is true. Costs 4 credits.`, {
|
|
140
|
-
search: z.string().min(1).optional()
|
|
141
|
-
.describe("Name to search for, e.g. 'john'."),
|
|
142
|
-
title: z.string().optional()
|
|
143
|
-
.describe("Job title filter, e.g. 'engineer'."),
|
|
144
|
-
company: z.string().optional()
|
|
145
|
-
.describe("Company filter."),
|
|
146
|
-
school: z.string().optional()
|
|
147
|
-
.describe("School filter."),
|
|
50
|
+
};
|
|
51
|
+
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"));
|
|
52
|
+
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"));
|
|
53
|
+
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 1 credit per page.`, {
|
|
54
|
+
...personRef,
|
|
55
|
+
type: z.enum(["posts", "comments", "reactions"]).optional()
|
|
56
|
+
.describe("Which feed: the member's own posts (default), posts they commented on, or posts they reacted to."),
|
|
57
|
+
cursor: z.string().optional().describe("next_cursor from a previous response, to fetch the next page."),
|
|
58
|
+
}, call("/api/v1/linkedin/person/posts"));
|
|
59
|
+
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"));
|
|
60
|
+
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 1 credit per page.`, {
|
|
61
|
+
...companyRef,
|
|
62
|
+
cursor: z.string().optional().describe("next_cursor from a previous response, to fetch the next page."),
|
|
63
|
+
}, call("/api/v1/linkedin/company/posts"));
|
|
64
|
+
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 1 credit per page.`, {
|
|
65
|
+
search: z.string().min(1).describe("Search keyword, e.g. 'software engineer'."),
|
|
148
66
|
location: z.string().optional()
|
|
149
|
-
.describe("
|
|
150
|
-
cursor: z.string().optional()
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
search: z.string().min(1)
|
|
163
|
-
.describe("Job search keyword, e.g. 'software engineer'."),
|
|
164
|
-
cursor: z.string().optional()
|
|
165
|
-
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
166
|
-
date_posted: z.string().optional()
|
|
167
|
-
.describe("Date-posted filter."),
|
|
168
|
-
geocode: z.string().optional()
|
|
169
|
-
.describe("Location geocode filter."),
|
|
170
|
-
experience_level: z.string().optional()
|
|
171
|
-
.describe("Experience-level filter."),
|
|
172
|
-
remote: z.string().optional()
|
|
173
|
-
.describe("Remote filter."),
|
|
174
|
-
job_type: z.string().optional()
|
|
175
|
-
.describe("Job-type filter."),
|
|
176
|
-
}, async (params) => {
|
|
177
|
-
try {
|
|
178
|
-
const data = await getClient().post("/api/v1/linkedin/search/jobs", params);
|
|
179
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
180
|
-
}
|
|
181
|
-
catch (err) {
|
|
182
|
-
return handleApiError(err);
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
server.tool("search_linkedin_posts", `Search LinkedIn for posts by keyword as JSON. Each result includes the post ID, URL, title, activity counts (likes, comments, shares), timestamp, and author details. Use data.next_cursor as the next cursor while has_more is true. Costs 4 credits.`, {
|
|
186
|
-
search: z.string().min(1)
|
|
187
|
-
.describe("Post search keyword, e.g. 'AI agents'."),
|
|
188
|
-
cursor: z.string().optional()
|
|
189
|
-
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
190
|
-
date_posted: z.string().optional()
|
|
191
|
-
.describe("Date-posted filter."),
|
|
192
|
-
sort_by: z.string().optional()
|
|
193
|
-
.describe("Sort order filter."),
|
|
194
|
-
content_type: z.string().optional()
|
|
195
|
-
.describe("Content-type filter."),
|
|
196
|
-
}, async (params) => {
|
|
197
|
-
try {
|
|
198
|
-
const data = await getClient().post("/api/v1/linkedin/search/posts", params);
|
|
199
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
200
|
-
}
|
|
201
|
-
catch (err) {
|
|
202
|
-
return handleApiError(err);
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
server.tool("get_linkedin_job", `Get full details for a single LinkedIn job listing as JSON. Accepts a job ID. Costs 4 credits.`, {
|
|
206
|
-
job_id: z.string().min(1)
|
|
207
|
-
.describe("Job ID, e.g. '3900000000'."),
|
|
208
|
-
include_skills: z.boolean().optional()
|
|
209
|
-
.describe("Include the required-skills section."),
|
|
210
|
-
}, async (params) => {
|
|
211
|
-
try {
|
|
212
|
-
const data = await getClient().post("/api/v1/linkedin/job", params);
|
|
213
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
214
|
-
}
|
|
215
|
-
catch (err) {
|
|
216
|
-
return handleApiError(err);
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
server.tool("get_linkedin_post", `Get full details for a single LinkedIn post as JSON. Accepts a post ID or activity urn. Costs 4 credits.`, {
|
|
220
|
-
post_id: z.string().min(1)
|
|
221
|
-
.describe("Post id or activity urn, e.g. '7486820977411145728'."),
|
|
222
|
-
}, async (params) => {
|
|
223
|
-
try {
|
|
224
|
-
const data = await getClient().post("/api/v1/linkedin/post", params);
|
|
225
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
226
|
-
}
|
|
227
|
-
catch (err) {
|
|
228
|
-
return handleApiError(err);
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
server.tool("get_linkedin_post_comments", `Get comments on a LinkedIn post as JSON. Accepts a post ID or activity urn. Use data.next_cursor as the next cursor while has_more is true. Costs 4 credits.`, {
|
|
232
|
-
post_id: z.string().min(1)
|
|
233
|
-
.describe("Post id or activity urn, e.g. '7486820977411145728'."),
|
|
234
|
-
cursor: z.string().optional()
|
|
235
|
-
.describe("Pagination cursor (next_cursor) from a previous response."),
|
|
236
|
-
sort_order: z.enum(["relevance", "recent"]).optional()
|
|
237
|
-
.describe("'relevance' or 'recent'."),
|
|
238
|
-
post_type: z.enum(["activity", "ugc"]).optional()
|
|
239
|
-
.describe("Post type: 'activity' or 'ugc'."),
|
|
240
|
-
}, async (params) => {
|
|
241
|
-
try {
|
|
242
|
-
const data = await getClient().post("/api/v1/linkedin/post/comments", params);
|
|
243
|
-
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
244
|
-
}
|
|
245
|
-
catch (err) {
|
|
246
|
-
return handleApiError(err);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
67
|
+
.describe("Geographic filter, e.g. 'United States'. Omit to search everywhere."),
|
|
68
|
+
cursor: z.string().optional().describe("next_cursor from a previous response, to fetch the next page."),
|
|
69
|
+
}, call("/api/v1/linkedin/search/jobs"));
|
|
70
|
+
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 1 credit.`, {
|
|
71
|
+
job_id: z.string().min(1).optional().describe("Job listing id, e.g. '4415427228'."),
|
|
72
|
+
url: z.string().url().optional().describe("Full LinkedIn job URL, as an alternative to job_id."),
|
|
73
|
+
}, call("/api/v1/linkedin/job"));
|
|
74
|
+
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"));
|
|
75
|
+
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 1 credit.`, {
|
|
76
|
+
...postRef,
|
|
77
|
+
page: z.number().int().positive().optional()
|
|
78
|
+
.describe("1-based page number. Defaults to 1. Page size varies; stop when a page is empty."),
|
|
79
|
+
}, call("/api/v1/linkedin/post/comments"));
|
|
249
80
|
}
|
|
250
81
|
//# 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":"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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.9.0",
|
|
4
4
|
"mcpName": "io.github.scavio-ai/scavio-mcp",
|
|
5
|
-
"description": "MCP server connecting AI agents to Google, YouTube, Amazon, Walmart, TikTok, Instagram, Reddit, X, LinkedIn, and TikTok Shop.
|
|
5
|
+
"description": "MCP server connecting AI agents to Google, YouTube, Amazon, Walmart, TikTok, Instagram, Reddit, X, LinkedIn, and TikTok Shop. 98 tools for web search, product lookup, video discovery, and social media analysis.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "Scavio",
|