@linkedapi/mcp 2.3.15 → 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/fetch-post.js +1 -1
- package/dist/tools/fetch-post.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/search-posts.d.ts +5 -0
- package/dist/tools/search-posts.d.ts.map +1 -1
- package/dist/tools/search-posts.js +10 -16
- package/dist/tools/search-posts.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/fetch-post.ts +1 -1
- 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/search-posts.ts +12 -16
- 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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"}
|
package/dist/tools/fetch-post.js
CHANGED
|
@@ -28,7 +28,7 @@ class FetchPostTool extends linked_api_tool_js_1.OperationTool {
|
|
|
28
28
|
getTool() {
|
|
29
29
|
return {
|
|
30
30
|
name: this.name,
|
|
31
|
-
description: 'Open a LinkedIn post and retrieve its data, with optional comments and reactions. (st.openPost action). The author and reposter carry urn — a member URN (urn:li:member:<id>) for a person actor and an organization URN (urn:li:organization:<id>) for a company actor — and retrieved
|
|
31
|
+
description: 'Open a LinkedIn post and retrieve its data, with optional comments and reactions. (st.openPost action). The author and reposter carry urn — a member URN (urn:li:member:<id>) for a person actor and an organization URN (urn:li:organization:<id>) for a company actor — and each retrieved reaction carries an actor object (type, name, urn, profileUrl or companyUrl, headline, and viewerState.connectionDegree for a person) with the same urn identity; each urn is null when LinkedIn does not expose the identifier. This action reads identifiers from the post page itself, so it resolves actor URNs that post listings such as retrieve_feed cannot. Comment authors carry no URN.',
|
|
32
32
|
inputSchema: {
|
|
33
33
|
type: 'object',
|
|
34
34
|
properties: {
|
|
@@ -1 +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,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,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,
|
|
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,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,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,iqBAAiqB;YACnqB,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,kHAAkH;qBACrH;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,uGAAuG;qBAC1G;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,EAAE;aACb;SACF,CAAC;IACJ,CAAC;CACF;AAzFD,sCAyFC"}
|
|
@@ -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"}
|
|
@@ -32,26 +32,31 @@ export declare class SearchPostsTool extends OperationTool<TSearchPostsParams, u
|
|
|
32
32
|
}>>>;
|
|
33
33
|
fromMembers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
34
34
|
name: z.ZodString;
|
|
35
|
+
id: z.ZodOptional<z.ZodString>;
|
|
35
36
|
urn: z.ZodOptional<z.ZodString>;
|
|
36
37
|
personHashedUrl: z.ZodOptional<z.ZodString>;
|
|
37
38
|
}, z.core.$strip>]>>>;
|
|
38
39
|
fromCompanies: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
39
40
|
name: z.ZodString;
|
|
41
|
+
id: z.ZodOptional<z.ZodString>;
|
|
40
42
|
urn: z.ZodOptional<z.ZodString>;
|
|
41
43
|
companyHashedUrl: z.ZodOptional<z.ZodString>;
|
|
42
44
|
}, z.core.$strip>]>>>;
|
|
43
45
|
mentioningMembers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
44
46
|
name: z.ZodString;
|
|
47
|
+
id: z.ZodOptional<z.ZodString>;
|
|
45
48
|
urn: z.ZodOptional<z.ZodString>;
|
|
46
49
|
personHashedUrl: z.ZodOptional<z.ZodString>;
|
|
47
50
|
}, z.core.$strip>]>>>;
|
|
48
51
|
mentioningCompanies: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
49
52
|
name: z.ZodString;
|
|
53
|
+
id: z.ZodOptional<z.ZodString>;
|
|
50
54
|
urn: z.ZodOptional<z.ZodString>;
|
|
51
55
|
companyHashedUrl: z.ZodOptional<z.ZodString>;
|
|
52
56
|
}, z.core.$strip>]>>>;
|
|
53
57
|
authorCompanies: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
54
58
|
name: z.ZodString;
|
|
59
|
+
id: z.ZodOptional<z.ZodString>;
|
|
55
60
|
urn: z.ZodOptional<z.ZodString>;
|
|
56
61
|
companyHashedUrl: z.ZodOptional<z.ZodString>;
|
|
57
62
|
}, z.core.$strip>]>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-posts.d.ts","sourceRoot":"","sources":["../../src/tools/search-posts.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;
|
|
1
|
+
{"version":3,"file":"search-posts.d.ts","sourceRoot":"","sources":["../../src/tools/search-posts.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;AA8E5D,qBAAa,eAAgB,SAAQ,aAAa,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7E,SAAyB,IAAI,kBAAkB;IAC/C,SAAyB,aAAa,gBAA8B;IACpE,mBAA4B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAwB7B;IAEW,OAAO,IAAI,IAAI;CAiGhC"}
|
|
@@ -8,6 +8,7 @@ const PERSON_FILTER_ENTRY_SCHEMA = zod_1.z.union([
|
|
|
8
8
|
zod_1.z.string().min(1).max(100),
|
|
9
9
|
zod_1.z.object({
|
|
10
10
|
name: zod_1.z.string().min(1).max(100),
|
|
11
|
+
id: zod_1.z.string().optional(),
|
|
11
12
|
urn: zod_1.z.string().optional(),
|
|
12
13
|
personHashedUrl: zod_1.z.string().optional(),
|
|
13
14
|
}),
|
|
@@ -16,6 +17,7 @@ const COMPANY_FILTER_ENTRY_SCHEMA = zod_1.z.union([
|
|
|
16
17
|
zod_1.z.string().min(1).max(100),
|
|
17
18
|
zod_1.z.object({
|
|
18
19
|
name: zod_1.z.string().min(1).max(100),
|
|
20
|
+
id: zod_1.z.string().optional(),
|
|
19
21
|
urn: zod_1.z.string().optional(),
|
|
20
22
|
companyHashedUrl: zod_1.z.string().optional(),
|
|
21
23
|
}),
|
|
@@ -35,15 +37,11 @@ const PERSON_FILTER_ENTRY_JSON_SCHEMA = {
|
|
|
35
37
|
type: 'string',
|
|
36
38
|
minLength: 1,
|
|
37
39
|
maxLength: 100,
|
|
38
|
-
description: 'Required. Name
|
|
40
|
+
description: 'Required. Name of the person.',
|
|
39
41
|
},
|
|
40
|
-
|
|
42
|
+
id: {
|
|
41
43
|
type: 'string',
|
|
42
|
-
description: 'Optional.
|
|
43
|
-
},
|
|
44
|
-
personHashedUrl: {
|
|
45
|
-
type: 'string',
|
|
46
|
-
description: 'Optional. Hashed LinkedIn URL of the person.',
|
|
44
|
+
description: 'Optional. Any identifier of the person: URN, or public or hashed LinkedIn URL. Pins the filter to exactly that person.',
|
|
47
45
|
},
|
|
48
46
|
},
|
|
49
47
|
required: ['name'],
|
|
@@ -65,15 +63,11 @@ const COMPANY_FILTER_ENTRY_JSON_SCHEMA = {
|
|
|
65
63
|
type: 'string',
|
|
66
64
|
minLength: 1,
|
|
67
65
|
maxLength: 100,
|
|
68
|
-
description: 'Required. Name
|
|
69
|
-
},
|
|
70
|
-
urn: {
|
|
71
|
-
type: 'string',
|
|
72
|
-
description: 'Optional. Organization URN of the company, urn:li:organization:<id>.',
|
|
66
|
+
description: 'Required. Name of the company.',
|
|
73
67
|
},
|
|
74
|
-
|
|
68
|
+
id: {
|
|
75
69
|
type: 'string',
|
|
76
|
-
description: 'Optional.
|
|
70
|
+
description: 'Optional. Any identifier of the company: URN, public or hashed LinkedIn URL, or numeric ID. Pins the filter to exactly that company.',
|
|
77
71
|
},
|
|
78
72
|
},
|
|
79
73
|
required: ['name'],
|
|
@@ -154,12 +148,12 @@ class SearchPostsTool extends linked_api_tool_js_1.OperationTool {
|
|
|
154
148
|
},
|
|
155
149
|
fromMembers: {
|
|
156
150
|
type: 'array',
|
|
157
|
-
description: 'Optional. Array of people whose posts to keep. Each entry is a
|
|
151
|
+
description: 'Optional. Array of people whose posts to keep. Each entry is a name, or { name, id }; both forms can be mixed in one array. A name alone may match a namesake; id pins the exact person. When an entry cannot be applied, the action fails with filterNotApplied rather than filtering by somebody else.',
|
|
158
152
|
items: PERSON_FILTER_ENTRY_JSON_SCHEMA,
|
|
159
153
|
},
|
|
160
154
|
fromCompanies: {
|
|
161
155
|
type: 'array',
|
|
162
|
-
description: 'Optional. Array of companies whose posts to keep. Same entry shape as fromMembers
|
|
156
|
+
description: 'Optional. Array of companies whose posts to keep. Same entry shape as fromMembers.',
|
|
163
157
|
items: COMPANY_FILTER_ENTRY_JSON_SCHEMA,
|
|
164
158
|
},
|
|
165
159
|
mentioningMembers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-posts.js","sourceRoot":"","sources":["../../src/tools/search-posts.ts"],"names":[],"mappings":";;;AAAA,0CAAqE;AAErE,6BAAwB;AAExB,oEAA4D;AAE5D,MAAM,0BAA0B,GAAG,OAAC,CAAC,KAAK,CAAC;IACzC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1B,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACvC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,OAAC,CAAC,KAAK,CAAC;IAC1C,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1B,OAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG;IACtC,KAAK,EAAE;QACL;YACE,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,6CAA6C;SAC3D;QACD;YACE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,CAAC;oBACZ,SAAS,EAAE,GAAG;oBACd,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"search-posts.js","sourceRoot":"","sources":["../../src/tools/search-posts.ts"],"names":[],"mappings":"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"}
|
|
@@ -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(),
|
package/src/tools/fetch-post.ts
CHANGED
|
@@ -30,7 +30,7 @@ export class FetchPostTool extends OperationTool<TFetchPostParams, unknown> {
|
|
|
30
30
|
return {
|
|
31
31
|
name: this.name,
|
|
32
32
|
description:
|
|
33
|
-
'Open a LinkedIn post and retrieve its data, with optional comments and reactions. (st.openPost action). The author and reposter carry urn — a member URN (urn:li:member:<id>) for a person actor and an organization URN (urn:li:organization:<id>) for a company actor — and retrieved
|
|
33
|
+
'Open a LinkedIn post and retrieve its data, with optional comments and reactions. (st.openPost action). The author and reposter carry urn — a member URN (urn:li:member:<id>) for a person actor and an organization URN (urn:li:organization:<id>) for a company actor — and each retrieved reaction carries an actor object (type, name, urn, profileUrl or companyUrl, headline, and viewerState.connectionDegree for a person) with the same urn identity; each urn is null when LinkedIn does not expose the identifier. This action reads identifiers from the post page itself, so it resolves actor URNs that post listings such as retrieve_feed cannot. Comment authors carry no URN.',
|
|
34
34
|
inputSchema: {
|
|
35
35
|
type: 'object',
|
|
36
36
|
properties: {
|
|
@@ -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: {},
|
|
@@ -8,6 +8,7 @@ const PERSON_FILTER_ENTRY_SCHEMA = z.union([
|
|
|
8
8
|
z.string().min(1).max(100),
|
|
9
9
|
z.object({
|
|
10
10
|
name: z.string().min(1).max(100),
|
|
11
|
+
id: z.string().optional(),
|
|
11
12
|
urn: z.string().optional(),
|
|
12
13
|
personHashedUrl: z.string().optional(),
|
|
13
14
|
}),
|
|
@@ -17,6 +18,7 @@ const COMPANY_FILTER_ENTRY_SCHEMA = z.union([
|
|
|
17
18
|
z.string().min(1).max(100),
|
|
18
19
|
z.object({
|
|
19
20
|
name: z.string().min(1).max(100),
|
|
21
|
+
id: z.string().optional(),
|
|
20
22
|
urn: z.string().optional(),
|
|
21
23
|
companyHashedUrl: z.string().optional(),
|
|
22
24
|
}),
|
|
@@ -37,15 +39,12 @@ const PERSON_FILTER_ENTRY_JSON_SCHEMA = {
|
|
|
37
39
|
type: 'string',
|
|
38
40
|
minLength: 1,
|
|
39
41
|
maxLength: 100,
|
|
40
|
-
description: 'Required. Name
|
|
42
|
+
description: 'Required. Name of the person.',
|
|
41
43
|
},
|
|
42
|
-
|
|
44
|
+
id: {
|
|
43
45
|
type: 'string',
|
|
44
|
-
description:
|
|
45
|
-
|
|
46
|
-
personHashedUrl: {
|
|
47
|
-
type: 'string',
|
|
48
|
-
description: 'Optional. Hashed LinkedIn URL of the person.',
|
|
46
|
+
description:
|
|
47
|
+
'Optional. Any identifier of the person: URN, or public or hashed LinkedIn URL. Pins the filter to exactly that person.',
|
|
49
48
|
},
|
|
50
49
|
},
|
|
51
50
|
required: ['name'],
|
|
@@ -68,15 +67,12 @@ const COMPANY_FILTER_ENTRY_JSON_SCHEMA = {
|
|
|
68
67
|
type: 'string',
|
|
69
68
|
minLength: 1,
|
|
70
69
|
maxLength: 100,
|
|
71
|
-
description: 'Required. Name
|
|
72
|
-
},
|
|
73
|
-
urn: {
|
|
74
|
-
type: 'string',
|
|
75
|
-
description: 'Optional. Organization URN of the company, urn:li:organization:<id>.',
|
|
70
|
+
description: 'Required. Name of the company.',
|
|
76
71
|
},
|
|
77
|
-
|
|
72
|
+
id: {
|
|
78
73
|
type: 'string',
|
|
79
|
-
description:
|
|
74
|
+
description:
|
|
75
|
+
'Optional. Any identifier of the company: URN, public or hashed LinkedIn URL, or numeric ID. Pins the filter to exactly that company.',
|
|
80
76
|
},
|
|
81
77
|
},
|
|
82
78
|
required: ['name'],
|
|
@@ -165,13 +161,13 @@ export class SearchPostsTool extends OperationTool<TSearchPostsParams, unknown>
|
|
|
165
161
|
fromMembers: {
|
|
166
162
|
type: 'array',
|
|
167
163
|
description:
|
|
168
|
-
'Optional. Array of people whose posts to keep. Each entry is a
|
|
164
|
+
'Optional. Array of people whose posts to keep. Each entry is a name, or { name, id }; both forms can be mixed in one array. A name alone may match a namesake; id pins the exact person. When an entry cannot be applied, the action fails with filterNotApplied rather than filtering by somebody else.',
|
|
169
165
|
items: PERSON_FILTER_ENTRY_JSON_SCHEMA,
|
|
170
166
|
},
|
|
171
167
|
fromCompanies: {
|
|
172
168
|
type: 'array',
|
|
173
169
|
description:
|
|
174
|
-
'Optional. Array of companies whose posts to keep. Same entry shape as fromMembers
|
|
170
|
+
'Optional. Array of companies whose posts to keep. Same entry shape as fromMembers.',
|
|
175
171
|
items: COMPANY_FILTER_ENTRY_JSON_SCHEMA,
|
|
176
172
|
},
|
|
177
173
|
mentioningMembers: {
|
|
@@ -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: {},
|