@linkedapi/mcp 0.3.11 → 1.0.1

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.
Files changed (140) hide show
  1. package/.github/workflows/merge-main.yaml +9 -9
  2. package/.github/workflows/pr-main.yaml +4 -4
  3. package/README.md +9 -0
  4. package/dist/index.js +42 -9
  5. package/dist/index.js.map +1 -1
  6. package/dist/linked-api-server.d.ts +7 -4
  7. package/dist/linked-api-server.d.ts.map +1 -1
  8. package/dist/linked-api-server.js +62 -8
  9. package/dist/linked-api-server.js.map +1 -1
  10. package/dist/linked-api-tools.d.ts +21 -4
  11. package/dist/linked-api-tools.d.ts.map +1 -1
  12. package/dist/linked-api-tools.js +54 -28
  13. package/dist/linked-api-tools.js.map +1 -1
  14. package/dist/tools/admin-connect-account.d.ts +14 -0
  15. package/dist/tools/admin-connect-account.d.ts.map +1 -0
  16. package/dist/tools/admin-connect-account.js +27 -0
  17. package/dist/tools/admin-connect-account.js.map +1 -0
  18. package/dist/tools/admin-disconnect-account.d.ts +16 -0
  19. package/dist/tools/admin-disconnect-account.d.ts.map +1 -0
  20. package/dist/tools/admin-disconnect-account.js +35 -0
  21. package/dist/tools/admin-disconnect-account.js.map +1 -0
  22. package/dist/tools/admin-get-accounts.d.ts +14 -0
  23. package/dist/tools/admin-get-accounts.d.ts.map +1 -0
  24. package/dist/tools/admin-get-accounts.js +27 -0
  25. package/dist/tools/admin-get-accounts.js.map +1 -0
  26. package/dist/tools/admin-get-limits-usage.d.ts +20 -0
  27. package/dist/tools/admin-get-limits-usage.d.ts.map +1 -0
  28. package/dist/tools/admin-get-limits-usage.js +35 -0
  29. package/dist/tools/admin-get-limits-usage.js.map +1 -0
  30. package/dist/tools/admin-get-seats.d.ts +18 -0
  31. package/dist/tools/admin-get-seats.d.ts.map +1 -0
  32. package/dist/tools/admin-get-seats.js +27 -0
  33. package/dist/tools/admin-get-seats.js.map +1 -0
  34. package/dist/tools/admin-get-subscription-status.d.ts +14 -0
  35. package/dist/tools/admin-get-subscription-status.d.ts.map +1 -0
  36. package/dist/tools/admin-get-subscription-status.js +27 -0
  37. package/dist/tools/admin-get-subscription-status.js.map +1 -0
  38. package/dist/tools/admin-regenerate-token.d.ts +16 -0
  39. package/dist/tools/admin-regenerate-token.d.ts.map +1 -0
  40. package/dist/tools/admin-regenerate-token.js +35 -0
  41. package/dist/tools/admin-regenerate-token.js.map +1 -0
  42. package/dist/tools/admin-reset-limits.d.ts +16 -0
  43. package/dist/tools/admin-reset-limits.d.ts.map +1 -0
  44. package/dist/tools/admin-reset-limits.js +35 -0
  45. package/dist/tools/admin-reset-limits.js.map +1 -0
  46. package/dist/tools/admin-set-limits.d.ts +26 -0
  47. package/dist/tools/admin-set-limits.d.ts.map +1 -0
  48. package/dist/tools/admin-set-limits.js +68 -0
  49. package/dist/tools/admin-set-limits.js.map +1 -0
  50. package/dist/tools/admin-set-seats.d.ts +24 -0
  51. package/dist/tools/admin-set-seats.d.ts.map +1 -0
  52. package/dist/tools/admin-set-seats.js +47 -0
  53. package/dist/tools/admin-set-seats.js.map +1 -0
  54. package/dist/tools/comment-on-post.d.ts.map +1 -1
  55. package/dist/tools/comment-on-post.js +1 -1
  56. package/dist/tools/comment-on-post.js.map +1 -1
  57. package/dist/tools/create-post.js +1 -1
  58. package/dist/tools/create-post.js.map +1 -1
  59. package/dist/tools/execute-custom-workflow.d.ts.map +1 -1
  60. package/dist/tools/execute-custom-workflow.js +1 -1
  61. package/dist/tools/execute-custom-workflow.js.map +1 -1
  62. package/dist/tools/get-conversation.d.ts +3 -1
  63. package/dist/tools/get-conversation.d.ts.map +1 -1
  64. package/dist/tools/get-conversation.js +20 -3
  65. package/dist/tools/get-conversation.js.map +1 -1
  66. package/dist/tools/get-workflow-result.d.ts +3 -1
  67. package/dist/tools/get-workflow-result.d.ts.map +1 -1
  68. package/dist/tools/get-workflow-result.js +7 -4
  69. package/dist/tools/get-workflow-result.js.map +1 -1
  70. package/dist/tools/nv-get-conversation.d.ts +3 -1
  71. package/dist/tools/nv-get-conversation.d.ts.map +1 -1
  72. package/dist/tools/nv-get-conversation.js +20 -3
  73. package/dist/tools/nv-get-conversation.js.map +1 -1
  74. package/dist/tools/nv-send-message.js +1 -1
  75. package/dist/tools/nv-send-message.js.map +1 -1
  76. package/dist/tools/react-to-post.js +1 -1
  77. package/dist/tools/react-to-post.js.map +1 -1
  78. package/dist/tools/remove-connection.js +1 -1
  79. package/dist/tools/remove-connection.js.map +1 -1
  80. package/dist/tools/send-connection-request.js +1 -1
  81. package/dist/tools/send-connection-request.js.map +1 -1
  82. package/dist/tools/send-message.d.ts.map +1 -1
  83. package/dist/tools/send-message.js +1 -1
  84. package/dist/tools/send-message.js.map +1 -1
  85. package/dist/tools/withdraw-connection-request.js +1 -1
  86. package/dist/tools/withdraw-connection-request.js.map +1 -1
  87. package/dist/utils/admin-tool.d.ts +14 -0
  88. package/dist/utils/admin-tool.d.ts.map +1 -0
  89. package/dist/utils/admin-tool.js +10 -0
  90. package/dist/utils/admin-tool.js.map +1 -0
  91. package/dist/utils/define-request-timeout.d.ts.map +1 -1
  92. package/dist/utils/define-request-timeout.js +16 -4
  93. package/dist/utils/define-request-timeout.js.map +1 -1
  94. package/dist/utils/execute-with-progress.d.ts +7 -2
  95. package/dist/utils/execute-with-progress.d.ts.map +1 -1
  96. package/dist/utils/execute-with-progress.js +19 -9
  97. package/dist/utils/execute-with-progress.js.map +1 -1
  98. package/dist/utils/handle-linked-api-error.d.ts +1 -1
  99. package/dist/utils/handle-linked-api-error.d.ts.map +1 -1
  100. package/dist/utils/handle-linked-api-error.js +10 -0
  101. package/dist/utils/handle-linked-api-error.js.map +1 -1
  102. package/dist/utils/json-http-transport.d.ts.map +1 -1
  103. package/dist/utils/json-http-transport.js +4 -3
  104. package/dist/utils/json-http-transport.js.map +1 -1
  105. package/dist/utils/linked-api-tool.d.ts +10 -14
  106. package/dist/utils/linked-api-tool.d.ts.map +1 -1
  107. package/dist/utils/linked-api-tool.js +5 -6
  108. package/dist/utils/linked-api-tool.js.map +1 -1
  109. package/package.json +2 -2
  110. package/src/index.ts +46 -9
  111. package/src/linked-api-server.ts +87 -16
  112. package/src/linked-api-tools.ts +81 -31
  113. package/src/tools/admin-connect-account.ts +34 -0
  114. package/src/tools/admin-disconnect-account.ts +40 -0
  115. package/src/tools/admin-get-accounts.ts +30 -0
  116. package/src/tools/admin-get-limits-usage.ts +42 -0
  117. package/src/tools/admin-get-seats.ts +34 -0
  118. package/src/tools/admin-get-subscription-status.ts +33 -0
  119. package/src/tools/admin-regenerate-token.ts +43 -0
  120. package/src/tools/admin-reset-limits.ts +39 -0
  121. package/src/tools/admin-set-limits.ts +75 -0
  122. package/src/tools/admin-set-seats.ts +52 -0
  123. package/src/tools/comment-on-post.ts +2 -1
  124. package/src/tools/create-post.ts +1 -1
  125. package/src/tools/execute-custom-workflow.ts +2 -1
  126. package/src/tools/get-conversation.ts +27 -3
  127. package/src/tools/get-workflow-result.ts +10 -3
  128. package/src/tools/nv-get-conversation.ts +27 -3
  129. package/src/tools/nv-send-message.ts +1 -1
  130. package/src/tools/react-to-post.ts +1 -1
  131. package/src/tools/remove-connection.ts +1 -1
  132. package/src/tools/send-connection-request.ts +1 -1
  133. package/src/tools/send-message.ts +2 -1
  134. package/src/tools/withdraw-connection-request.ts +1 -1
  135. package/src/utils/admin-tool.ts +22 -0
  136. package/src/utils/define-request-timeout.ts +16 -4
  137. package/src/utils/execute-with-progress.ts +37 -19
  138. package/src/utils/handle-linked-api-error.ts +12 -1
  139. package/src/utils/json-http-transport.ts +4 -3
  140. package/src/utils/linked-api-tool.ts +16 -18
