Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@linkedapi/mcp",
"version": "2.3.13",
"version": "2.3.14",
"description": "MCP server that lets AI assistants control LinkedIn accounts and retrieve real-time data.",
"main": "dist/index.js",
"bin": {
Expand Down
10 changes: 10 additions & 0 deletions src/tools/fetch-company.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export class FetchCompanyTool extends OperationTool<TFetchCompanyParams, unknown
locations: z.array(z.string()).optional(),
industries: z.array(z.string()).optional(),
schools: z.array(z.string()).optional(),
connectionDegrees: z.array(z.enum(['1st', '2nd', '3rd+'])).optional(),
})
.optional(),
})
Expand Down Expand Up @@ -142,6 +143,15 @@ export class FetchCompanyTool extends OperationTool<TFetchCompanyParams, unknown
'Optional. Array of institution names. Matches if employee currently attends or previously attended any of the listed institutions.',
items: { type: 'string' },
},
connectionDegrees: {
type: 'array',
description:
'Optional. Array of enums representing your connection degree to the employee. Matches if the employee is at any of the listed degrees.',
items: {
type: 'string',
enum: ['1st', '2nd', '3rd+'],
},
},
},
},
},
Expand Down
10 changes: 10 additions & 0 deletions src/tools/nv-fetch-company.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export class NvFetchCompanyTool extends OperationTool<TNvFetchCompanyParams, unk
industries: z.array(z.string()).optional(),
schools: z.array(z.string()).optional(),
yearsOfExperiences: z.array(z.string()).optional(),
connectionDegrees: z.array(z.enum(['1st', '2nd', '3rd+', 'groupMembers'])).optional(),
})
.optional(),
})
Expand Down Expand Up @@ -112,6 +113,15 @@ export class NvFetchCompanyTool extends OperationTool<TNvFetchCompanyParams, unk
enum: ['lessThanOne', 'oneToTwo', 'threeToFive', 'sixToTen', 'moreThanTen'],
},
},
connectionDegrees: {
type: 'array',
description:
'Optional. Array of enums representing your connection degree to the employee. Matches if the employee is at any of the listed degrees. groupMembers matches members of LinkedIn groups you belong to.',
items: {
type: 'string',
enum: ['1st', '2nd', '3rd+', 'groupMembers'],
},
},
},
},
},
Expand Down
12 changes: 11 additions & 1 deletion src/tools/nv-search-people.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export class NvSearchPeopleTool extends OperationTool<TNvSearchPeopleParams, unk
previousCompanies: z.array(z.string()).optional(),
schools: z.array(z.string()).optional(),
yearsOfExperiences: z.array(z.string()).optional(),
connectionDegrees: z.array(z.enum(['1st', '2nd', '3rd+', 'groupMembers'])).optional(),
})
.optional(),
});
Expand All @@ -29,7 +30,7 @@ export class NvSearchPeopleTool extends OperationTool<TNvSearchPeopleParams, unk
return {
name: this.name,
description:
'Allows you to search people in Sales Navigator applying various filtering criteria. (nv.searchPeople action). Every person in the result carries urn — their permanent LinkedIn member URN (urn:li:member:<id>), or null when LinkedIn does not expose it. The same person carries the same urn in standard interface results, so it can be used to match Sales Navigator results against them.',
'Allows you to search people in Sales Navigator applying various filtering criteria. (nv.searchPeople action). Every person in the result carries urn — their permanent LinkedIn member URN (urn:li:member:<id>), or null when LinkedIn does not expose it. The same person carries the same urn in standard interface results, so it can be used to match Sales Navigator results against them. Every person also carries viewerState.connectionDegree — your connection degree to them (1st, 2nd, 3rd+), or null when LinkedIn shows none.',
inputSchema: {
type: 'object',
properties: {
Expand Down Expand Up @@ -98,6 +99,15 @@ export class NvSearchPeopleTool extends OperationTool<TNvSearchPeopleParams, unk
enum: ['lessThanOne', 'oneToTwo', 'threeToFive', 'sixToTen', 'moreThanTen'],
},
},
connectionDegrees: {
type: 'array',
description:
'Optional. Array of enums representing your connection degree to the person. Matches if the person is at any of the listed degrees. groupMembers matches members of LinkedIn groups you belong to.',
items: {
type: 'string',
enum: ['1st', '2nd', '3rd+', 'groupMembers'],
},
},
},
},
},
Expand Down
12 changes: 11 additions & 1 deletion src/tools/search-people.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export class SearchPeopleTool extends OperationTool<TSearchPeopleParams, unknown
currentCompanies: z.array(z.string()).optional(),
previousCompanies: z.array(z.string()).optional(),
schools: z.array(z.string()).optional(),
connectionDegrees: z.array(z.enum(['1st', '2nd', '3rd+'])).optional(),
})
.optional(),
});
Expand All @@ -28,7 +29,7 @@ export class SearchPeopleTool extends OperationTool<TSearchPeopleParams, unknown
return {
name: this.name,
description:
'Allows you to search people applying various filtering criteria (st.searchPeople action). Every person in the result carries urn — their permanent LinkedIn member URN (urn:li:member:<id>), or null when LinkedIn does not expose it.',
'Allows you to search people applying various filtering criteria (st.searchPeople action). Every person in the result carries urn — their permanent LinkedIn member URN (urn:li:member:<id>), or null when LinkedIn does not expose it. Every person also carries viewerState.connectionDegree — your connection degree to them (1st, 2nd, 3rd+), or null when LinkedIn shows none.',
inputSchema: {
type: 'object',
properties: {
Expand Down Expand Up @@ -88,6 +89,15 @@ export class SearchPeopleTool extends OperationTool<TSearchPeopleParams, unknown
'Optional. Array of institution names. Matches if person currently attends or previously attended any of the listed institutions.',
items: { type: 'string' },
},
connectionDegrees: {
type: 'array',
description:
'Optional. Array of enums representing your connection degree to the person. Matches if the person is at any of the listed degrees.',
items: {
type: 'string',
enum: ['1st', '2nd', '3rd+'],
},
},
},
},
},
Expand Down
2 changes: 1 addition & 1 deletion src/tools/search-posts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ export class SearchPostsTool extends OperationTool<TSearchPostsParams, unknown>
fromMembers: {
type: 'array',
description:
'Optional. Array of people whose posts to keep. Each entry is a plain name string, or an object with name plus an optional urn or personHashedUrl that pins the exact person; both forms can be mixed in one array. With a name alone LinkedIn takes whichever suggestion it ranked first, which may be a namesake. An identifier no suggestion resolves to fails the action with filterIdentityMismatch rather than filtering by a namesake.',
'Optional. Array of people whose posts to keep. Each entry is a plain name string, or an object with name plus an optional urn or personHashedUrl that pins the exact person; both forms can be mixed in one array. With a name alone LinkedIn takes whichever suggestion it ranked first, which may be a namesake. An identifier no suggestion resolves to fails the action with filterNotApplied rather than filtering by a namesake.',
items: PERSON_FILTER_ENTRY_JSON_SCHEMA,
},
fromCompanies: {
Expand Down
Loading