@linkedapi/mcp 0.3.11
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/.dockerignore +11 -0
- package/.github/workflows/merge-main.yaml +136 -0
- package/.github/workflows/pr-main.yaml +42 -0
- package/.husky/pre-commit +5 -0
- package/.prettierrc.js +21 -0
- package/.vscode/launch.json +19 -0
- package/Dockerfile +39 -0
- package/LICENSE +21 -0
- package/README.md +17 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +189 -0
- package/dist/index.js.map +1 -0
- package/dist/linked-api-server.d.ts +13 -0
- package/dist/linked-api-server.d.ts.map +1 -0
- package/dist/linked-api-server.js +127 -0
- package/dist/linked-api-server.js.map +1 -0
- package/dist/linked-api-tools.d.ts +8 -0
- package/dist/linked-api-tools.d.ts.map +1 -0
- package/dist/linked-api-tools.js +72 -0
- package/dist/linked-api-tools.js.map +1 -0
- package/dist/prompts/index.d.ts +10 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +190 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/tools/check-connection-status.d.ts +13 -0
- package/dist/tools/check-connection-status.d.ts.map +1 -0
- package/dist/tools/check-connection-status.js +31 -0
- package/dist/tools/check-connection-status.js.map +1 -0
- package/dist/tools/comment-on-post.d.ts +15 -0
- package/dist/tools/comment-on-post.d.ts.map +1 -0
- package/dist/tools/comment-on-post.js +41 -0
- package/dist/tools/comment-on-post.js.map +1 -0
- package/dist/tools/create-post.d.ts +23 -0
- package/dist/tools/create-post.d.ts.map +1 -0
- package/dist/tools/create-post.js +67 -0
- package/dist/tools/create-post.js.map +1 -0
- package/dist/tools/execute-custom-workflow.d.ts +13 -0
- package/dist/tools/execute-custom-workflow.d.ts.map +1 -0
- package/dist/tools/execute-custom-workflow.js +26 -0
- package/dist/tools/execute-custom-workflow.js.map +1 -0
- package/dist/tools/fetch-company.d.ts +34 -0
- package/dist/tools/fetch-company.d.ts.map +1 -0
- package/dist/tools/fetch-company.js +139 -0
- package/dist/tools/fetch-company.js.map +1 -0
- package/dist/tools/fetch-person.d.ts +32 -0
- package/dist/tools/fetch-person.d.ts.map +1 -0
- package/dist/tools/fetch-person.js +129 -0
- package/dist/tools/fetch-person.js.map +1 -0
- package/dist/tools/fetch-post.d.ts +26 -0
- package/dist/tools/fetch-post.d.ts.map +1 -0
- package/dist/tools/fetch-post.js +82 -0
- package/dist/tools/fetch-post.js.map +1 -0
- package/dist/tools/get-api-usage-stats.d.ts +19 -0
- package/dist/tools/get-api-usage-stats.d.ts.map +1 -0
- package/dist/tools/get-api-usage-stats.js +40 -0
- package/dist/tools/get-api-usage-stats.js.map +1 -0
- package/dist/tools/get-conversation.d.ts +26 -0
- package/dist/tools/get-conversation.d.ts.map +1 -0
- package/dist/tools/get-conversation.js +59 -0
- package/dist/tools/get-conversation.js.map +1 -0
- package/dist/tools/get-workflow-result.d.ts +50 -0
- package/dist/tools/get-workflow-result.d.ts.map +1 -0
- package/dist/tools/get-workflow-result.js +46 -0
- package/dist/tools/get-workflow-result.js.map +1 -0
- package/dist/tools/nv-fetch-company.d.ts +30 -0
- package/dist/tools/nv-fetch-company.d.ts.map +1 -0
- package/dist/tools/nv-fetch-company.js +124 -0
- package/dist/tools/nv-fetch-company.js.map +1 -0
- package/dist/tools/nv-fetch-person.d.ts +13 -0
- package/dist/tools/nv-fetch-person.d.ts.map +1 -0
- package/dist/tools/nv-fetch-person.js +31 -0
- package/dist/tools/nv-fetch-person.js.map +1 -0
- package/dist/tools/nv-get-conversation.d.ts +26 -0
- package/dist/tools/nv-get-conversation.d.ts.map +1 -0
- package/dist/tools/nv-get-conversation.js +59 -0
- package/dist/tools/nv-get-conversation.js.map +1 -0
- package/dist/tools/nv-search-companies.d.ts +32 -0
- package/dist/tools/nv-search-companies.d.ts.map +1 -0
- package/dist/tools/nv-search-companies.js +106 -0
- package/dist/tools/nv-search-companies.js.map +1 -0
- package/dist/tools/nv-search-people.d.ts +25 -0
- package/dist/tools/nv-search-people.d.ts.map +1 -0
- package/dist/tools/nv-search-people.js +99 -0
- package/dist/tools/nv-search-people.js.map +1 -0
- package/dist/tools/nv-send-message.d.ts +15 -0
- package/dist/tools/nv-send-message.d.ts.map +1 -0
- package/dist/tools/nv-send-message.js +41 -0
- package/dist/tools/nv-send-message.js.map +1 -0
- package/dist/tools/nv-sync-conversation.d.ts +13 -0
- package/dist/tools/nv-sync-conversation.d.ts.map +1 -0
- package/dist/tools/nv-sync-conversation.js +31 -0
- package/dist/tools/nv-sync-conversation.js.map +1 -0
- package/dist/tools/react-to-post.d.ts +22 -0
- package/dist/tools/react-to-post.d.ts.map +1 -0
- package/dist/tools/react-to-post.js +42 -0
- package/dist/tools/react-to-post.js.map +1 -0
- package/dist/tools/remove-connection.d.ts +13 -0
- package/dist/tools/remove-connection.d.ts.map +1 -0
- package/dist/tools/remove-connection.js +31 -0
- package/dist/tools/remove-connection.js.map +1 -0
- package/dist/tools/retrieve-connections.d.ts +24 -0
- package/dist/tools/retrieve-connections.d.ts.map +1 -0
- package/dist/tools/retrieve-connections.js +90 -0
- package/dist/tools/retrieve-connections.js.map +1 -0
- package/dist/tools/retrieve-pending-requests.d.ts +10 -0
- package/dist/tools/retrieve-pending-requests.d.ts.map +1 -0
- package/dist/tools/retrieve-pending-requests.js +23 -0
- package/dist/tools/retrieve-pending-requests.js.map +1 -0
- package/dist/tools/retrieve-performance.d.ts +10 -0
- package/dist/tools/retrieve-performance.d.ts.map +1 -0
- package/dist/tools/retrieve-performance.js +23 -0
- package/dist/tools/retrieve-performance.js.map +1 -0
- package/dist/tools/retrieve-ssi.d.ts +10 -0
- package/dist/tools/retrieve-ssi.d.ts.map +1 -0
- package/dist/tools/retrieve-ssi.js +23 -0
- package/dist/tools/retrieve-ssi.js.map +1 -0
- package/dist/tools/search-companies.d.ts +28 -0
- package/dist/tools/search-companies.d.ts.map +1 -0
- package/dist/tools/search-companies.js +86 -0
- package/dist/tools/search-companies.js.map +1 -0
- package/dist/tools/search-people.d.ts +24 -0
- package/dist/tools/search-people.d.ts.map +1 -0
- package/dist/tools/search-people.js +90 -0
- package/dist/tools/search-people.js.map +1 -0
- package/dist/tools/send-connection-request.d.ts +15 -0
- package/dist/tools/send-connection-request.d.ts.map +1 -0
- package/dist/tools/send-connection-request.js +41 -0
- package/dist/tools/send-connection-request.js.map +1 -0
- package/dist/tools/send-message.d.ts +14 -0
- package/dist/tools/send-message.d.ts.map +1 -0
- package/dist/tools/send-message.js +36 -0
- package/dist/tools/send-message.js.map +1 -0
- package/dist/tools/sync-conversation.d.ts +13 -0
- package/dist/tools/sync-conversation.d.ts.map +1 -0
- package/dist/tools/sync-conversation.js +31 -0
- package/dist/tools/sync-conversation.js.map +1 -0
- package/dist/tools/withdraw-connection-request.d.ts +14 -0
- package/dist/tools/withdraw-connection-request.d.ts.map +1 -0
- package/dist/tools/withdraw-connection-request.js +36 -0
- package/dist/tools/withdraw-connection-request.js.map +1 -0
- package/dist/utils/define-request-timeout.d.ts +2 -0
- package/dist/utils/define-request-timeout.d.ts.map +1 -0
- package/dist/utils/define-request-timeout.js +20 -0
- package/dist/utils/define-request-timeout.js.map +1 -0
- package/dist/utils/execute-with-progress.d.ts +8 -0
- package/dist/utils/execute-with-progress.d.ts.map +1 -0
- package/dist/utils/execute-with-progress.js +75 -0
- package/dist/utils/execute-with-progress.js.map +1 -0
- package/dist/utils/handle-linked-api-error.d.ts +3 -0
- package/dist/utils/handle-linked-api-error.d.ts.map +1 -0
- package/dist/utils/handle-linked-api-error.js +29 -0
- package/dist/utils/handle-linked-api-error.js.map +1 -0
- package/dist/utils/json-http-transport.d.ts +26 -0
- package/dist/utils/json-http-transport.d.ts.map +1 -0
- package/dist/utils/json-http-transport.js +265 -0
- package/dist/utils/json-http-transport.js.map +1 -0
- package/dist/utils/linked-api-tool.d.ts +28 -0
- package/dist/utils/linked-api-tool.d.ts.map +1 -0
- package/dist/utils/linked-api-tool.js +25 -0
- package/dist/utils/linked-api-tool.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +81 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/types.d.ts +16 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/eslint.config.js +118 -0
- package/package.json +62 -0
- package/src/index.ts +212 -0
- package/src/linked-api-server.ts +159 -0
- package/src/linked-api-tools.ts +72 -0
- package/src/prompts/index.ts +190 -0
- package/src/tools/check-connection-status.ts +39 -0
- package/src/tools/comment-on-post.ts +42 -0
- package/src/tools/create-post.ts +71 -0
- package/src/tools/execute-custom-workflow.ts +28 -0
- package/src/tools/fetch-company.ts +154 -0
- package/src/tools/fetch-person.ts +145 -0
- package/src/tools/fetch-post.ts +90 -0
- package/src/tools/get-api-usage-stats.ts +48 -0
- package/src/tools/get-conversation.ts +76 -0
- package/src/tools/get-workflow-result.ts +62 -0
- package/src/tools/nv-fetch-company.ts +136 -0
- package/src/tools/nv-fetch-person.ts +31 -0
- package/src/tools/nv-get-conversation.ts +76 -0
- package/src/tools/nv-search-companies.ts +114 -0
- package/src/tools/nv-search-people.ts +107 -0
- package/src/tools/nv-send-message.ts +42 -0
- package/src/tools/nv-sync-conversation.ts +32 -0
- package/src/tools/react-to-post.ts +44 -0
- package/src/tools/remove-connection.ts +32 -0
- package/src/tools/retrieve-connections.ts +105 -0
- package/src/tools/retrieve-pending-requests.ts +23 -0
- package/src/tools/retrieve-performance.ts +23 -0
- package/src/tools/retrieve-ssi.ts +23 -0
- package/src/tools/search-companies.ts +93 -0
- package/src/tools/search-people.ts +97 -0
- package/src/tools/send-connection-request.ts +46 -0
- package/src/tools/send-message.ts +36 -0
- package/src/tools/sync-conversation.ts +32 -0
- package/src/tools/withdraw-connection-request.ts +41 -0
- package/src/utils/define-request-timeout.ts +17 -0
- package/src/utils/execute-with-progress.ts +93 -0
- package/src/utils/handle-linked-api-error.ts +27 -0
- package/src/utils/json-http-transport.ts +325 -0
- package/src/utils/linked-api-tool.ts +58 -0
- package/src/utils/logger.ts +84 -0
- package/src/utils/types.ts +17 -0
- package/tsconfig.json +36 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FetchCompanyTool = void 0;
|
|
4
|
+
const node_1 = require("@linkedapi/node");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
|
|
7
|
+
class FetchCompanyTool extends linked_api_tool_js_1.OperationTool {
|
|
8
|
+
name = 'fetch_company';
|
|
9
|
+
operationName = node_1.OPERATION_NAME.fetchCompany;
|
|
10
|
+
schema = zod_1.z.object({
|
|
11
|
+
companyUrl: zod_1.z.string(),
|
|
12
|
+
retrieveEmployees: zod_1.z.boolean().optional().default(false),
|
|
13
|
+
retrievePosts: zod_1.z.boolean().optional().default(false),
|
|
14
|
+
retrieveDMs: zod_1.z.boolean().optional().default(false),
|
|
15
|
+
postsRetrievalConfig: zod_1.z
|
|
16
|
+
.object({
|
|
17
|
+
limit: zod_1.z.number().min(1).max(20).optional(),
|
|
18
|
+
since: zod_1.z.string().optional(),
|
|
19
|
+
})
|
|
20
|
+
.optional(),
|
|
21
|
+
dmsRetrievalConfig: zod_1.z
|
|
22
|
+
.object({
|
|
23
|
+
limit: zod_1.z.number().min(1).max(20).optional(),
|
|
24
|
+
})
|
|
25
|
+
.optional(),
|
|
26
|
+
employeesRetrievalConfig: zod_1.z
|
|
27
|
+
.object({
|
|
28
|
+
limit: zod_1.z.number().min(1).max(500).optional(),
|
|
29
|
+
filter: zod_1.z
|
|
30
|
+
.object({
|
|
31
|
+
firstName: zod_1.z.string().optional(),
|
|
32
|
+
lastName: zod_1.z.string().optional(),
|
|
33
|
+
position: zod_1.z.string().optional(),
|
|
34
|
+
locations: zod_1.z.array(zod_1.z.string()).optional(),
|
|
35
|
+
industries: zod_1.z.array(zod_1.z.string()).optional(),
|
|
36
|
+
schools: zod_1.z.array(zod_1.z.string()).optional(),
|
|
37
|
+
})
|
|
38
|
+
.optional(),
|
|
39
|
+
})
|
|
40
|
+
.optional(),
|
|
41
|
+
});
|
|
42
|
+
getTool() {
|
|
43
|
+
return {
|
|
44
|
+
name: this.name,
|
|
45
|
+
description: 'Allows you to open a company page to retrieve its basic information (st.openCompanyPage action). Can optionally retrieve employees, posts and decision makers.',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
type: 'object',
|
|
48
|
+
properties: {
|
|
49
|
+
companyUrl: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
description: "Public or hashed LinkedIn URL of the company. (e.g., 'https://www.linkedin.com/company/microsoft')",
|
|
52
|
+
},
|
|
53
|
+
retrieveEmployees: {
|
|
54
|
+
type: 'boolean',
|
|
55
|
+
description: "Optional. Whether to retrieve the company's employees information. Default is false.",
|
|
56
|
+
},
|
|
57
|
+
retrievePosts: {
|
|
58
|
+
type: 'boolean',
|
|
59
|
+
description: "Optional. Whether to retrieve the company's posts information. Default is false.",
|
|
60
|
+
},
|
|
61
|
+
retrieveDMs: {
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
description: "Optional. Whether to retrieve the company's decision makers information. Default is false.",
|
|
64
|
+
},
|
|
65
|
+
postsRetrievalConfig: {
|
|
66
|
+
type: 'object',
|
|
67
|
+
description: 'Optional. Configuration for retrieving posts. Available only if retrievePosts is true.',
|
|
68
|
+
properties: {
|
|
69
|
+
limit: {
|
|
70
|
+
type: 'number',
|
|
71
|
+
description: 'Optional. Number of posts to retrieve. Defaults to 20, with a maximum value of 20.',
|
|
72
|
+
},
|
|
73
|
+
since: {
|
|
74
|
+
type: 'string',
|
|
75
|
+
description: 'Optional. ISO 8601 timestamp to filter posts published after the specified time.',
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
dmsRetrievalConfig: {
|
|
80
|
+
type: 'object',
|
|
81
|
+
description: 'Optional. Configuration for retrieving decision makers. Available only if retrieveDMs is true.',
|
|
82
|
+
properties: {
|
|
83
|
+
limit: {
|
|
84
|
+
type: 'number',
|
|
85
|
+
description: 'Optional. Number of decision makers to retrieve. Defaults to 20, with a maximum value of 20. If a company has fewer decision makers than specified, only the available ones will be returned.',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
employeesRetrievalConfig: {
|
|
90
|
+
type: 'object',
|
|
91
|
+
description: 'Optional. Configuration for retrieving employees. Available only if retrieveEmployees is true.',
|
|
92
|
+
properties: {
|
|
93
|
+
limit: {
|
|
94
|
+
type: 'number',
|
|
95
|
+
description: 'Optional. Maximum number of employees to retrieve. Defaults to 500, with a maximum value of 500.',
|
|
96
|
+
},
|
|
97
|
+
filter: {
|
|
98
|
+
type: 'object',
|
|
99
|
+
description: 'Optional. Object that specifies filtering criteria for employees. When multiple filter fields are specified, they are combined using AND logic.',
|
|
100
|
+
properties: {
|
|
101
|
+
firstName: {
|
|
102
|
+
type: 'string',
|
|
103
|
+
description: 'Optional. First name of employee.',
|
|
104
|
+
},
|
|
105
|
+
lastName: {
|
|
106
|
+
type: 'string',
|
|
107
|
+
description: 'Optional. Last name of employee.',
|
|
108
|
+
},
|
|
109
|
+
position: {
|
|
110
|
+
type: 'string',
|
|
111
|
+
description: 'Optional. Job position of employee.',
|
|
112
|
+
},
|
|
113
|
+
locations: {
|
|
114
|
+
type: 'array',
|
|
115
|
+
description: 'Optional. Array of free-form strings representing locations. Matches if employee is located in any of the listed locations.',
|
|
116
|
+
items: { type: 'string' },
|
|
117
|
+
},
|
|
118
|
+
industries: {
|
|
119
|
+
type: 'array',
|
|
120
|
+
description: 'Optional. Array of enums representing industries. Matches if employee works in any of the listed industries. Takes specific values available in the LinkedIn interface.',
|
|
121
|
+
items: { type: 'string' },
|
|
122
|
+
},
|
|
123
|
+
schools: {
|
|
124
|
+
type: 'array',
|
|
125
|
+
description: 'Optional. Array of institution names. Matches if employee currently attends or previously attended any of the listed institutions.',
|
|
126
|
+
items: { type: 'string' },
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
required: ['companyUrl'],
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.FetchCompanyTool = FetchCompanyTool;
|
|
139
|
+
//# sourceMappingURL=fetch-company.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-company.js","sourceRoot":"","sources":["../../src/tools/fetch-company.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TFetchPersonParams } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { OperationTool } from '../utils/linked-api-tool.js';
|
|
5
|
+
export declare class FetchPersonTool extends OperationTool<TFetchPersonParams, unknown> {
|
|
6
|
+
readonly name = "fetch_person";
|
|
7
|
+
readonly operationName: "fetchPerson";
|
|
8
|
+
protected readonly schema: z.ZodObject<{
|
|
9
|
+
personUrl: z.ZodString;
|
|
10
|
+
retrieveExperience: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11
|
+
retrieveEducation: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
12
|
+
retrieveSkills: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
13
|
+
retrieveLanguages: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
14
|
+
retrievePosts: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
15
|
+
retrieveComments: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
16
|
+
retrieveReactions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
17
|
+
postsRetrievalConfig: z.ZodOptional<z.ZodObject<{
|
|
18
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
since: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
commentsRetrievalConfig: z.ZodOptional<z.ZodObject<{
|
|
22
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
since: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>>;
|
|
25
|
+
reactionsRetrievalConfig: z.ZodOptional<z.ZodObject<{
|
|
26
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
since: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, z.core.$strip>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
getTool(): Tool;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=fetch-person.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-person.d.ts","sourceRoot":"","sources":["../../src/tools/fetch-person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,eAAgB,SAAQ,aAAa,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7E,SAAyB,IAAI,kBAAkB;IAC/C,SAAyB,aAAa,gBAA8B;IACpE,mBAA4B,MAAM;;;;;;;;;;;;;;;;;;;;;sBA2B/B;IAEa,OAAO,IAAI,IAAI;CA0GhC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FetchPersonTool = void 0;
|
|
4
|
+
const node_1 = require("@linkedapi/node");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
|
|
7
|
+
class FetchPersonTool extends linked_api_tool_js_1.OperationTool {
|
|
8
|
+
name = 'fetch_person';
|
|
9
|
+
operationName = node_1.OPERATION_NAME.fetchPerson;
|
|
10
|
+
schema = zod_1.z.object({
|
|
11
|
+
personUrl: zod_1.z.string(),
|
|
12
|
+
retrieveExperience: zod_1.z.boolean().optional().default(false),
|
|
13
|
+
retrieveEducation: zod_1.z.boolean().optional().default(false),
|
|
14
|
+
retrieveSkills: zod_1.z.boolean().optional().default(false),
|
|
15
|
+
retrieveLanguages: zod_1.z.boolean().optional().default(false),
|
|
16
|
+
retrievePosts: zod_1.z.boolean().optional().default(false),
|
|
17
|
+
retrieveComments: zod_1.z.boolean().optional().default(false),
|
|
18
|
+
retrieveReactions: zod_1.z.boolean().optional().default(false),
|
|
19
|
+
postsRetrievalConfig: zod_1.z
|
|
20
|
+
.object({
|
|
21
|
+
limit: zod_1.z.number().min(1).max(20).optional(),
|
|
22
|
+
since: zod_1.z.string().optional(),
|
|
23
|
+
})
|
|
24
|
+
.optional(),
|
|
25
|
+
commentsRetrievalConfig: zod_1.z
|
|
26
|
+
.object({
|
|
27
|
+
limit: zod_1.z.number().min(1).max(20).optional(),
|
|
28
|
+
since: zod_1.z.string().optional(),
|
|
29
|
+
})
|
|
30
|
+
.optional(),
|
|
31
|
+
reactionsRetrievalConfig: zod_1.z
|
|
32
|
+
.object({
|
|
33
|
+
limit: zod_1.z.number().min(1).max(20).optional(),
|
|
34
|
+
since: zod_1.z.string().optional(),
|
|
35
|
+
})
|
|
36
|
+
.optional(),
|
|
37
|
+
});
|
|
38
|
+
getTool() {
|
|
39
|
+
return {
|
|
40
|
+
name: this.name,
|
|
41
|
+
description: `Allows you to open a person page to retrieve their basic information and perform additional person-related actions if needed. (st.openPersonPage action). Allows additional optional retrieval of experience, education, skills, languages, posts, comments and reactions.
|
|
42
|
+
⚠️ **PERFORMANCE WARNING**: Only set additional retrieval flags to true if you specifically need that data. Each additional parameter significantly increases execution time:
|
|
43
|
+
💡 **Recommendation**: Start with basic info only. Only request additional data if the user explicitly asks for it or if it's essential for the current task.
|
|
44
|
+
`,
|
|
45
|
+
inputSchema: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
personUrl: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: "The LinkedIn profile URL of the person to fetch (e.g., 'https://www.linkedin.com/in/john-doe')",
|
|
51
|
+
},
|
|
52
|
+
retrieveExperience: {
|
|
53
|
+
type: 'boolean',
|
|
54
|
+
description: "Optional. Whether to retrieve the person's experience information. Default is false.",
|
|
55
|
+
},
|
|
56
|
+
retrieveEducation: {
|
|
57
|
+
type: 'boolean',
|
|
58
|
+
description: "Optional. Whether to retrieve the person's education information. Default is false.",
|
|
59
|
+
},
|
|
60
|
+
retrieveSkills: {
|
|
61
|
+
type: 'boolean',
|
|
62
|
+
description: "Optional. Whether to retrieve the person's skills information. Default is false.",
|
|
63
|
+
},
|
|
64
|
+
retrieveLanguages: {
|
|
65
|
+
type: 'boolean',
|
|
66
|
+
description: "Optional. Whether to retrieve the person's languages information. Default is false.",
|
|
67
|
+
},
|
|
68
|
+
retrievePosts: {
|
|
69
|
+
type: 'boolean',
|
|
70
|
+
description: "Optional. Whether to retrieve the person's posts information. Default is false.",
|
|
71
|
+
},
|
|
72
|
+
retrieveComments: {
|
|
73
|
+
type: 'boolean',
|
|
74
|
+
description: "Optional. Whether to retrieve the person's comments information. Default is false.",
|
|
75
|
+
},
|
|
76
|
+
retrieveReactions: {
|
|
77
|
+
type: 'boolean',
|
|
78
|
+
description: "Optional. Whether to retrieve the person's reactions information. Default is false.",
|
|
79
|
+
},
|
|
80
|
+
postsRetrievalConfig: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
description: 'Optional. Configuration for retrieving posts. Available only if retrievePosts is true.',
|
|
83
|
+
properties: {
|
|
84
|
+
limit: {
|
|
85
|
+
type: 'number',
|
|
86
|
+
description: 'Optional. Number of posts to retrieve. Defaults to 20, with a maximum value of 20.',
|
|
87
|
+
},
|
|
88
|
+
since: {
|
|
89
|
+
type: 'string',
|
|
90
|
+
description: 'Optional. ISO 8601 timestamp to filter posts published after the specified time.',
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
commentsRetrievalConfig: {
|
|
95
|
+
type: 'object',
|
|
96
|
+
description: 'Optional. Configuration for retrieving comments. Available only if retrieveComments is true.',
|
|
97
|
+
properties: {
|
|
98
|
+
limit: {
|
|
99
|
+
type: 'number',
|
|
100
|
+
description: 'Optional. Number of comments to retrieve. Defaults to 20, with a maximum value of 20.',
|
|
101
|
+
},
|
|
102
|
+
since: {
|
|
103
|
+
type: 'string',
|
|
104
|
+
description: 'Optional. ISO 8601 timestamp to filter comments made after the specified time.',
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
reactionsRetrievalConfig: {
|
|
109
|
+
type: 'object',
|
|
110
|
+
description: 'Optional. Configuration for retrieving reactions. Available only if retrieveReactions is true.',
|
|
111
|
+
properties: {
|
|
112
|
+
limit: {
|
|
113
|
+
type: 'number',
|
|
114
|
+
description: 'Optional. Number of reactions to retrieve. Defaults to 20, with a maximum value of 20.',
|
|
115
|
+
},
|
|
116
|
+
since: {
|
|
117
|
+
type: 'string',
|
|
118
|
+
description: 'Optional. ISO 8601 timestamp to filter reactions made after the specified time.',
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
required: ['personUrl'],
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.FetchPersonTool = FetchPersonTool;
|
|
129
|
+
//# sourceMappingURL=fetch-person.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-person.js","sourceRoot":"","sources":["../../src/tools/fetch-person.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TFetchPostParams } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { OperationTool } from '../utils/linked-api-tool.js';
|
|
5
|
+
export declare class FetchPostTool extends OperationTool<TFetchPostParams, unknown> {
|
|
6
|
+
readonly name = "fetch_post";
|
|
7
|
+
readonly operationName: "fetchPost";
|
|
8
|
+
protected readonly schema: z.ZodObject<{
|
|
9
|
+
postUrl: z.ZodString;
|
|
10
|
+
retrieveComments: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
retrieveReactions: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
commentsRetrievalConfig: z.ZodOptional<z.ZodObject<{
|
|
13
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
replies: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
sort: z.ZodOptional<z.ZodEnum<{
|
|
16
|
+
mostRelevant: "mostRelevant";
|
|
17
|
+
mostRecent: "mostRecent";
|
|
18
|
+
}>>;
|
|
19
|
+
}, z.core.$strip>>;
|
|
20
|
+
reactionsRetrievalConfig: z.ZodOptional<z.ZodObject<{
|
|
21
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
}, z.core.$strip>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
getTool(): Tool;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=fetch-post.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-post.d.ts","sourceRoot":"","sources":["../../src/tools/fetch-post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,aAAc,SAAQ,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACzE,SAAyB,IAAI,gBAAgB;IAC7C,SAAyB,aAAa,cAA4B;IAClE,mBAA4B,MAAM;;;;;;;;;;;;;;;sBAgB/B;IAEa,OAAO,IAAI,IAAI;CA8DhC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FetchPostTool = void 0;
|
|
4
|
+
const node_1 = require("@linkedapi/node");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
|
|
7
|
+
class FetchPostTool extends linked_api_tool_js_1.OperationTool {
|
|
8
|
+
name = 'fetch_post';
|
|
9
|
+
operationName = node_1.OPERATION_NAME.fetchPost;
|
|
10
|
+
schema = zod_1.z.object({
|
|
11
|
+
postUrl: zod_1.z.string(),
|
|
12
|
+
retrieveComments: zod_1.z.boolean().optional(),
|
|
13
|
+
retrieveReactions: zod_1.z.boolean().optional(),
|
|
14
|
+
commentsRetrievalConfig: zod_1.z
|
|
15
|
+
.object({
|
|
16
|
+
limit: zod_1.z.number().min(1).max(500).optional(),
|
|
17
|
+
replies: zod_1.z.boolean().optional(),
|
|
18
|
+
sort: zod_1.z.enum(['mostRelevant', 'mostRecent']).optional(),
|
|
19
|
+
})
|
|
20
|
+
.optional(),
|
|
21
|
+
reactionsRetrievalConfig: zod_1.z
|
|
22
|
+
.object({
|
|
23
|
+
limit: zod_1.z.number().min(1).max(1000).optional(),
|
|
24
|
+
})
|
|
25
|
+
.optional(),
|
|
26
|
+
});
|
|
27
|
+
getTool() {
|
|
28
|
+
return {
|
|
29
|
+
name: this.name,
|
|
30
|
+
description: 'Open a LinkedIn post and retrieve its data, with optional comments and reactions. (st.openPost action).',
|
|
31
|
+
inputSchema: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
properties: {
|
|
34
|
+
postUrl: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
description: "LinkedIn URL of the post. (e.g., 'https://www.linkedin.com/posts/username_activity-id')",
|
|
37
|
+
},
|
|
38
|
+
retrieveComments: {
|
|
39
|
+
type: 'boolean',
|
|
40
|
+
description: 'Optional. When true, also retrieve comments for the post. Configure via commentsRetrievalConfig.',
|
|
41
|
+
},
|
|
42
|
+
retrieveReactions: {
|
|
43
|
+
type: 'boolean',
|
|
44
|
+
description: 'Optional. When true, also retrieve reactions for the post. Configure via reactionsRetrievalConfig.',
|
|
45
|
+
},
|
|
46
|
+
commentsRetrievalConfig: {
|
|
47
|
+
type: 'object',
|
|
48
|
+
description: 'Optional. Applies only when retrieveComments is true. Controls comments retrieval (limit, replies, sort).',
|
|
49
|
+
properties: {
|
|
50
|
+
limit: {
|
|
51
|
+
type: 'number',
|
|
52
|
+
description: 'Optional. Max number of comments to retrieve. Defaults to 10, with a maximum value of 500.',
|
|
53
|
+
},
|
|
54
|
+
replies: {
|
|
55
|
+
type: 'boolean',
|
|
56
|
+
description: 'Optional. When true, include replies to comments (threaded).',
|
|
57
|
+
},
|
|
58
|
+
sort: {
|
|
59
|
+
type: 'string',
|
|
60
|
+
enum: ['mostRelevant', 'mostRecent'],
|
|
61
|
+
description: "Optional. Sort order for comments. One of 'mostRelevant' or 'mostRecent'.",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
reactionsRetrievalConfig: {
|
|
66
|
+
type: 'object',
|
|
67
|
+
description: 'Optional. Applies only when retrieveReactions is true. Controls reactions retrieval (limit).',
|
|
68
|
+
properties: {
|
|
69
|
+
limit: {
|
|
70
|
+
type: 'number',
|
|
71
|
+
description: 'Optional. Max number of reactions to retrieve. Defaults to 10, with a maximum value of 1000.',
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
required: ['postUrl'],
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.FetchPostTool = FetchPostTool;
|
|
82
|
+
//# sourceMappingURL=fetch-post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-post.js","sourceRoot":"","sources":["../../src/tools/fetch-post.ts"],"names":[],"mappings":";;;AAAA,0CAAmE;AAEnE,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,aAAc,SAAQ,kCAAwC;IAChD,IAAI,GAAG,YAAY,CAAC;IACpB,aAAa,GAAG,qBAAc,CAAC,SAAS,CAAC;IACtC,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;QACnB,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACxC,iBAAiB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACzC,uBAAuB,EAAE,OAAC;aACvB,MAAM,CAAC;YACN,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC5C,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;SACxD,CAAC;aACD,QAAQ,EAAE;QACb,wBAAwB,EAAE,OAAC;aACxB,MAAM,CAAC;YACN,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;SAC9C,CAAC;aACD,QAAQ,EAAE;KACd,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,yGAAyG;YAC3G,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,yFAAyF;qBAC5F;oBACD,gBAAgB,EAAE;wBAChB,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,kGAAkG;qBACrG;oBACD,iBAAiB,EAAE;wBACjB,IAAI,EAAE,SAAS;wBACf,WAAW,EACT,oGAAoG;qBACvG;oBACD,uBAAuB,EAAE;wBACvB,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,2GAA2G;wBAC7G,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,4FAA4F;6BAC/F;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,8DAA8D;6BAC5E;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;gCACpC,WAAW,EACT,2EAA2E;6BAC9E;yBACF;qBACF;oBACD,wBAAwB,EAAE;wBACxB,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,8FAA8F;wBAChG,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EACT,8FAA8F;6BACjG;yBACF;qBACF;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF,CAAC;IACJ,CAAC;CACF;AAnFD,sCAmFC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import LinkedApi, { TApiUsageAction, TApiUsageParams, TMappedResponse } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
import { LinkedApiTool } from '../utils/linked-api-tool.js';
|
|
5
|
+
export declare class GetApiUsageTool extends LinkedApiTool<TApiUsageParams, TApiUsageAction[]> {
|
|
6
|
+
readonly name = "get_api_usage";
|
|
7
|
+
protected readonly schema: z.ZodObject<{
|
|
8
|
+
start: z.ZodString;
|
|
9
|
+
end: z.ZodString;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
execute({ linkedapi, args, }: {
|
|
12
|
+
linkedapi: LinkedApi;
|
|
13
|
+
args: TApiUsageParams;
|
|
14
|
+
workflowTimeout: number;
|
|
15
|
+
progressToken?: string | number;
|
|
16
|
+
}): Promise<TMappedResponse<TApiUsageAction[]>>;
|
|
17
|
+
getTool(): Tool;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=get-api-usage-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-api-usage-stats.d.ts","sourceRoot":"","sources":["../../src/tools/get-api-usage-stats.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,eAAgB,SAAQ,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,CAAC;IACpF,SAAgB,IAAI,mBAAmB;IACvC,SAAS,CAAC,QAAQ,CAAC,MAAM;;;sBAGtB;IAEmB,OAAO,CAAC,EAC5B,SAAS,EACT,IAAI,GACL,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE,eAAe,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC;IAI/B,OAAO,IAAI,IAAI;CAsBhC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GetApiUsageTool = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
|
|
9
|
+
class GetApiUsageTool extends linked_api_tool_js_1.LinkedApiTool {
|
|
10
|
+
name = 'get_api_usage';
|
|
11
|
+
schema = zod_1.default.object({
|
|
12
|
+
start: zod_1.default.string(),
|
|
13
|
+
end: zod_1.default.string(),
|
|
14
|
+
});
|
|
15
|
+
async execute({ linkedapi, args, }) {
|
|
16
|
+
return await linkedapi.getApiUsage(args);
|
|
17
|
+
}
|
|
18
|
+
getTool() {
|
|
19
|
+
return {
|
|
20
|
+
name: this.name,
|
|
21
|
+
description: 'Retrieve Linked API usage statistics. Date range must not exceed 30 days.',
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
start: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: "Start date for the statistics period in ISO 8601 format (e.g., '2024-01-01T00:00:00Z')",
|
|
28
|
+
},
|
|
29
|
+
end: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: "End date for the statistics period in ISO 8601 format (e.g., '2024-01-30T00:00:00Z')",
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
required: ['start', 'end'],
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.GetApiUsageTool = GetApiUsageTool;
|
|
40
|
+
//# sourceMappingURL=get-api-usage-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-api-usage-stats.js","sourceRoot":"","sources":["../../src/tools/get-api-usage-stats.ts"],"names":[],"mappings":";;;;;;AAEA,8CAAoB;AAEpB,oEAA4D;AAE5D,MAAa,eAAgB,SAAQ,kCAAiD;IACpE,IAAI,GAAG,eAAe,CAAC;IACpB,MAAM,GAAG,aAAC,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE;KAChB,CAAC,CAAC;IAEa,KAAK,CAAC,OAAO,CAAC,EAC5B,SAAS,EACT,IAAI,GAML;QACC,OAAO,MAAM,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEe,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,2EAA2E;YACxF,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,wFAAwF;qBAC3F;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,sFAAsF;qBACzF;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;aAC3B;SACF,CAAC;IACJ,CAAC;CACF;AAzCD,0CAyCC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import LinkedApi, { TConversationPollResult, TMappedResponse } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
import { LinkedApiTool } from '../utils/linked-api-tool.js';
|
|
5
|
+
export declare class GetConversationTool extends LinkedApiTool<{
|
|
6
|
+
personUrl: string;
|
|
7
|
+
since?: string;
|
|
8
|
+
}, TConversationPollResult> {
|
|
9
|
+
readonly name = "get_conversation";
|
|
10
|
+
protected readonly schema: z.ZodObject<{
|
|
11
|
+
personUrl: z.ZodString;
|
|
12
|
+
since: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
execute({ linkedapi, args: { personUrl, since }, }: {
|
|
15
|
+
linkedapi: LinkedApi;
|
|
16
|
+
args: {
|
|
17
|
+
personUrl: string;
|
|
18
|
+
since?: string;
|
|
19
|
+
};
|
|
20
|
+
workflowTimeout: number;
|
|
21
|
+
progressToken?: string | number;
|
|
22
|
+
}): Promise<TMappedResponse<TConversationPollResult>>;
|
|
23
|
+
private getConversation;
|
|
24
|
+
getTool(): Tool;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=get-conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-conversation.d.ts","sourceRoot":"","sources":["../../src/tools/get-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qBAAa,mBAAoB,SAAQ,aAAa,CACpD;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACrC,uBAAuB,CACxB;IACC,SAAgB,IAAI,sBAAsB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM;;;sBAGtB;IAEmB,OAAO,CAAC,EAC5B,SAAS,EACT,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAC3B,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5C,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;YAUvC,eAAe;IAkBb,OAAO,IAAI,IAAI;CAuBhC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GetConversationTool = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const linked_api_tool_js_1 = require("../utils/linked-api-tool.js");
|
|
9
|
+
class GetConversationTool extends linked_api_tool_js_1.LinkedApiTool {
|
|
10
|
+
name = 'get_conversation';
|
|
11
|
+
schema = zod_1.default.object({
|
|
12
|
+
personUrl: zod_1.default.string(),
|
|
13
|
+
since: zod_1.default.string().optional(),
|
|
14
|
+
});
|
|
15
|
+
async execute({ linkedapi, args: { personUrl, since }, }) {
|
|
16
|
+
const conversations = await this.getConversation(linkedapi, personUrl, since);
|
|
17
|
+
if (conversations.errors.length === 0) {
|
|
18
|
+
return conversations;
|
|
19
|
+
}
|
|
20
|
+
const workflowId = await linkedapi.syncConversation.execute({ personUrl });
|
|
21
|
+
await linkedapi.syncConversation.result(workflowId);
|
|
22
|
+
return await this.getConversation(linkedapi, personUrl, since);
|
|
23
|
+
}
|
|
24
|
+
async getConversation(linkedapi, personUrl, since) {
|
|
25
|
+
const conversations = await linkedapi.pollConversations([
|
|
26
|
+
{
|
|
27
|
+
personUrl: personUrl,
|
|
28
|
+
type: 'st',
|
|
29
|
+
since: since,
|
|
30
|
+
},
|
|
31
|
+
]);
|
|
32
|
+
return {
|
|
33
|
+
data: conversations.data ? conversations.data[0] : undefined,
|
|
34
|
+
errors: conversations.errors,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
getTool() {
|
|
38
|
+
return {
|
|
39
|
+
name: this.name,
|
|
40
|
+
description: 'Allows you to get a conversation with a LinkedIn person using standard LinkedIn messaging.',
|
|
41
|
+
inputSchema: {
|
|
42
|
+
type: 'object',
|
|
43
|
+
properties: {
|
|
44
|
+
personUrl: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: "The LinkedIn URL of the person whose conversation you want to poll (e.g., 'https://www.linkedin.com/in/john-doe')",
|
|
47
|
+
},
|
|
48
|
+
since: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: "Optional ISO 8601 timestamp to only retrieve messages since this date (e.g., '2024-01-15T10:30:00Z'). If not provided, the entire conversation history will be returned.",
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
required: ['personUrl'],
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.GetConversationTool = GetConversationTool;
|
|
59
|
+
//# sourceMappingURL=get-conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-conversation.js","sourceRoot":"","sources":["../../src/tools/get-conversation.ts"],"names":[],"mappings":";;;;;;AAEA,8CAAoB;AAEpB,oEAA4D;AAE5D,MAAa,mBAAoB,SAAQ,kCAGxC;IACiB,IAAI,GAAG,kBAAkB,CAAC;IACvB,MAAM,GAAG,aAAC,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE,aAAC,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAC;IAEa,KAAK,CAAC,OAAO,CAAC,EAC5B,SAAS,EACT,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAM3B;QACC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3E,MAAM,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,SAAoB,EACpB,SAAiB,EACjB,KAAc;QAEd,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC;YACtD;gBACE,SAAS,EAAE,SAAS;gBACpB,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5D,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAEe,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,4FAA4F;YAC9F,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,mHAAmH;qBACtH;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,0KAA0K;qBAC7K;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;CACF;AArED,kDAqEC"}
|