@@ -1 +1 @@
1
- {"version":3,"file":"handle-linked-api-error.js","sourceRoot":"","sources":["../../src/utils/handle-linked-api-error.ts"],"names":[],"mappings":";;AAIA,oDAsBC;AA1BD,0CAAgF;AAEhF,wCAAkD;AAElD,SAAgB,oBAAoB,CAAC,KAAqB;IACxD,IAAI,KAAK,YAAY,oCAA6B,EAAE,CAAC;QACnD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QACrD,OAAO;YACL,OAAO;YACP,UAAU;YACV,aAAa;SACd,CAAC;IACJ,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,6BAA6B,CAAC;QACnC,KAAK,wBAAwB,CAAC;QAC9B,KAAK,uBAAuB,CAAC;QAC7B,KAAK,4BAA4B;YAC/B,OAAO;gBACL,OAAO,EAAE,8BAAoB;aAC9B,CAAC;IACN,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"handle-linked-api-error.js","sourceRoot":"","sources":["../../src/utils/handle-linked-api-error.ts"],"names":[],"mappings":";;AAIA,oDAiCC;AArCD,0CAAgF;AAEhF,wCAAkD;AAElD,SAAgB,oBAAoB,CAAC,KAAqB;IACxD,IAAI,KAAK,YAAY,oCAA6B,EAAE,CAAC;QACnD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QACrD,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,OAAO;YACP,UAAU;YACV,aAAa;YACb,UAAU,EAAE;gBACV,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE;oBACT,UAAU;oBACV,aAAa;iBACd;gBACD,WAAW,EAAE,sDAAsD;aACpE;YACD,WAAW,EACT,qJAAqJ;SACxJ,CAAC;IACJ,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,6BAA6B,CAAC;QACnC,KAAK,wBAAwB,CAAC;QAC9B,KAAK,uBAAuB,CAAC;QAC7B,KAAK,4BAA4B;YAC/B,OAAO;gBACL,OAAO,EAAE,8BAAoB;aAC9B,CAAC;IACN,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-http-transport.d.ts","sourceRoot":"","sources":["../../src/utils/json-http-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAIL,cAAc,EAEf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAkB5D,qBAAa,uBAAwB,YAAW,SAAS;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CACjB,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE;YACZ,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;SAC5B,CAAC;QACF,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,KACE,IAAI,CAAC;IAEV,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,GAAG,CAAC,CAAa;IAEnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BtB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C5E,aAAa,CACjB,GAAG,EAAE,eAAe,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,EACzC,GAAG,EAAE,cAAc,EACnB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;CAuMjB"}
1
+ {"version":3,"file":"json-http-transport.d.ts","sourceRoot":"","sources":["../../src/utils/json-http-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAIL,cAAc,EAEf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAkB5D,qBAAa,uBAAwB,YAAW,SAAS;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CACjB,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE;YACZ,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;SAC5B,CAAC;QACF,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,KACE,IAAI,CAAC;IAEV,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,GAAG,CAAC,CAAa;IAEnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BtB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C5E,aAAa,CACjB,GAAG,EAAE,eAAe,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,EACzC,GAAG,EAAE,cAAc,EACnB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;CAuMjB"}
@@ -45,12 +45,13 @@ class JsonHTTPServerTransport {
45
45
  this.onclose?.();
46
46
  }
47
47
  async send(message, options) {
48
+ const isResponse = (0, types_js_1.isJSONRPCResponse)(message) || (0, types_js_1.isJSONRPCError)(message);
48
49
  let relatedId = options?.relatedRequestId;
49
- if ((0, types_js_1.isJSONRPCResponse)(message) || (0, types_js_1.isJSONRPCError)(message)) {
50
+ if (isResponse) {
50
51
  relatedId = message.id;
51
52
  }
52
- // If a related HTTP connection is pending, complete it with JSON
53
- if (relatedId !== undefined) {
53
+ // If a related HTTP connection is pending, only final responses complete it.
54
+ if (isResponse && relatedId !== undefined) {
54
55
  const connId = this.requestIdToConn.get(relatedId);
55
56
  if (connId) {
56
57
  const ctx = this.connections.get(connId);
@@ -1 +1 @@
1
- {"version":3,"file":"json-http-transport.js","sourceRoot":"","sources":["../../src/utils/json-http-transport.ts"],"names":[],"mappings":";;;AACA,iEAM4C;AAG5C,qCAAkC;AAgBlC,MAAa,uBAAuB;IAC3B,OAAO,CAAc;IACrB,OAAO,CAA0B;IACjC,SAAS,CAUN;IAEF,OAAO,GAAG,KAAK,CAAC;IAChB,eAAe,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC/C,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;IACnD,GAAG,CAAc;IAEzB,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAuB,EAAE,OAA8B;QAChE,IAAI,SAAS,GAAG,OAAO,EAAE,gBAAgB,CAAC;QAC1C,IAAI,IAAA,4BAAiB,EAAC,OAAO,CAAC,IAAI,IAAA,yBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,iEAAiE;QACjE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAErF,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAEtB,MAAM,IAAI,GACR,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;oBACzB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;oBACvC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAExD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;gBAC/E,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAElC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,OAAO;IACT,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,aAAa,CACjB,GAAyC,EACzC,GAAmB,EACnB,UAAoB;QAEpB,IAAI,CAAC;YACH,kDAAkD;YAClD,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACvE,4BAA4B;gBAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC;wBACH,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa;4BAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBACtD,CAAC;oBAAC,MAAM,CAAC;wBACP,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;oBACjB,cAAc,EAAE,mBAAmB;oBACnC,eAAe,EAAE,wBAAwB;oBACzC,UAAU,EAAE,YAAY;oBACxB,mBAAmB,EAAE,IAAI;iBAC1B,CAAC,CAAC;gBACH,kDAAkD;gBAClD,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAE7B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,IAAI,GAAG,CAAC,aAAa;wBAAE,OAAO;oBAC9B,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACzC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAEV,IAAI,CAAC,GAAG,GAAG;oBACT,GAAG;oBACH,SAAS;iBACV,CAAC;gBACF,eAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,4BAA4B,CAAC,CAAC;gBAEpE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACnB,IAAI,CAAC;wBACH,aAAa,CAAC,SAAS,CAAC,CAAC;oBAC3B,CAAC;4BAAS,CAAC;wBACT,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;wBAC/C,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;oBACvB,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CACvC,IAAI,CAAC,SAAS,CAAC;oBACb,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,6CAA6C;qBACvD;oBACD,EAAE,EAAE,IAAI;iBACT,CAAC,CACH,CAAC;gBACF,eAAM,CAAC,IAAI,CACT;oBACE,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,EACD,gCAAgC,CACjC,CAAC;gBACF,OAAO;YACT,CAAC;YAED,uFAAuF;YACvF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;YAC5D,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;oBACb,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,sEAAsE;qBAChF;oBACD,EAAE,EAAE,IAAI;iBACT,CAAC,CACH,CAAC;gBACF,eAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,iDAAiD,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;oBACb,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,+DAA+D;qBACzE;oBACD,EAAE,EAAE,IAAI;iBACT,CAAC,CACH,CAAC;gBACF,eAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,+CAA+C,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAED,IAAI,GAAG,GAAY,UAAU,CAAC;YAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5E,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAE,GAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC,+BAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,2BAAgB,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE;wBACpB,WAAW,EAAE;4BACX,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,SAAS,EAAE,MAAM;yBAClB;wBACD,QAAQ,EAAE,GAAG,CAAC,IAAI;qBACnB,CAAC,CAAC;gBACL,CAAC;gBACD,eAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,MAAM,UAAU,GAAgB,QAAQ,CAAC,MAAM,CAAC,2BAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnF,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;YAC/D,8EAA8E;YAC9E,6DAA6D;YAC7D,IAAI,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,+EAA+E;gBAC/E,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE;wBACpB,WAAW,EAAE;4BACX,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,SAAS,EAAE,KAAK;yBACjB;wBACD,QAAQ,EAAE,GAAG,CAAC,IAAI;qBACnB,CAAC,CAAC;gBACL,CAAC;gBACD,eAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE;gBAC3B,GAAG;gBACH,UAAU;gBACV,UAAU,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC;gBAC/B,SAAS,EAAE,IAAI,GAAG,EAAE;aACrB,CAAC,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;YAEjE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE;oBACpB,WAAW,EAAE;wBACX,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,SAAS,EAAE,MAAM;qBAClB;oBACD,QAAQ,EAAE,GAAG,CAAC,IAAI;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,sCAAsC,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAc,CAAC,CAAC;YAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;gBACb,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;iBACpB;gBACD,EAAE,EAAE,IAAI;aACT,CAAC,CACH,CAAC;YACF,eAAM,CAAC,KAAK,CAAC,KAAc,EAAE,8CAA8C,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF;AA1SD,0DA0SC"}
1
+ {"version":3,"file":"json-http-transport.js","sourceRoot":"","sources":["../../src/utils/json-http-transport.ts"],"names":[],"mappings":"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"}
@@ -2,27 +2,23 @@ import LinkedApi, { TMappedResponse, TOperationName } from '@linkedapi/node';
2
2
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { LinkedApiProgressNotification } from 'src/utils/types';
4
4
  import z from 'zod';
5
+ interface TLinkedApiToolExecuteOptions<TParams> {
6
+ linkedapi: LinkedApi;
7
+ args: TParams;
8
+ workflowTimeout: number;
9
+ progressToken?: string | number;
10
+ progressCallback: (progress: LinkedApiProgressNotification) => void;
11
+ }
5
12
  export declare abstract class LinkedApiTool<TParams, TResult> {
6
13
  abstract readonly name: string;
7
14
  protected abstract readonly schema: z.ZodSchema;
8
- protected readonly progressCallback: (progress: LinkedApiProgressNotification) => void;
9
- constructor(progressCallback: (progress: LinkedApiProgressNotification) => void);
10
15
  abstract getTool(): Tool;
11
16
  validate(args: unknown): TParams;
12
- abstract execute({ linkedapi, args, workflowTimeout, progressToken, }: {
13
- linkedapi: LinkedApi;
14
- args: TParams;
15
- workflowTimeout: number;
16
- progressToken?: string | number;
17
- }): Promise<TMappedResponse<TResult>>;
17
+ abstract execute({ linkedapi, args, workflowTimeout, progressToken, progressCallback, }: TLinkedApiToolExecuteOptions<TParams>): Promise<TMappedResponse<TResult>>;
18
18
  }
19
19
  export declare abstract class OperationTool<TParams, TResult> extends LinkedApiTool<TParams, TResult> {
20
20
  abstract readonly operationName: TOperationName;
21
- execute({ linkedapi, args, workflowTimeout, progressToken, }: {
22
- linkedapi: LinkedApi;
23
- args: TParams;
24
- workflowTimeout: number;
25
- progressToken?: string | number;
26
- }): Promise<TMappedResponse<TResult>>;
21
+ execute({ linkedapi, args, workflowTimeout, progressToken, progressCallback, }: TLinkedApiToolExecuteOptions<TParams>): Promise<TMappedResponse<TResult>>;
27
22
  }
23
+ export {};
28
24
  //# sourceMappingURL=linked-api-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linked-api-tool.d.ts","sourceRoot":"","sources":["../../src/utils/linked-api-tool.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAa,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,CAAC,MAAM,KAAK,CAAC;AAIpB,8BAAsB,aAAa,CAAC,OAAO,EAAE,OAAO;IAClD,kBAAyB,IAAI,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,6BAA6B,KAAK,IAAI,CAAC;gBAE3E,gBAAgB,EAAE,CAAC,QAAQ,EAAE,6BAA6B,KAAK,IAAI;aAI/D,OAAO,IAAI,IAAI;IAExB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;aAIvB,OAAO,CAAC,EACtB,SAAS,EACT,IAAI,EACJ,eAAe,EACf,aAAa,GACd,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;CACtC;AAED,8BAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAE,SAAQ,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3F,kBAAyB,aAAa,EAAE,cAAc,CAAC;IAEvC,OAAO,CAAC,EACtB,SAAS,EACT,IAAI,EACJ,eAAe,EACf,aAAa,GACd,EAAE;QACD,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;CAStC"}
1
+ {"version":3,"file":"linked-api-tool.d.ts","sourceRoot":"","sources":["../../src/utils/linked-api-tool.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAa,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,CAAC,MAAM,KAAK,CAAC;AAIpB,UAAU,4BAA4B,CAAC,OAAO;IAC5C,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,6BAA6B,KAAK,IAAI,CAAC;CACrE;AAED,8BAAsB,aAAa,CAAC,OAAO,EAAE,OAAO;IAClD,kBAAyB,IAAI,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;aAEhC,OAAO,IAAI,IAAI;IAExB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;aAIvB,OAAO,CAAC,EACtB,SAAS,EACT,IAAI,EACJ,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;CAC7E;AAED,8BAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAE,SAAQ,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3F,kBAAyB,aAAa,EAAE,cAAc,CAAC;IAEvC,OAAO,CAAC,EACtB,SAAS,EACT,IAAI,EACJ,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;CAY7E"}
@@ -3,19 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OperationTool = exports.LinkedApiTool = void 0;
4
4
  const execute_with_progress_1 = require("./execute-with-progress");
5
5
  class LinkedApiTool {
6
- progressCallback;
7
- constructor(progressCallback) {
8
- this.progressCallback = progressCallback;
9
- }
10
6
  validate(args) {
11
7
  return this.schema.parse(args);
12
8
  }
13
9
  }
14
10
  exports.LinkedApiTool = LinkedApiTool;
15
11
  class OperationTool extends LinkedApiTool {
16
- execute({ linkedapi, args, workflowTimeout, progressToken, }) {
12
+ execute({ linkedapi, args, workflowTimeout, progressToken, progressCallback, }) {
17
13
  const operation = linkedapi.operations.find((operation) => operation.operationName === this.operationName);
18
- return (0, execute_with_progress_1.executeWithProgress)(this.progressCallback, operation, workflowTimeout, {
14
+ return (0, execute_with_progress_1.executeWithProgress)({
15
+ progressCallback,
16
+ operation,
17
+ workflowTimeout,
19
18
  params: args,
20
19
  progressToken,
21
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"linked-api-tool.js","sourceRoot":"","sources":["../../src/utils/linked-api-tool.ts"],"names":[],"mappings":";;;AAKA,mEAA8D;AAE9D,MAAsB,aAAa;IAGd,gBAAgB,CAAoD;IAEvF,YAAY,gBAAmE;QAC7E,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAIM,QAAQ,CAAC,IAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IAC5C,CAAC;CAaF;AA1BD,sCA0BC;AAED,MAAsB,aAAgC,SAAQ,aAA+B;IAG3E,OAAO,CAAC,EACtB,SAAS,EACT,IAAI,EACJ,eAAe,EACf,aAAa,GAMd;QACC,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CACzC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAC9B,CAAC;QAClC,OAAO,IAAA,2CAAmB,EAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE;YAC5E,MAAM,EAAE,IAAI;YACZ,aAAa;SACd,CAAC,CAAC;IACL,CAAC;CACF;AAtBD,sCAsBC"}
1
+ {"version":3,"file":"linked-api-tool.js","sourceRoot":"","sources":["../../src/utils/linked-api-tool.ts"],"names":[],"mappings":";;;AAKA,mEAA8D;AAU9D,MAAsB,aAAa;IAM1B,QAAQ,CAAC,IAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IAC5C,CAAC;CASF;AAjBD,sCAiBC;AAED,MAAsB,aAAgC,SAAQ,aAA+B;IAG3E,OAAO,CAAC,EACtB,SAAS,EACT,IAAI,EACJ,eAAe,EACf,aAAa,EACb,gBAAgB,GACsB;QACtC,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CACzC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAC9B,CAAC;QAClC,OAAO,IAAA,2CAAmB,EAAC;YACzB,gBAAgB;YAChB,SAAS;YACT,eAAe;YACf,MAAM,EAAE,IAAI;YACZ,aAAa;SACd,CAAC,CAAC;IACL,CAAC;CACF;AArBD,sCAqBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkedapi/mcp",
3
- "version": "0.3.11",
3
+ "version": "1.0.1",
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,8 +30,8 @@
30
30
  "author": "Linked API",
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
+ "@linkedapi/node": "^1.2.18",
33
34
  "@modelcontextprotocol/sdk": "^1.17.4",
34
- "@linkedapi/node": "^1.2.15",
35
35
  "zod": "^4.1.1"
36
36
  },
37
37
  "devDependencies": {
package/src/index.ts CHANGED
@@ -17,6 +17,9 @@ import { LinkedApiProgressNotification } from './utils/types';
17
17
 
18
18
  function deriveClientFromUserAgent(userAgent: string): string {
19
19
  const ua = userAgent.toLowerCase();
20
+ if (ua.includes('codex')) return 'codex';
21
+ if (ua.includes('claude-code') || ua.includes('claude code')) return 'claude-code';
22
+ if (ua.includes('claude') || ua.includes('anthropic')) return 'claude';
20
23
  if (ua.includes('cursor')) return 'cursor';
21
24
  if (ua.includes('windsurf')) return 'windsurf';
22
25
  if (ua.includes('vscode') || ua.includes('visual studio code')) return 'vscode';
@@ -33,6 +36,14 @@ function deriveClientFromUserAgent(userAgent: string): string {
33
36
  return userAgent;
34
37
  }
35
38
 
39
+ function normalizeHeaderValue(value: string | Array<string> | undefined): string | undefined {
40
+ if (Array.isArray(value)) {
41
+ return value.find((item) => item.trim().length > 0)?.trim();
42
+ }
43
+ const normalizedValue = value?.trim();
44
+ return normalizedValue && normalizedValue.length > 0 ? normalizedValue : undefined;
45
+ }
46
+
36
47
  function getArgValue(flag: string): string | undefined {
37
48
  const index = process.argv.indexOf(flag);
38
49
  if (index === -1) return undefined;
@@ -61,8 +72,7 @@ async function main() {
61
72
  },
62
73
  );
63
74
 
64
- const progressCallback = (_notification: LinkedApiProgressNotification) => {};
65
- const linkedApiServer = new LinkedApiMCPServer(progressCallback);
75
+ const linkedApiServer = new LinkedApiMCPServer();
66
76
 
67
77
  server.setRequestHandler(ListToolsRequestSchema, async () => {
68
78
  const tools = linkedApiServer.getTools();
@@ -118,22 +128,49 @@ async function main() {
118
128
  const localLinkedApiToken = process.env.LINKED_API_TOKEN;
119
129
  const localIdentificationToken = process.env.IDENTIFICATION_TOKEN;
120
130
  const headers = extra?.requestInfo?.headers ?? {};
121
- const linkedApiToken = (headers['linked-api-token'] ?? localLinkedApiToken ?? '') as string;
122
- const identificationToken = (headers['identification-token'] ??
123
- localIdentificationToken ??
124
- '') as string;
125
- let mcpClient = (headers['client'] ?? '') as string;
131
+ const linkedApiToken =
132
+ normalizeHeaderValue(headers['linked-api-token']) ?? localLinkedApiToken ?? '';
133
+ const identificationToken =
134
+ normalizeHeaderValue(headers['identification-token']) ?? localIdentificationToken ?? '';
135
+ let mcpClient = normalizeHeaderValue(headers['client']) ?? '';
126
136
  if (!mcpClient) {
127
- const userAgentHeader = headers['user-agent'];
128
- if (typeof userAgentHeader === 'string' && userAgentHeader.trim().length > 0) {
137
+ const userAgentHeader = normalizeHeaderValue(headers['user-agent']);
138
+ if (userAgentHeader) {
129
139
  mcpClient = deriveClientFromUserAgent(userAgentHeader);
130
140
  }
131
141
  }
142
+ const progressCallback = (notification: LinkedApiProgressNotification): void => {
143
+ const { progressToken, progress, total, message } = notification;
144
+ if (progressToken === undefined) {
145
+ return;
146
+ }
147
+
148
+ void extra
149
+ .sendNotification({
150
+ method: 'notifications/progress',
151
+ params: {
152
+ progressToken,
153
+ progress,
154
+ total,
155
+ message,
156
+ },
157
+ })
158
+ .catch((error: unknown) => {
159
+ logger.warn(
160
+ {
161
+ toolName: request.params.name,
162
+ error: error instanceof Error ? error.message : String(error),
163
+ },
164
+ 'Failed to send MCP progress notification',
165
+ );
166
+ });
167
+ };
132
168
 
133
169
  const result = await linkedApiServer.executeWithTokens(request.params, {
134
170
  linkedApiToken,
135
171
  identificationToken,
136
172
  mcpClient,
173
+ progressCallback,
137
174
  });
138
175
  return result;
139
176
  } catch (error) {
@@ -1,4 +1,4 @@
1
- import { LinkedApi, LinkedApiError, TLinkedApiConfig } from '@linkedapi/node';
1
+ import { LinkedApi, LinkedApiAdmin, LinkedApiError, TLinkedApiConfig } from '@linkedapi/node';
2
2
  import { buildLinkedApiHttpClient } from '@linkedapi/node/dist/core';
3
3
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
4
4
 
@@ -12,20 +12,47 @@ import {
12
12
  LinkedApiProgressNotification,
13
13
  } from './utils/types';
14
14
 
15
+ const BACKGROUND_WORKFLOW_DESCRIPTION =
16
+ `Linked API actions are queued into a cloud-browser workflow and may take several minutes. This is normal LinkedIn automation behavior, not a failed request. If the response contains workflowId and operationName, do not retry this tool; call get_workflow_result with those exact values until the final result is returned.` as const;
17
+ const NON_WORKFLOW_TOOL_NAMES = new Set<string>(['get_workflow_result', 'get_api_usage'] as const);
18
+ const NOOP_PROGRESS_CALLBACK = (_notification: LinkedApiProgressNotification): void => {};
19
+
20
+ interface TExecuteWithTokensOptions extends TLinkedApiConfig {
21
+ mcpClient: string;
22
+ progressCallback?: (notification: LinkedApiProgressNotification) => void;
23
+ }
24
+
15
25
  export class LinkedApiMCPServer {
16
26
  private tools: LinkedApiTools;
17
27
 
18
- constructor(progressCallback: (notification: LinkedApiProgressNotification) => void) {
19
- this.tools = new LinkedApiTools(progressCallback);
28
+ constructor() {
29
+ this.tools = new LinkedApiTools();
20
30
  }
21
31
 
22
32
  public getTools(): Tool[] {
23
- return this.tools.tools.map((tool) => tool.getTool());
33
+ const linkedApiTools = this.tools.tools.map((tool) => {
34
+ const definition = tool.getTool();
35
+ if (NON_WORKFLOW_TOOL_NAMES.has(definition.name)) {
36
+ return definition;
37
+ }
38
+
39
+ return {
40
+ ...definition,
41
+ description: `${definition.description}\n\n${BACKGROUND_WORKFLOW_DESCRIPTION}`,
42
+ };
43
+ });
44
+ const adminTools = this.tools.adminTools.map((tool) => tool.getTool());
45
+ return [...linkedApiTools, ...adminTools];
24
46
  }
25
47
 
26
48
  public async executeWithTokens(
27
49
  request: ExtendedCallToolRequest['params'],
28
- { linkedApiToken, identificationToken, mcpClient }: TLinkedApiConfig & { mcpClient: string },
50
+ {
51
+ linkedApiToken,
52
+ identificationToken,
53
+ mcpClient,
54
+ progressCallback = NOOP_PROGRESS_CALLBACK,
55
+ }: TExecuteWithTokensOptions,
29
56
  ): Promise<CallToolResult> {
30
57
  const workflowTimeout = defineRequestTimeoutInSeconds(mcpClient) * 1000;
31
58
  logger.info(
@@ -37,21 +64,61 @@ export class LinkedApiMCPServer {
37
64
  },
38
65
  'Tool execution started',
39
66
  );
40
- const linkedapi = new LinkedApi(
41
- buildLinkedApiHttpClient(
42
- {
43
- linkedApiToken: linkedApiToken,
44
- identificationToken: identificationToken,
45
- },
46
- 'mcp',
47
- ),
48
- );
49
-
50
67
  const { name: toolName, arguments: args, _meta } = request;
51
68
  const progressToken = _meta?.progressToken;
52
69
 
53
70
  const startTime = Date.now();
54
71
  try {
72
+ const adminTool = this.tools.adminToolByName(toolName);
73
+ if (adminTool) {
74
+ const admin = new LinkedApiAdmin({
75
+ linkedApiToken,
76
+ client: 'mcp',
77
+ });
78
+ const params = adminTool.validate(args);
79
+ const result = await adminTool.execute({
80
+ admin,
81
+ args: params,
82
+ });
83
+ const duration = this.calculateDuration(startTime);
84
+ logger.info(
85
+ {
86
+ toolName,
87
+ duration,
88
+ data: result,
89
+ },
90
+ 'Tool execution successful',
91
+ );
92
+ if (result === undefined) {
93
+ return {
94
+ content: [
95
+ {
96
+ type: 'text' as const,
97
+ text: 'Completed',
98
+ },
99
+ ],
100
+ };
101
+ }
102
+ return {
103
+ content: [
104
+ {
105
+ type: 'text' as const,
106
+ text: JSON.stringify(result, null, 2),
107
+ },
108
+ ],
109
+ };
110
+ }
111
+
112
+ const linkedapi = new LinkedApi(
113
+ buildLinkedApiHttpClient(
114
+ {
115
+ linkedApiToken: linkedApiToken,
116
+ identificationToken: identificationToken,
117
+ },
118
+ 'mcp',
119
+ ),
120
+ );
121
+
55
122
  const tool = this.tools.toolByName(toolName);
56
123
  if (!tool) {
57
124
  throw new Error(`Unknown tool: ${toolName}`);
@@ -59,9 +126,10 @@ export class LinkedApiMCPServer {
59
126
  const params = tool.validate(args);
60
127
  const { data, errors } = await tool.execute({
61
128
  linkedapi,
62
- args: params,
129
+ args: params as never,
63
130
  workflowTimeout,
64
131
  progressToken,
132
+ progressCallback,
65
133
  });
66
134
  const endTime = Date.now();
67
135
  const duration = `${((endTime - startTime) / 1000).toFixed(2)} seconds`;
@@ -75,6 +143,7 @@ export class LinkedApiMCPServer {
75
143
  'Tool execution failed',
76
144
  );
77
145
  return {
146
+ isError: true,
78
147
  content: [
79
148
  {
80
149
  type: 'text' as const,
@@ -128,6 +197,8 @@ export class LinkedApiMCPServer {
128
197
  text: JSON.stringify(body, null, 2),
129
198
  },
130
199
  ],
200
+ structuredContent: body,
201
+ isError: error.type !== 'workflowTimeout',
131
202
  };
132
203
  }
133
204
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -1,3 +1,16 @@
1
+ import LinkedApi, { TMappedResponse } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+
4
+ import { AdminConnectAccountTool } from './tools/admin-connect-account.js';
5
+ import { AdminDisconnectAccountTool } from './tools/admin-disconnect-account.js';
6
+ import { AdminGetAccountsTool } from './tools/admin-get-accounts.js';
7
+ import { AdminGetLimitsUsageTool } from './tools/admin-get-limits-usage.js';
8
+ import { AdminGetSeatsTool } from './tools/admin-get-seats.js';
9
+ import { AdminGetSubscriptionStatusTool } from './tools/admin-get-subscription-status.js';
10
+ import { AdminRegenerateTokenTool } from './tools/admin-regenerate-token.js';
11
+ import { AdminResetLimitsTool } from './tools/admin-reset-limits.js';
12
+ import { AdminSetLimitsTool } from './tools/admin-set-limits.js';
13
+ import { AdminSetSeatsTool } from './tools/admin-set-seats.js';
1
14
  import { CheckConnectionStatusTool } from './tools/check-connection-status.js';
2
15
  import { CommentOnPostTool } from './tools/comment-on-post.js';
3
16
  import { CreatePostTool } from './tools/create-post.js';
@@ -25,48 +38,85 @@ import { SearchPeopleTool } from './tools/search-people.js';
25
38
  import { SendConnectionRequestTool } from './tools/send-connection-request.js';
26
39
  import { SendMessageTool } from './tools/send-message.js';
27
40
  import { WithdrawConnectionRequestTool } from './tools/withdraw-connection-request.js';
28
- import { LinkedApiTool } from './utils/linked-api-tool.js';
41
+ import { AdminTool } from './utils/admin-tool.js';
29
42
  import { LinkedApiProgressNotification } from './utils/types.js';
30
43
 
44
+ interface TRegisteredLinkedApiTool {
45
+ readonly name: string;
46
+ getTool(): Tool;
47
+ validate(args: unknown): unknown;
48
+ execute({
49
+ linkedapi,
50
+ args,
51
+ workflowTimeout,
52
+ progressToken,
53
+ progressCallback,
54
+ }: {
55
+ linkedapi: LinkedApi;
56
+ args: never;
57
+ workflowTimeout: number;
58
+ progressToken?: string | number;
59
+ progressCallback: (progress: LinkedApiProgressNotification) => void;
60
+ }): Promise<TMappedResponse<unknown>>;
61
+ }
62
+
31
63
  export class LinkedApiTools {
32
- public readonly tools: ReadonlyArray<LinkedApiTool<unknown, unknown>>;
64
+ public readonly tools: ReadonlyArray<TRegisteredLinkedApiTool>;
65
+ public readonly adminTools: ReadonlyArray<AdminTool<unknown, unknown>>;
33
66
 
34
- constructor(progressCallback: (progress: LinkedApiProgressNotification) => void) {
67
+ constructor() {
35
68
  this.tools = [
36
69
  // Standard tools
37
- new SendMessageTool(progressCallback),
38
- new GetConversationTool(progressCallback),
39
- new CheckConnectionStatusTool(progressCallback),
40
- new RetrieveConnectionsTool(progressCallback),
41
- new SendConnectionRequestTool(progressCallback),
42
- new WithdrawConnectionRequestTool(progressCallback),
43
- new RetrievePendingRequestsTool(progressCallback),
44
- new RemoveConnectionTool(progressCallback),
45
- new SearchCompaniesTool(progressCallback),
46
- new SearchPeopleTool(progressCallback),
47
- new FetchCompanyTool(progressCallback),
48
- new FetchPersonTool(progressCallback),
49
- new FetchPostTool(progressCallback),
50
- new ReactToPostTool(progressCallback),
51
- new CommentOnPostTool(progressCallback),
52
- new CreatePostTool(progressCallback),
53
- new RetrieveSSITool(progressCallback),
54
- new RetrievePerformanceTool(progressCallback),
70
+ new SendMessageTool(),
71
+ new GetConversationTool(),
72
+ new CheckConnectionStatusTool(),
73
+ new RetrieveConnectionsTool(),
74
+ new SendConnectionRequestTool(),
75
+ new WithdrawConnectionRequestTool(),
76
+ new RetrievePendingRequestsTool(),
77
+ new RemoveConnectionTool(),
78
+ new SearchCompaniesTool(),
79
+ new SearchPeopleTool(),
80
+ new FetchCompanyTool(),
81
+ new FetchPersonTool(),
82
+ new FetchPostTool(),
83
+ new ReactToPostTool(),
84
+ new CommentOnPostTool(),
85
+ new CreatePostTool(),
86
+ new RetrieveSSITool(),
87
+ new RetrievePerformanceTool(),
55
88
  // Sales Navigator tools
56
- new NvSendMessageTool(progressCallback),
57
- new NvGetConversationTool(progressCallback),
58
- new NvSearchCompaniesTool(progressCallback),
59
- new NvSearchPeopleTool(progressCallback),
60
- new NvFetchCompanyTool(progressCallback),
61
- new NvFetchPersonTool(progressCallback),
89
+ new NvSendMessageTool(),
90
+ new NvGetConversationTool(),
91
+ new NvSearchCompaniesTool(),
92
+ new NvSearchPeopleTool(),
93
+ new NvFetchCompanyTool(),
94
+ new NvFetchPersonTool(),
62
95
  // Other tools
63
- new ExecuteCustomWorkflowTool(progressCallback),
64
- new GetWorkflowResultTool(progressCallback),
65
- new GetApiUsageTool(progressCallback),
96
+ new ExecuteCustomWorkflowTool(),
97
+ new GetWorkflowResultTool(),
98
+ new GetApiUsageTool(),
99
+ ];
100
+
101
+ this.adminTools = [
102
+ new AdminGetSubscriptionStatusTool(),
103
+ new AdminGetSeatsTool(),
104
+ new AdminSetSeatsTool(),
105
+ new AdminGetAccountsTool(),
106
+ new AdminConnectAccountTool(),
107
+ new AdminDisconnectAccountTool(),
108
+ new AdminRegenerateTokenTool(),
109
+ new AdminGetLimitsUsageTool(),
110
+ new AdminSetLimitsTool(),
111
+ new AdminResetLimitsTool(),
66
112
  ];
67
113
  }
68
114
 
69
- public toolByName(name: string): LinkedApiTool<unknown, unknown> | undefined {
115
+ public toolByName(name: string): TRegisteredLinkedApiTool | undefined {
70
116
  return this.tools.find((tool) => tool.name === name);
71
117
  }
118
+
119
+ public adminToolByName(name: string): AdminTool<unknown, unknown> | undefined {
120
+ return this.adminTools.find((tool) => tool.name === name);
121
+ }
72
122
  }
@@ -0,0 +1,34 @@
1
+ import { LinkedApiAdmin, TCreateConnectionSessionResult } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import z from 'zod';
4
+
5
+ import { AdminTool } from '../utils/admin-tool.js';
6
+
7
+ export class AdminConnectAccountTool extends AdminTool<
8
+ Record<string, never>,
9
+ TCreateConnectionSessionResult
10
+ > {
11
+ public readonly name = 'admin_connect_account';
12
+ protected readonly schema = z.object({});
13
+
14
+ public override async execute({
15
+ admin,
16
+ }: {
17
+ admin: LinkedApiAdmin;
18
+ args: Record<string, never>;
19
+ }): Promise<TCreateConnectionSessionResult> {
20
+ return await admin.accounts.createConnectionSession();
21
+ }
22
+
23
+ public override getTool(): Tool {
24
+ return {
25
+ name: this.name,
26
+ description:
27
+ 'Create a connection session to connect a new LinkedIn account. Returns a sessionId and connectionLink that must be opened in a browser.',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {},
31
+ },
32
+ };
33
+ }
34
+ }
@@ -0,0 +1,40 @@
1
+ import { LinkedApiAdmin, TDisconnectParams } from '@linkedapi/node';
2
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
+ import z from 'zod';
4
+
5
+ import { AdminTool } from '../utils/admin-tool.js';
6
+
7
+ export class AdminDisconnectAccountTool extends AdminTool<TDisconnectParams, void> {
8
+ public readonly name = 'admin_disconnect_account';
9
+ protected readonly schema = z.object({
10
+ accountId: z.string(),
11
+ });
12
+
13
+ public override async execute({
14
+ admin,
15
+ args,
16
+ }: {
17
+ admin: LinkedApiAdmin;
18
+ args: TDisconnectParams;
19
+ }): Promise<void> {
20
+ await admin.accounts.disconnect(args);
21
+ }
22
+
23
+ public override getTool(): Tool {
24
+ return {
25
+ name: this.name,
26
+ description:
27
+ 'Disconnect a LinkedIn account. This action is irreversible — the account must be reconnected from scratch.',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {
31
+ accountId: {
32
+ type: 'string',
33
+ description: 'UUID of the account to disconnect',
34
+ },
35
+ },
36
+ required: ['accountId'],
37
+ },
38
+ };
39
+ }
40
+ }