@linkedapi/mcp 2.3.16 → 2.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/linked-api-tools.d.ts.map +1 -1
- package/dist/linked-api-tools.js +6 -2
- package/dist/linked-api-tools.js.map +1 -1
- package/dist/tools/get-conversation.js +1 -1
- package/dist/tools/get-conversation.js.map +1 -1
- package/dist/tools/get-inbox.d.ts +10 -5
- package/dist/tools/get-inbox.d.ts.map +1 -1
- package/dist/tools/get-inbox.js +9 -3
- package/dist/tools/get-inbox.js.map +1 -1
- package/dist/tools/nv-get-conversation.js +1 -1
- package/dist/tools/nv-get-conversation.js.map +1 -1
- package/dist/tools/nv-sync-conversation.js +3 -3
- package/dist/tools/nv-sync-conversation.js.map +1 -1
- package/dist/tools/nv-sync-inbox.js +1 -1
- package/dist/tools/nv-sync-inbox.js.map +1 -1
- package/dist/tools/sync-conversation.js +3 -3
- package/dist/tools/sync-conversation.js.map +1 -1
- package/dist/tools/sync-inbox.js +1 -1
- package/dist/tools/sync-inbox.js.map +1 -1
- package/package.json +2 -2
- package/src/linked-api-tools.ts +6 -2
- package/src/tools/get-conversation.ts +1 -1
- package/src/tools/get-inbox.ts +24 -7
- package/src/tools/nv-get-conversation.ts +1 -1
- package/src/tools/nv-sync-conversation.ts +3 -3
- package/src/tools/nv-sync-inbox.ts +1 -1
- package/src/tools/sync-conversation.ts +3 -3
- package/src/tools/sync-inbox.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linked-api-tools.d.ts","sourceRoot":"","sources":["../src/linked-api-tools.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"linked-api-tools.d.ts","sourceRoot":"","sources":["../src/linked-api-tools.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAoE1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,UAAU,wBAAwB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,OAAO,CAAC,OAAO,EAAE;QACf,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE,KAAK,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC;KACxB,GAAG,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5C;AAED,qBAAa,cAAc;IACzB,SAAgB,KAAK,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC/D,SAAgB,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,SAAgB,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;;IAgFlE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAI9D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS;IAItE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS;CAGhF"}
|
package/dist/linked-api-tools.js
CHANGED
|
@@ -43,6 +43,7 @@ const nv_manage_conversation_js_1 = require("./tools/nv-manage-conversation.js")
|
|
|
43
43
|
const nv_search_companies_js_1 = require("./tools/nv-search-companies.js");
|
|
44
44
|
const nv_search_people_js_1 = require("./tools/nv-search-people.js");
|
|
45
45
|
const nv_send_message_js_1 = require("./tools/nv-send-message.js");
|
|
46
|
+
const nv_sync_conversation_js_1 = require("./tools/nv-sync-conversation.js");
|
|
46
47
|
const nv_sync_inbox_js_1 = require("./tools/nv-sync-inbox.js");
|
|
47
48
|
const react_to_comment_js_1 = require("./tools/react-to-comment.js");
|
|
48
49
|
const react_to_post_js_1 = require("./tools/react-to-post.js");
|
|
@@ -62,6 +63,7 @@ const search_posts_js_1 = require("./tools/search-posts.js");
|
|
|
62
63
|
const send_connection_request_js_1 = require("./tools/send-connection-request.js");
|
|
63
64
|
const send_feedback_js_1 = require("./tools/send-feedback.js");
|
|
64
65
|
const send_message_js_1 = require("./tools/send-message.js");
|
|
66
|
+
const sync_conversation_js_1 = require("./tools/sync-conversation.js");
|
|
65
67
|
const sync_inbox_js_1 = require("./tools/sync-inbox.js");
|
|
66
68
|
const sync_network_js_1 = require("./tools/sync-network.js");
|
|
67
69
|
const withdraw_connection_request_js_1 = require("./tools/withdraw-connection-request.js");
|
|
@@ -73,9 +75,10 @@ class LinkedApiTools {
|
|
|
73
75
|
this.tools = [
|
|
74
76
|
// Standard tools
|
|
75
77
|
new send_message_js_1.SendMessageTool(),
|
|
76
|
-
new get_conversation_js_1.GetConversationTool(),
|
|
77
78
|
new sync_inbox_js_1.SyncInboxTool(),
|
|
78
79
|
new get_inbox_js_1.GetInboxTool(),
|
|
80
|
+
new sync_conversation_js_1.SyncConversationTool(),
|
|
81
|
+
new get_conversation_js_1.GetConversationTool(),
|
|
79
82
|
new sync_network_js_1.SyncNetworkTool(),
|
|
80
83
|
new get_network_js_1.GetNetworkTool(),
|
|
81
84
|
new manage_conversation_js_1.ManageConversationTool(),
|
|
@@ -108,8 +111,9 @@ class LinkedApiTools {
|
|
|
108
111
|
new retrieve_performance_js_1.RetrievePerformanceTool(),
|
|
109
112
|
// Sales Navigator tools
|
|
110
113
|
new nv_send_message_js_1.NvSendMessageTool(),
|
|
111
|
-
new nv_get_conversation_js_1.NvGetConversationTool(),
|
|
112
114
|
new nv_sync_inbox_js_1.NvSyncInboxTool(),
|
|
115
|
+
new nv_sync_conversation_js_1.NvSyncConversationTool(),
|
|
116
|
+
new nv_get_conversation_js_1.NvGetConversationTool(),
|
|
113
117
|
new nv_manage_conversation_js_1.NvManageConversationTool(),
|
|
114
118
|
new nv_search_companies_js_1.NvSearchCompaniesTool(),
|
|
115
119
|
new nv_search_people_js_1.NvSearchPeopleTool(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linked-api-tools.js","sourceRoot":"","sources":["../src/linked-api-tools.ts"],"names":[],"mappings":";;;AAGA,uEAAoE;AACpE,mGAA8F;AAC9F,+EAA2E;AAC3E,uGAAkG;AAClG,2EAAuE;AACvE,qFAAiF;AACjF,yEAAqE;AACrE,6FAAwF;AACxF,uFAAkF;AAClF,iFAA4E;AAC5E,qEAAiE;AACjE,mEAA+D;AAC/D,+FAA0F;AAC1F,iFAA6E;AAC7E,yFAAoF;AACpF,yEAAqE;AACrE,qEAAiE;AACjE,mEAA+D;AAC/D,mFAA+E;AAC/E,mEAA+D;AAC/D,2DAAwD;AACxD,+DAA4D;AAC5D,mFAA+E;AAC/E,+DAA4D;AAC5D,uDAAoD;AACpD,6DAA0D;AAC1D,yDAAsD;AACtD,2EAAiE;AACjE,+DAA4D;AAC5D,qEAAkE;AAClE,uDAAoD;AACpD,2DAAwD;AACxD,2EAAuE;AACvE,uEAAoE;AACpE,2EAAwE;AACxE,qEAAiE;AACjE,mEAA+D;AAC/D,2EAAuE;AACvE,iFAA6E;AAC7E,2EAAuE;AACvE,qEAAiE;AACjE,mEAA+D;AAC/D,+DAA2D;AAC3D,qEAAiE;AACjE,+DAA2D;AAC3D,uEAAoE;AACpE,qEAAiE;AACjE,6EAA0E;AAC1E,+DAA4D;AAC5D,6EAA0E;AAC1E,uFAAmF;AACnF,6EAA0E;AAC1E,qFAAiF;AACjF,6DAA0D;AAC1D,qEAAkE;AAClE,2DAAwD;AACxD,+DAA4D;AAC5D,6DAA0D;AAC1D,mFAA+E;AAC/E,+DAA4D;AAC5D,6DAA0D;AAC1D,yDAAsD;AACtD,6DAA0D;AAC1D,2FAAuF;AAiBvF,MAAa,cAAc;IACT,KAAK,CAA0C;IAC/C,UAAU,CAA6C;IACvD,WAAW,CAA8C;IAEzE;QACE,IAAI,CAAC,KAAK,GAAG;YACX,iBAAiB;YACjB,IAAI,iCAAe,EAAE;YACrB,IAAI,
|
|
1
|
+
{"version":3,"file":"linked-api-tools.js","sourceRoot":"","sources":["../src/linked-api-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ class GetConversationTool extends linked_api_tool_js_1.LinkedApiTool {
|
|
|
38
38
|
getTool() {
|
|
39
39
|
return {
|
|
40
40
|
name: this.name,
|
|
41
|
-
description: 'Retrieve a conversation with a LinkedIn person via standard LinkedIn messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts a syncConversation workflow and returns its ack ({status, workflowId, operationName: "syncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call get_conversation again to read the synced messages. The result carries syncUntil — the moment syncing of this conversation stops. Once it is in the past the messages are still returned but no longer updated; call sync_conversation again for the same person to resume updates. It also carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
41
|
+
description: 'Legacy. Prefer get_inbox with personUrl. Retrieve a conversation with a LinkedIn person via standard LinkedIn messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts a syncConversation workflow and returns its ack ({status, workflowId, operationName: "syncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call get_conversation again to read the synced messages. The result carries syncUntil — the moment syncing of this conversation stops. Once it is in the past the messages are still returned but no longer updated; call sync_conversation again for the same person to resume updates. It also carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
42
42
|
inputSchema: {
|
|
43
43
|
type: 'object',
|
|
44
44
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-conversation.js","sourceRoot":"","sources":["../../src/tools/get-conversation.ts"],"names":[],"mappings":";;;;;;AAAA,0CAIyB;AAEzB,8CAAoB;AAGpB,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,GAI3B;QACC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,GAAG,GAAG;YACnB,aAAa,EAAE,qBAAc,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,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,
|
|
1
|
+
{"version":3,"file":"get-conversation.js","sourceRoot":"","sources":["../../src/tools/get-conversation.ts"],"names":[],"mappings":";;;;;;AAAA,0CAIyB;AAEzB,8CAAoB;AAGpB,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,GAI3B;QACC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,GAAG,GAAG;YACnB,aAAa,EAAE,qBAAc,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,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,42BAA42B;YAC92B,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;AAnED,kDAmEC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import LinkedApi, { TInboxPollRequest, TInboxPollResult, TMappedResponse } from '@linkedapi/node';
|
|
1
|
+
import LinkedApi, { TInboxPersonPollResult, TInboxPollRequest, TInboxPollResult, TMappedResponse } from '@linkedapi/node';
|
|
2
2
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
import z from 'zod';
|
|
4
4
|
import { LinkedApiTool } from '../utils/linked-api-tool.js';
|
|
5
|
-
|
|
5
|
+
type TGetInboxArgs = TInboxPollRequest & {
|
|
6
|
+
personUrl?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class GetInboxTool extends LinkedApiTool<TGetInboxArgs, TInboxPollResult | TInboxPersonPollResult> {
|
|
6
9
|
readonly name = "get_inbox";
|
|
7
10
|
protected readonly schema: z.ZodObject<{
|
|
8
11
|
since: z.ZodOptional<z.ZodString>;
|
|
@@ -11,11 +14,13 @@ export declare class GetInboxTool extends LinkedApiTool<TInboxPollRequest, TInbo
|
|
|
11
14
|
nv: "nv";
|
|
12
15
|
}>>;
|
|
13
16
|
threadId: z.ZodOptional<z.ZodString>;
|
|
17
|
+
personUrl: z.ZodOptional<z.ZodString>;
|
|
14
18
|
}, z.core.$strip>;
|
|
15
|
-
execute({ linkedapi, args: { since, type, threadId }, }: {
|
|
19
|
+
execute({ linkedapi, args: { since, type, threadId, personUrl }, }: {
|
|
16
20
|
linkedapi: LinkedApi;
|
|
17
|
-
args:
|
|
18
|
-
}): Promise<TMappedResponse<TInboxPollResult>>;
|
|
21
|
+
args: TGetInboxArgs;
|
|
22
|
+
}): Promise<TMappedResponse<TInboxPollResult | TInboxPersonPollResult>>;
|
|
19
23
|
getTool(): Tool;
|
|
20
24
|
}
|
|
25
|
+
export {};
|
|
21
26
|
//# sourceMappingURL=get-inbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-inbox.d.ts","sourceRoot":"","sources":["../../src/tools/get-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"get-inbox.d.ts","sourceRoot":"","sources":["../../src/tools/get-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,KAAK,aAAa,GAAG,iBAAiB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,qBAAa,YAAa,SAAQ,aAAa,CAC7C,aAAa,EACb,gBAAgB,GAAG,sBAAsB,CAC1C;IACC,SAAgB,IAAI,eAAe;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM;;;;;;;;sBAKtB;IAEmB,OAAO,CAAC,EAC5B,SAAS,EACT,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAC3C,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE,aAAa,CAAC;KACrB,GAAG,OAAO,CAAC,eAAe,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,CAAC;IASvD,OAAO,IAAI,IAAI;CAkChC"}
|
package/dist/tools/get-inbox.js
CHANGED
|
@@ -12,24 +12,26 @@ class GetInboxTool extends linked_api_tool_js_1.LinkedApiTool {
|
|
|
12
12
|
since: zod_1.default.string().optional(),
|
|
13
13
|
type: zod_1.default.enum(['st', 'nv']).optional(),
|
|
14
14
|
threadId: zod_1.default.string().optional(),
|
|
15
|
+
personUrl: zod_1.default.string().optional(),
|
|
15
16
|
});
|
|
16
|
-
async execute({ linkedapi, args: { since, type, threadId }, }) {
|
|
17
|
+
async execute({ linkedapi, args: { since, type, threadId, personUrl }, }) {
|
|
17
18
|
return linkedapi.pollInbox({
|
|
18
19
|
since,
|
|
19
20
|
type,
|
|
20
21
|
threadId,
|
|
22
|
+
personUrl,
|
|
21
23
|
});
|
|
22
24
|
}
|
|
23
25
|
getTool() {
|
|
24
26
|
return {
|
|
25
27
|
name: this.name,
|
|
26
|
-
description: "
|
|
28
|
+
description: "Default way to read LinkedIn messages (standard and Sales Navigator), newest first. Without personUrl returns new messages across all conversations since inbox monitoring was enabled; requires sync_inbox (or nv_sync_inbox) once per account. With personUrl returns the whole known conversation with that person, including history loaded by sync_conversation, as { messages, threads }: each message also carries inboxMessageId (its id in the result without personUrl, or null) and threadId may be null; each thread carries historyFrom and historyComplete. Check threads[].historyComplete – if false and you need earlier messages, call sync_conversation once, then call get_inbox again. Every message carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person on the other side of the thread, or null when LinkedIn does not expose it. personHashedUrl is LinkedIn's hashed profile URL and is always present; personPublicUrl is the public vanity URL when that person has been resolved, otherwise null.",
|
|
27
29
|
inputSchema: {
|
|
28
30
|
type: 'object',
|
|
29
31
|
properties: {
|
|
30
32
|
since: {
|
|
31
33
|
type: 'string',
|
|
32
|
-
description: "Optional ISO 8601 timestamp to only retrieve messages after this date (e.g., '2024-01-15T10:30:00Z'). If not provided, all captured messages are returned.",
|
|
34
|
+
description: "Optional ISO 8601 timestamp to only retrieve messages at or after this date (e.g., '2024-01-15T10:30:00Z'). If not provided, all captured messages are returned. Message times are whole minutes.",
|
|
33
35
|
},
|
|
34
36
|
type: {
|
|
35
37
|
type: 'string',
|
|
@@ -40,6 +42,10 @@ class GetInboxTool extends linked_api_tool_js_1.LinkedApiTool {
|
|
|
40
42
|
type: 'string',
|
|
41
43
|
description: 'Optional conversation thread identifier to restrict the result to a single thread.',
|
|
42
44
|
},
|
|
45
|
+
personUrl: {
|
|
46
|
+
type: 'string',
|
|
47
|
+
description: "Optional LinkedIn URL of one person to get the whole known conversation with them instead of the whole inbox (e.g., 'https://www.linkedin.com/in/john-doe'). A hashed URL (personHashedUrl from a message) always matches; a public URL matches only once Linked API knows that person's public URL, so prefer personHashedUrl when messages from this person show personPublicUrl: null.",
|
|
48
|
+
},
|
|
43
49
|
},
|
|
44
50
|
required: [],
|
|
45
51
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-inbox.js","sourceRoot":"","sources":["../../src/tools/get-inbox.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"get-inbox.js","sourceRoot":"","sources":["../../src/tools/get-inbox.ts"],"names":[],"mappings":";;;;;;AAOA,8CAAoB;AAEpB,oEAA4D;AAI5D,MAAa,YAAa,SAAQ,kCAGjC;IACiB,IAAI,GAAG,WAAW,CAAC;IAChB,MAAM,GAAG,aAAC,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,aAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;QACrC,QAAQ,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,SAAS,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACjC,CAAC,CAAC;IAEa,KAAK,CAAC,OAAO,CAAC,EAC5B,SAAS,EACT,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAI3C;QACC,OAAO,SAAS,CAAC,SAAS,CAAC;YACzB,KAAK;YACL,IAAI;YACJ,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEe,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,ogCAAogC;YACtgC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,mMAAmM;qBACtM;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;wBAClB,WAAW,EACT,2HAA2H;qBAC9H;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,oFAAoF;qBACvF;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,2XAA2X;qBAC9X;iBACF;gBACD,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;IACJ,CAAC;CACF;AA7DD,oCA6DC"}
|
|
@@ -38,7 +38,7 @@ class NvGetConversationTool extends linked_api_tool_js_1.LinkedApiTool {
|
|
|
38
38
|
getTool() {
|
|
39
39
|
return {
|
|
40
40
|
name: this.name,
|
|
41
|
-
description: 'Retrieve a conversation with a LinkedIn person via Sales Navigator messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts an nvSyncConversation workflow and returns its ack ({status, workflowId, operationName: "nvSyncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call nv_get_conversation again to read the synced messages. The result carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
41
|
+
description: 'Legacy. Prefer get_inbox with personUrl. Retrieve a conversation with a LinkedIn person via Sales Navigator messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts an nvSyncConversation workflow and returns its ack ({status, workflowId, operationName: "nvSyncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call nv_get_conversation again to read the synced messages. The result carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
42
42
|
inputSchema: {
|
|
43
43
|
type: 'object',
|
|
44
44
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-get-conversation.js","sourceRoot":"","sources":["../../src/tools/nv-get-conversation.ts"],"names":[],"mappings":";;;;;;AAAA,0CAIyB;AAEzB,8CAAoB;AAGpB,oEAA4D;AAE5D,MAAa,qBAAsB,SAAQ,kCAG1C;IACiB,IAAI,GAAG,qBAAqB,CAAC;IAC1B,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,GAI3B;QACC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,GAAG,GAAG;YACnB,aAAa,EAAE,qBAAc,CAAC,kBAAkB,EAAE,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,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,
|
|
1
|
+
{"version":3,"file":"nv-get-conversation.js","sourceRoot":"","sources":["../../src/tools/nv-get-conversation.ts"],"names":[],"mappings":";;;;;;AAAA,0CAIyB;AAEzB,8CAAoB;AAGpB,oEAA4D;AAE5D,MAAa,qBAAsB,SAAQ,kCAG1C;IACiB,IAAI,GAAG,qBAAqB,CAAC;IAC1B,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,GAI3B;QACC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,GAAG,GAAG;YACnB,aAAa,EAAE,qBAAc,CAAC,kBAAkB,EAAE,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,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,qpBAAqpB;YACvpB,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;AAnED,sDAmEC"}
|
|
@@ -14,17 +14,17 @@ class NvSyncConversationTool extends linked_api_tool_js_1.OperationTool {
|
|
|
14
14
|
getTool() {
|
|
15
15
|
return {
|
|
16
16
|
name: this.name,
|
|
17
|
-
description: '
|
|
17
|
+
description: "Loads this person's earlier Sales Navigator message history (nv.syncConversation action). Call once per person. Do not call it to check for new messages – use get_inbox. After it completes, read the history with get_inbox and personUrl.",
|
|
18
18
|
inputSchema: {
|
|
19
19
|
type: 'object',
|
|
20
20
|
properties: {
|
|
21
21
|
personUrl: {
|
|
22
22
|
type: 'string',
|
|
23
|
-
description: "The LinkedIn URL of the person whose Sales Navigator
|
|
23
|
+
description: "The LinkedIn URL of the person whose Sales Navigator message history you want to load (e.g., 'https://www.linkedin.com/in/john-doe')",
|
|
24
24
|
},
|
|
25
25
|
days: {
|
|
26
26
|
type: 'number',
|
|
27
|
-
description: '
|
|
27
|
+
description: 'Syncing period, not the depth of history: how many days new messages keep being added to the loaded history, from 1 to 90. Defaults to 30. The whole conversation is read regardless. Counted from the moment the action starts running; a reply does not extend it. Syncing the same person again keeps the history already collected and never shortens the period.',
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
required: ['personUrl'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-sync-conversation.js","sourceRoot":"","sources":["../../src/tools/nv-sync-conversation.ts"],"names":[],"mappings":";;;AAAA,0CAA4E;AAE5E,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,sBAAuB,SAAQ,kCAAiD;IAClE,IAAI,GAAG,sBAAsB,CAAC;IAC9B,aAAa,GAAG,qBAAc,CAAC,kBAAkB,CAAC;IAC/C,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KACjD,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"nv-sync-conversation.js","sourceRoot":"","sources":["../../src/tools/nv-sync-conversation.ts"],"names":[],"mappings":";;;AAAA,0CAA4E;AAE5E,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,sBAAuB,SAAQ,kCAAiD;IAClE,IAAI,GAAG,sBAAsB,CAAC;IAC9B,aAAa,GAAG,qBAAc,CAAC,kBAAkB,CAAC;IAC/C,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KACjD,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,8OAA8O;YAChP,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,sIAAsI;qBACzI;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,uWAAuW;qBAC1W;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;CACF;AA/BD,wDA+BC"}
|
|
@@ -11,7 +11,7 @@ class NvSyncInboxTool extends linked_api_tool_js_1.OperationTool {
|
|
|
11
11
|
getTool() {
|
|
12
12
|
return {
|
|
13
13
|
name: this.name,
|
|
14
|
-
description: 'Enable whole-inbox monitoring in Sales Navigator so every incoming conversation can be polled with get_inbox (nv.syncInbox action). Run once per account; only messages that arrive after it is enabled are captured.',
|
|
14
|
+
description: 'Recommended first step before reading Sales Navigator messages. Enable whole-inbox monitoring in Sales Navigator so every incoming conversation can be polled with get_inbox (nv.syncInbox action). Run once per account, before sending messages whose replies you want to read; only messages that arrive after it is enabled are captured.',
|
|
15
15
|
inputSchema: {
|
|
16
16
|
type: 'object',
|
|
17
17
|
properties: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nv-sync-inbox.js","sourceRoot":"","sources":["../../src/tools/nv-sync-inbox.ts"],"names":[],"mappings":";;;AAAA,0CAAqE;AAErE,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,eAAgB,SAAQ,kCAA0C;IACpD,IAAI,GAAG,eAAe,CAAC;IACvB,aAAa,GAAG,qBAAc,CAAC,WAAW,CAAC;IACxC,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAElC,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"nv-sync-inbox.js","sourceRoot":"","sources":["../../src/tools/nv-sync-inbox.ts"],"names":[],"mappings":";;;AAAA,0CAAqE;AAErE,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,eAAgB,SAAQ,kCAA0C;IACpD,IAAI,GAAG,eAAe,CAAC;IACvB,aAAa,GAAG,qBAAc,CAAC,WAAW,CAAC;IACxC,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAElC,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,+UAA+U;YACjV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;IACJ,CAAC;CACF;AAjBD,0CAiBC"}
|
|
@@ -14,17 +14,17 @@ class SyncConversationTool extends linked_api_tool_js_1.OperationTool {
|
|
|
14
14
|
getTool() {
|
|
15
15
|
return {
|
|
16
16
|
name: this.name,
|
|
17
|
-
description: '
|
|
17
|
+
description: "Loads this person's earlier message history (st.syncConversation action). Call once per person; repeating it within 24 hours returns quickly. Do not call it to check for new messages – use get_inbox. After it completes, read the history with get_inbox and personUrl.",
|
|
18
18
|
inputSchema: {
|
|
19
19
|
type: 'object',
|
|
20
20
|
properties: {
|
|
21
21
|
personUrl: {
|
|
22
22
|
type: 'string',
|
|
23
|
-
description: "The LinkedIn URL of the person whose
|
|
23
|
+
description: "The LinkedIn URL of the person whose message history you want to load (e.g., 'https://www.linkedin.com/in/john-doe')",
|
|
24
24
|
},
|
|
25
25
|
days: {
|
|
26
26
|
type: 'number',
|
|
27
|
-
description: '
|
|
27
|
+
description: 'Syncing period, not the depth of history: how many days new messages keep being added to the loaded history, from 1 to 90. Defaults to 30. The whole conversation is read regardless. Counted from the moment the action starts running; a reply does not extend it. Syncing the same person again keeps the history already collected and never shortens the period.',
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
required: ['personUrl'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-conversation.js","sourceRoot":"","sources":["../../src/tools/sync-conversation.ts"],"names":[],"mappings":";;;AAAA,0CAA0E;AAE1E,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,oBAAqB,SAAQ,kCAA+C;IAC9D,IAAI,GAAG,mBAAmB,CAAC;IAC3B,aAAa,GAAG,qBAAc,CAAC,gBAAgB,CAAC;IAC7C,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KACjD,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"sync-conversation.js","sourceRoot":"","sources":["../../src/tools/sync-conversation.ts"],"names":[],"mappings":";;;AAAA,0CAA0E;AAE1E,6BAAwB;AAExB,oEAA4D;AAE5D,MAAa,oBAAqB,SAAQ,kCAA+C;IAC9D,IAAI,GAAG,mBAAmB,CAAC;IAC3B,aAAa,GAAG,qBAAc,CAAC,gBAAgB,CAAC;IAC7C,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KACjD,CAAC,CAAC;IAEa,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,4QAA4Q;YAC9Q,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,sHAAsH;qBACzH;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,uWAAuW;qBAC1W;iBACF;gBACD,QAAQ,EAAE,CAAC,WAAW,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;CACF;AA/BD,oDA+BC"}
|
package/dist/tools/sync-inbox.js
CHANGED
|
@@ -11,7 +11,7 @@ class SyncInboxTool extends linked_api_tool_js_1.OperationTool {
|
|
|
11
11
|
getTool() {
|
|
12
12
|
return {
|
|
13
13
|
name: this.name,
|
|
14
|
-
description: 'Enable whole-inbox monitoring so every incoming conversation can be polled with get_inbox (st.syncInbox action). Run once per account; only messages that arrive after it is enabled are captured.',
|
|
14
|
+
description: 'Recommended first step before reading messages. Enable whole-inbox monitoring so every incoming conversation can be polled with get_inbox (st.syncInbox action). Run once per account, before sending messages whose replies you want to read; only messages that arrive after it is enabled are captured.',
|
|
15
15
|
inputSchema: {
|
|
16
16
|
type: 'object',
|
|
17
17
|
properties: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-inbox.js","sourceRoot":"","sources":["../../src/tools/sync-inbox.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,EAAE,CAAC,CAAC;IAElC,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"sync-inbox.js","sourceRoot":"","sources":["../../src/tools/sync-inbox.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,EAAE,CAAC,CAAC;IAElC,OAAO;QACrB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EACT,4SAA4S;YAC9S,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;IACJ,CAAC;CACF;AAjBD,sCAiBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linkedapi/mcp",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.17",
|
|
4
4
|
"description": "MCP server that lets AI assistants control LinkedIn accounts and retrieve real-time data.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"author": "Linked API",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@linkedapi/node": "^2.3.
|
|
33
|
+
"@linkedapi/node": "^2.3.17",
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.17.4",
|
|
35
35
|
"zod": "^4.1.1"
|
|
36
36
|
},
|
package/src/linked-api-tools.ts
CHANGED
|
@@ -43,6 +43,7 @@ import { NvManageConversationTool } from './tools/nv-manage-conversation.js';
|
|
|
43
43
|
import { NvSearchCompaniesTool } from './tools/nv-search-companies.js';
|
|
44
44
|
import { NvSearchPeopleTool } from './tools/nv-search-people.js';
|
|
45
45
|
import { NvSendMessageTool } from './tools/nv-send-message.js';
|
|
46
|
+
import { NvSyncConversationTool } from './tools/nv-sync-conversation.js';
|
|
46
47
|
import { NvSyncInboxTool } from './tools/nv-sync-inbox.js';
|
|
47
48
|
import { ReactToCommentTool } from './tools/react-to-comment.js';
|
|
48
49
|
import { ReactToPostTool } from './tools/react-to-post.js';
|
|
@@ -62,6 +63,7 @@ import { SearchPostsTool } from './tools/search-posts.js';
|
|
|
62
63
|
import { SendConnectionRequestTool } from './tools/send-connection-request.js';
|
|
63
64
|
import { SendFeedbackTool } from './tools/send-feedback.js';
|
|
64
65
|
import { SendMessageTool } from './tools/send-message.js';
|
|
66
|
+
import { SyncConversationTool } from './tools/sync-conversation.js';
|
|
65
67
|
import { SyncInboxTool } from './tools/sync-inbox.js';
|
|
66
68
|
import { SyncNetworkTool } from './tools/sync-network.js';
|
|
67
69
|
import { WithdrawConnectionRequestTool } from './tools/withdraw-connection-request.js';
|
|
@@ -90,9 +92,10 @@ export class LinkedApiTools {
|
|
|
90
92
|
this.tools = [
|
|
91
93
|
// Standard tools
|
|
92
94
|
new SendMessageTool(),
|
|
93
|
-
new GetConversationTool(),
|
|
94
95
|
new SyncInboxTool(),
|
|
95
96
|
new GetInboxTool(),
|
|
97
|
+
new SyncConversationTool(),
|
|
98
|
+
new GetConversationTool(),
|
|
96
99
|
new SyncNetworkTool(),
|
|
97
100
|
new GetNetworkTool(),
|
|
98
101
|
new ManageConversationTool(),
|
|
@@ -125,8 +128,9 @@ export class LinkedApiTools {
|
|
|
125
128
|
new RetrievePerformanceTool(),
|
|
126
129
|
// Sales Navigator tools
|
|
127
130
|
new NvSendMessageTool(),
|
|
128
|
-
new NvGetConversationTool(),
|
|
129
131
|
new NvSyncInboxTool(),
|
|
132
|
+
new NvSyncConversationTool(),
|
|
133
|
+
new NvGetConversationTool(),
|
|
130
134
|
new NvManageConversationTool(),
|
|
131
135
|
new NvSearchCompaniesTool(),
|
|
132
136
|
new NvSearchPeopleTool(),
|
|
@@ -57,7 +57,7 @@ operationName: OPERATION_NAME.syncConversation };
|
|
|
57
57
|
return {
|
|
58
58
|
name: this.name,
|
|
59
59
|
description:
|
|
60
|
-
'Retrieve a conversation with a LinkedIn person via standard LinkedIn messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts a syncConversation workflow and returns its ack ({status, workflowId, operationName: "syncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call get_conversation again to read the synced messages. The result carries syncUntil — the moment syncing of this conversation stops. Once it is in the past the messages are still returned but no longer updated; call sync_conversation again for the same person to resume updates. It also carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
60
|
+
'Legacy. Prefer get_inbox with personUrl. Retrieve a conversation with a LinkedIn person via standard LinkedIn messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts a syncConversation workflow and returns its ack ({status, workflowId, operationName: "syncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call get_conversation again to read the synced messages. The result carries syncUntil — the moment syncing of this conversation stops. Once it is in the past the messages are still returned but no longer updated; call sync_conversation again for the same person to resume updates. It also carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
61
61
|
inputSchema: {
|
|
62
62
|
type: 'object',
|
|
63
63
|
properties: {
|
package/src/tools/get-inbox.ts
CHANGED
|
@@ -1,28 +1,40 @@
|
|
|
1
|
-
import LinkedApi, {
|
|
1
|
+
import LinkedApi, {
|
|
2
|
+
TInboxPersonPollResult,
|
|
3
|
+
TInboxPollRequest,
|
|
4
|
+
TInboxPollResult,
|
|
5
|
+
TMappedResponse,
|
|
6
|
+
} from '@linkedapi/node';
|
|
2
7
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
8
|
import z from 'zod';
|
|
4
9
|
|
|
5
10
|
import { LinkedApiTool } from '../utils/linked-api-tool.js';
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
type TGetInboxArgs = TInboxPollRequest & { personUrl?: string };
|
|
13
|
+
|
|
14
|
+
export class GetInboxTool extends LinkedApiTool<
|
|
15
|
+
TGetInboxArgs,
|
|
16
|
+
TInboxPollResult | TInboxPersonPollResult
|
|
17
|
+
> {
|
|
8
18
|
public readonly name = 'get_inbox';
|
|
9
19
|
protected readonly schema = z.object({
|
|
10
20
|
since: z.string().optional(),
|
|
11
21
|
type: z.enum(['st', 'nv']).optional(),
|
|
12
22
|
threadId: z.string().optional(),
|
|
23
|
+
personUrl: z.string().optional(),
|
|
13
24
|
});
|
|
14
25
|
|
|
15
26
|
public override async execute({
|
|
16
27
|
linkedapi,
|
|
17
|
-
args: { since, type, threadId },
|
|
28
|
+
args: { since, type, threadId, personUrl },
|
|
18
29
|
}: {
|
|
19
30
|
linkedapi: LinkedApi;
|
|
20
|
-
args:
|
|
21
|
-
}): Promise<TMappedResponse<TInboxPollResult>> {
|
|
31
|
+
args: TGetInboxArgs;
|
|
32
|
+
}): Promise<TMappedResponse<TInboxPollResult | TInboxPersonPollResult>> {
|
|
22
33
|
return linkedapi.pollInbox({
|
|
23
34
|
since,
|
|
24
35
|
type,
|
|
25
36
|
threadId,
|
|
37
|
+
personUrl,
|
|
26
38
|
});
|
|
27
39
|
}
|
|
28
40
|
|
|
@@ -30,14 +42,14 @@ export class GetInboxTool extends LinkedApiTool<TInboxPollRequest, TInboxPollRes
|
|
|
30
42
|
return {
|
|
31
43
|
name: this.name,
|
|
32
44
|
description:
|
|
33
|
-
"
|
|
45
|
+
"Default way to read LinkedIn messages (standard and Sales Navigator), newest first. Without personUrl returns new messages across all conversations since inbox monitoring was enabled; requires sync_inbox (or nv_sync_inbox) once per account. With personUrl returns the whole known conversation with that person, including history loaded by sync_conversation, as { messages, threads }: each message also carries inboxMessageId (its id in the result without personUrl, or null) and threadId may be null; each thread carries historyFrom and historyComplete. Check threads[].historyComplete – if false and you need earlier messages, call sync_conversation once, then call get_inbox again. Every message carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person on the other side of the thread, or null when LinkedIn does not expose it. personHashedUrl is LinkedIn's hashed profile URL and is always present; personPublicUrl is the public vanity URL when that person has been resolved, otherwise null.",
|
|
34
46
|
inputSchema: {
|
|
35
47
|
type: 'object',
|
|
36
48
|
properties: {
|
|
37
49
|
since: {
|
|
38
50
|
type: 'string',
|
|
39
51
|
description:
|
|
40
|
-
"Optional ISO 8601 timestamp to only retrieve messages after this date (e.g., '2024-01-15T10:30:00Z'). If not provided, all captured messages are returned.",
|
|
52
|
+
"Optional ISO 8601 timestamp to only retrieve messages at or after this date (e.g., '2024-01-15T10:30:00Z'). If not provided, all captured messages are returned. Message times are whole minutes.",
|
|
41
53
|
},
|
|
42
54
|
type: {
|
|
43
55
|
type: 'string',
|
|
@@ -50,6 +62,11 @@ export class GetInboxTool extends LinkedApiTool<TInboxPollRequest, TInboxPollRes
|
|
|
50
62
|
description:
|
|
51
63
|
'Optional conversation thread identifier to restrict the result to a single thread.',
|
|
52
64
|
},
|
|
65
|
+
personUrl: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
description:
|
|
68
|
+
"Optional LinkedIn URL of one person to get the whole known conversation with them instead of the whole inbox (e.g., 'https://www.linkedin.com/in/john-doe'). A hashed URL (personHashedUrl from a message) always matches; a public URL matches only once Linked API knows that person's public URL, so prefer personHashedUrl when messages from this person show personPublicUrl: null.",
|
|
69
|
+
},
|
|
53
70
|
},
|
|
54
71
|
required: [],
|
|
55
72
|
},
|
|
@@ -57,7 +57,7 @@ operationName: OPERATION_NAME.nvSyncConversation };
|
|
|
57
57
|
return {
|
|
58
58
|
name: this.name,
|
|
59
59
|
description:
|
|
60
|
-
'Retrieve a conversation with a LinkedIn person via Sales Navigator messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts an nvSyncConversation workflow and returns its ack ({status, workflowId, operationName: "nvSyncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call nv_get_conversation again to read the synced messages. The result carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
60
|
+
'Legacy. Prefer get_inbox with personUrl. Retrieve a conversation with a LinkedIn person via Sales Navigator messaging. Returns the conversation immediately if it has already been synced. If the conversation has not been synced yet, this tool starts an nvSyncConversation workflow and returns its ack ({status, workflowId, operationName: "nvSyncConversation", message}); the client should call get_workflow_result with that workflowId until completion, then call nv_get_conversation again to read the synced messages. The result carries personUrn — the permanent LinkedIn member URN (urn:li:member:<id>) of the person, or null when LinkedIn does not expose it.',
|
|
61
61
|
inputSchema: {
|
|
62
62
|
type: 'object',
|
|
63
63
|
properties: {
|
|
@@ -16,19 +16,19 @@ export class NvSyncConversationTool extends OperationTool<TNvSyncConversationPar
|
|
|
16
16
|
return {
|
|
17
17
|
name: this.name,
|
|
18
18
|
description:
|
|
19
|
-
'
|
|
19
|
+
"Loads this person's earlier Sales Navigator message history (nv.syncConversation action). Call once per person. Do not call it to check for new messages – use get_inbox. After it completes, read the history with get_inbox and personUrl.",
|
|
20
20
|
inputSchema: {
|
|
21
21
|
type: 'object',
|
|
22
22
|
properties: {
|
|
23
23
|
personUrl: {
|
|
24
24
|
type: 'string',
|
|
25
25
|
description:
|
|
26
|
-
"The LinkedIn URL of the person whose Sales Navigator
|
|
26
|
+
"The LinkedIn URL of the person whose Sales Navigator message history you want to load (e.g., 'https://www.linkedin.com/in/john-doe')",
|
|
27
27
|
},
|
|
28
28
|
days: {
|
|
29
29
|
type: 'number',
|
|
30
30
|
description:
|
|
31
|
-
'
|
|
31
|
+
'Syncing period, not the depth of history: how many days new messages keep being added to the loaded history, from 1 to 90. Defaults to 30. The whole conversation is read regardless. Counted from the moment the action starts running; a reply does not extend it. Syncing the same person again keeps the history already collected and never shortens the period.',
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
34
|
required: ['personUrl'],
|
|
@@ -13,7 +13,7 @@ export class NvSyncInboxTool extends OperationTool<TNvSyncInboxParams, unknown>
|
|
|
13
13
|
return {
|
|
14
14
|
name: this.name,
|
|
15
15
|
description:
|
|
16
|
-
'Enable whole-inbox monitoring in Sales Navigator so every incoming conversation can be polled with get_inbox (nv.syncInbox action). Run once per account; only messages that arrive after it is enabled are captured.',
|
|
16
|
+
'Recommended first step before reading Sales Navigator messages. Enable whole-inbox monitoring in Sales Navigator so every incoming conversation can be polled with get_inbox (nv.syncInbox action). Run once per account, before sending messages whose replies you want to read; only messages that arrive after it is enabled are captured.',
|
|
17
17
|
inputSchema: {
|
|
18
18
|
type: 'object',
|
|
19
19
|
properties: {},
|
|
@@ -16,19 +16,19 @@ export class SyncConversationTool extends OperationTool<TSyncConversationParams,
|
|
|
16
16
|
return {
|
|
17
17
|
name: this.name,
|
|
18
18
|
description:
|
|
19
|
-
'
|
|
19
|
+
"Loads this person's earlier message history (st.syncConversation action). Call once per person; repeating it within 24 hours returns quickly. Do not call it to check for new messages – use get_inbox. After it completes, read the history with get_inbox and personUrl.",
|
|
20
20
|
inputSchema: {
|
|
21
21
|
type: 'object',
|
|
22
22
|
properties: {
|
|
23
23
|
personUrl: {
|
|
24
24
|
type: 'string',
|
|
25
25
|
description:
|
|
26
|
-
"The LinkedIn URL of the person whose
|
|
26
|
+
"The LinkedIn URL of the person whose message history you want to load (e.g., 'https://www.linkedin.com/in/john-doe')",
|
|
27
27
|
},
|
|
28
28
|
days: {
|
|
29
29
|
type: 'number',
|
|
30
30
|
description:
|
|
31
|
-
'
|
|
31
|
+
'Syncing period, not the depth of history: how many days new messages keep being added to the loaded history, from 1 to 90. Defaults to 30. The whole conversation is read regardless. Counted from the moment the action starts running; a reply does not extend it. Syncing the same person again keeps the history already collected and never shortens the period.',
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
34
|
required: ['personUrl'],
|
package/src/tools/sync-inbox.ts
CHANGED
|
@@ -13,7 +13,7 @@ export class SyncInboxTool extends OperationTool<TSyncInboxParams, unknown> {
|
|
|
13
13
|
return {
|
|
14
14
|
name: this.name,
|
|
15
15
|
description:
|
|
16
|
-
'Enable whole-inbox monitoring so every incoming conversation can be polled with get_inbox (st.syncInbox action). Run once per account; only messages that arrive after it is enabled are captured.',
|
|
16
|
+
'Recommended first step before reading messages. Enable whole-inbox monitoring so every incoming conversation can be polled with get_inbox (st.syncInbox action). Run once per account, before sending messages whose replies you want to read; only messages that arrive after it is enabled are captured.',
|
|
17
17
|
inputSchema: {
|
|
18
18
|
type: 'object',
|
|
19
19
|
properties: {},
|