@burdenoff/mcp-libs 2026.1026.1 → 2026.1028.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 (184) hide show
  1. package/dist/{chunk-S2DM4KCX.js → chunk-GTKSADBI.js} +3 -3
  2. package/dist/{chunk-S2DM4KCX.js.map → chunk-GTKSADBI.js.map} +1 -1
  3. package/dist/{chunk-FHXCNP2U.js → chunk-J74ZKEXL.js} +75 -7
  4. package/dist/chunk-J74ZKEXL.js.map +1 -0
  5. package/dist/core/index.cjs +74 -4
  6. package/dist/core/index.cjs.map +1 -1
  7. package/dist/core/index.d.ts +1 -1
  8. package/dist/core/index.js +1 -1
  9. package/dist/core/server.d.ts +3 -0
  10. package/dist/core/tool-governance.d.ts +11 -0
  11. package/dist/index.cjs +65 -5
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/modules/adaptercloud/index.cjs +1 -0
  15. package/dist/modules/adaptercloud/index.cjs.map +1 -1
  16. package/dist/modules/adaptercloud/index.js +1 -1
  17. package/dist/modules/artistrybase/index.cjs +1 -0
  18. package/dist/modules/artistrybase/index.cjs.map +1 -1
  19. package/dist/modules/artistrybase/index.js +1 -1
  20. package/dist/modules/assethandler/index.cjs +1 -0
  21. package/dist/modules/assethandler/index.cjs.map +1 -1
  22. package/dist/modules/assethandler/index.js +1 -1
  23. package/dist/modules/atheletebridge/index.cjs +1 -0
  24. package/dist/modules/atheletebridge/index.cjs.map +1 -1
  25. package/dist/modules/atheletebridge/index.js +1 -1
  26. package/dist/modules/auth/index.cjs +1 -0
  27. package/dist/modules/auth/index.cjs.map +1 -1
  28. package/dist/modules/auth/index.js +3 -3
  29. package/dist/modules/billing/index.cjs +1 -0
  30. package/dist/modules/billing/index.cjs.map +1 -1
  31. package/dist/modules/billing/index.js +1 -1
  32. package/dist/modules/brainyrich/index.cjs +1 -0
  33. package/dist/modules/brainyrich/index.cjs.map +1 -1
  34. package/dist/modules/brainyrich/index.js +1 -1
  35. package/dist/modules/buildmyiq/index.cjs +1 -0
  36. package/dist/modules/buildmyiq/index.cjs.map +1 -1
  37. package/dist/modules/buildmyiq/index.js +1 -1
  38. package/dist/modules/channels/index.cjs +1 -0
  39. package/dist/modules/channels/index.cjs.map +1 -1
  40. package/dist/modules/channels/index.js +1 -1
  41. package/dist/modules/collabkin/index.cjs +1 -0
  42. package/dist/modules/collabkin/index.cjs.map +1 -1
  43. package/dist/modules/collabkin/index.js +1 -1
  44. package/dist/modules/comradecircle/index.cjs +1 -0
  45. package/dist/modules/comradecircle/index.cjs.map +1 -1
  46. package/dist/modules/comradecircle/index.js +1 -1
  47. package/dist/modules/conversations/index.cjs +1 -0
  48. package/dist/modules/conversations/index.cjs.map +1 -1
  49. package/dist/modules/conversations/index.js +1 -1
  50. package/dist/modules/coolandlovely/index.cjs +1 -0
  51. package/dist/modules/coolandlovely/index.cjs.map +1 -1
  52. package/dist/modules/coolandlovely/index.js +1 -1
  53. package/dist/modules/cosmicintersection/index.cjs +1 -0
  54. package/dist/modules/cosmicintersection/index.cjs.map +1 -1
  55. package/dist/modules/cosmicintersection/index.js +1 -1
  56. package/dist/modules/crewfoundry/index.cjs +1 -0
  57. package/dist/modules/crewfoundry/index.cjs.map +1 -1
  58. package/dist/modules/crewfoundry/index.js +1 -1
  59. package/dist/modules/devportal/index.cjs +1 -0
  60. package/dist/modules/devportal/index.cjs.map +1 -1
  61. package/dist/modules/devportal/index.js +1 -1
  62. package/dist/modules/ecoimpacthub/index.cjs +1 -0
  63. package/dist/modules/ecoimpacthub/index.cjs.map +1 -1
  64. package/dist/modules/ecoimpacthub/index.js +1 -1
  65. package/dist/modules/eventfullymanaged/index.cjs +1 -0
  66. package/dist/modules/eventfullymanaged/index.cjs.map +1 -1
  67. package/dist/modules/eventfullymanaged/index.js +1 -1
  68. package/dist/modules/export/index.cjs +1 -0
  69. package/dist/modules/export/index.cjs.map +1 -1
  70. package/dist/modules/export/index.js +1 -1
  71. package/dist/modules/files/index.cjs +1 -0
  72. package/dist/modules/files/index.cjs.map +1 -1
  73. package/dist/modules/files/index.js +1 -1
  74. package/dist/modules/fluidgrids/index.cjs +1 -0
  75. package/dist/modules/fluidgrids/index.cjs.map +1 -1
  76. package/dist/modules/fluidgrids/index.js +1 -1
  77. package/dist/modules/ggnomad/index.cjs +1 -0
  78. package/dist/modules/ggnomad/index.cjs.map +1 -1
  79. package/dist/modules/ggnomad/index.js +1 -1
  80. package/dist/modules/govcitizenhub/index.cjs +1 -0
  81. package/dist/modules/govcitizenhub/index.cjs.map +1 -1
  82. package/dist/modules/govcitizenhub/index.js +1 -1
  83. package/dist/modules/groups/index.cjs +1 -0
  84. package/dist/modules/groups/index.cjs.map +1 -1
  85. package/dist/modules/groups/index.js +1 -1
  86. package/dist/modules/headshotmarketing/index.cjs +1 -0
  87. package/dist/modules/headshotmarketing/index.cjs.map +1 -1
  88. package/dist/modules/headshotmarketing/index.js +1 -1
  89. package/dist/modules/health/index.cjs +1 -0
  90. package/dist/modules/health/index.cjs.map +1 -1
  91. package/dist/modules/health/index.js +1 -1
  92. package/dist/modules/healthybowl/index.cjs +1 -0
  93. package/dist/modules/healthybowl/index.cjs.map +1 -1
  94. package/dist/modules/healthybowl/index.js +1 -1
  95. package/dist/modules/hookmovies/index.cjs +1 -0
  96. package/dist/modules/hookmovies/index.cjs.map +1 -1
  97. package/dist/modules/hookmovies/index.js +1 -1
  98. package/dist/modules/housingvista/index.cjs +1 -0
  99. package/dist/modules/housingvista/index.cjs.map +1 -1
  100. package/dist/modules/housingvista/index.js +1 -1
  101. package/dist/modules/integrations/index.cjs +1 -0
  102. package/dist/modules/integrations/index.cjs.map +1 -1
  103. package/dist/modules/integrations/index.js +1 -1
  104. package/dist/modules/intelwatchtower/index.cjs +1 -0
  105. package/dist/modules/intelwatchtower/index.cjs.map +1 -1
  106. package/dist/modules/intelwatchtower/index.js +1 -1
  107. package/dist/modules/kadaikodi/index.cjs +1 -0
  108. package/dist/modules/kadaikodi/index.cjs.map +1 -1
  109. package/dist/modules/kadaikodi/index.js +1 -1
  110. package/dist/modules/labsofscience/index.cjs +1 -0
  111. package/dist/modules/labsofscience/index.cjs.map +1 -1
  112. package/dist/modules/labsofscience/index.js +1 -1
  113. package/dist/modules/manufacturedops/index.cjs +1 -0
  114. package/dist/modules/manufacturedops/index.cjs.map +1 -1
  115. package/dist/modules/manufacturedops/index.js +1 -1
  116. package/dist/modules/movethewheels/index.cjs +1 -0
  117. package/dist/modules/movethewheels/index.cjs.map +1 -1
  118. package/dist/modules/movethewheels/index.js +1 -1
  119. package/dist/modules/mybodyshield/index.cjs +1 -0
  120. package/dist/modules/mybodyshield/index.cjs.map +1 -1
  121. package/dist/modules/mybodyshield/index.js +1 -1
  122. package/dist/modules/notifications/index.cjs +1 -0
  123. package/dist/modules/notifications/index.cjs.map +1 -1
  124. package/dist/modules/notifications/index.js +1 -1
  125. package/dist/modules/organizations/index.cjs +1 -0
  126. package/dist/modules/organizations/index.cjs.map +1 -1
  127. package/dist/modules/organizations/index.js +1 -1
  128. package/dist/modules/planmagnet/index.js +1 -1
  129. package/dist/modules/products/index.cjs +1 -0
  130. package/dist/modules/products/index.cjs.map +1 -1
  131. package/dist/modules/products/index.js +1 -1
  132. package/dist/modules/proserviceworld/index.cjs +1 -0
  133. package/dist/modules/proserviceworld/index.cjs.map +1 -1
  134. package/dist/modules/proserviceworld/index.js +1 -1
  135. package/dist/modules/rbac/index.cjs +1 -0
  136. package/dist/modules/rbac/index.cjs.map +1 -1
  137. package/dist/modules/rbac/index.js +1 -1
  138. package/dist/modules/sandbox/index.cjs +1 -0
  139. package/dist/modules/sandbox/index.cjs.map +1 -1
  140. package/dist/modules/sandbox/index.js +1 -1
  141. package/dist/modules/scheduler/index.cjs +1 -0
  142. package/dist/modules/scheduler/index.cjs.map +1 -1
  143. package/dist/modules/scheduler/index.js +1 -1
  144. package/dist/modules/security/index.cjs +1 -0
  145. package/dist/modules/security/index.cjs.map +1 -1
  146. package/dist/modules/security/index.js +1 -1
  147. package/dist/modules/semanticfed/index.cjs +1 -0
  148. package/dist/modules/semanticfed/index.cjs.map +1 -1
  149. package/dist/modules/semanticfed/index.js +1 -1
  150. package/dist/modules/store/index.cjs +1 -0
  151. package/dist/modules/store/index.cjs.map +1 -1
  152. package/dist/modules/store/index.js +1 -1
  153. package/dist/modules/subscriberbot/index.cjs +1 -0
  154. package/dist/modules/subscriberbot/index.cjs.map +1 -1
  155. package/dist/modules/subscriberbot/index.js +1 -1
  156. package/dist/modules/support/index.cjs +1 -0
  157. package/dist/modules/support/index.cjs.map +1 -1
  158. package/dist/modules/support/index.js +1 -1
  159. package/dist/modules/tags/index.cjs +1 -0
  160. package/dist/modules/tags/index.cjs.map +1 -1
  161. package/dist/modules/tags/index.js +1 -1
  162. package/dist/modules/technospam/index.cjs +1 -0
  163. package/dist/modules/technospam/index.cjs.map +1 -1
  164. package/dist/modules/technospam/index.js +1 -1
  165. package/dist/modules/theculturepost/index.cjs +1 -0
  166. package/dist/modules/theculturepost/index.cjs.map +1 -1
  167. package/dist/modules/theculturepost/index.js +1 -1
  168. package/dist/modules/theglobalfuel/index.cjs +1 -0
  169. package/dist/modules/theglobalfuel/index.cjs.map +1 -1
  170. package/dist/modules/theglobalfuel/index.js +1 -1
  171. package/dist/modules/timecampus/index.cjs +1 -0
  172. package/dist/modules/timecampus/index.cjs.map +1 -1
  173. package/dist/modules/timecampus/index.js +1 -1
  174. package/dist/modules/tours/index.cjs +1 -0
  175. package/dist/modules/tours/index.cjs.map +1 -1
  176. package/dist/modules/tours/index.js +1 -1
  177. package/dist/modules/vibecontrols/index.cjs +1 -0
  178. package/dist/modules/vibecontrols/index.cjs.map +1 -1
  179. package/dist/modules/vibecontrols/index.js +2 -2
  180. package/dist/modules/workspaces/index.cjs +1 -0
  181. package/dist/modules/workspaces/index.cjs.map +1 -1
  182. package/dist/modules/workspaces/index.js +1 -1
  183. package/package.json +1 -1
  184. package/dist/chunk-FHXCNP2U.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -7,9 +7,9 @@ var graphqlRequest = require('graphql-request');
7
7
  var fetch = require('cross-fetch');
8
8
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
9
9
  var types_js = require('@modelcontextprotocol/sdk/types.js');
10
+ var crypto = require('crypto');
10
11
  var zod = require('zod');
11
12
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
12
- var crypto = require('crypto');
13
13
  var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
14
14
 
15
15
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -731,6 +731,56 @@ function inferReadOnlyHint(toolName) {
731
731
  }
732
732
 
733
733
  // src/core/tool-governance.ts
734
+ function canonicalJson(value, seen = /* @__PURE__ */ new Set()) {
735
+ if (value === null || value === void 0) return "null";
736
+ if (typeof value === "number") return Number.isFinite(value) ? JSON.stringify(value) : "null";
737
+ if (typeof value === "string" || typeof value === "boolean") return JSON.stringify(value);
738
+ if (typeof value === "bigint") return JSON.stringify(value.toString());
739
+ if (typeof value !== "object") return "null";
740
+ if (seen.has(value)) return "null";
741
+ seen.add(value);
742
+ try {
743
+ if (Array.isArray(value))
744
+ return `[${value.map((item) => canonicalJson(item, seen)).join(",")}]`;
745
+ const record = value;
746
+ const members = Object.keys(record).filter((key) => record[key] !== void 0).sort().map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key], seen)}`);
747
+ return `{${members.join(",")}}`;
748
+ } finally {
749
+ seen.delete(value);
750
+ }
751
+ }
752
+ function toolArgsSha256(args) {
753
+ return crypto.createHash("sha256").update(canonicalJson(args), "utf8").digest("hex");
754
+ }
755
+ function isErrorResult(result) {
756
+ return typeof result === "object" && result !== null && result.isError === true;
757
+ }
758
+ function wrapAuditedHandler(name, handler, onToolCall) {
759
+ return async (...callbackArgs) => {
760
+ const started = Date.now();
761
+ const args = callbackArgs.length === 2 ? callbackArgs[0] : {};
762
+ const report = (status, error) => {
763
+ try {
764
+ onToolCall({
765
+ name,
766
+ argsSha256: toolArgsSha256(args),
767
+ status,
768
+ durationMs: Date.now() - started,
769
+ ...error ? { error } : {}
770
+ });
771
+ } catch {
772
+ }
773
+ };
774
+ try {
775
+ const result = await handler(...callbackArgs);
776
+ report(isErrorResult(result) ? "error" : "ok");
777
+ return result;
778
+ } catch (error) {
779
+ report("error", error instanceof Error ? error.message : String(error));
780
+ throw error;
781
+ }
782
+ };
783
+ }
734
784
  var CONFIRM_FIELD_DESCRIPTION = "Must be true to execute this destructive tool. The call is rejected (no changes made) if omitted or false.";
735
785
  function resolveAnnotations(name, declared) {
736
786
  const destructiveHint = declared?.destructiveHint ?? inferDestructiveHint(name);
@@ -765,10 +815,11 @@ function wrapServerWithToolGovernance(server, options = {}) {
765
815
  const enforceConfirmation = options.enforceDestructiveConfirmation ?? false;
766
816
  const target = server;
767
817
  const originalRegisterTool = target.registerTool.bind(target);
768
- target.registerTool = (name, config, handler) => {
818
+ const register = (name, config, handler) => {
769
819
  const annotations = resolveAnnotations(name, config.annotations);
820
+ const audited = options.onToolCall ? wrapAuditedHandler(name, handler, options.onToolCall) : handler;
770
821
  if (!enforceConfirmation || !annotations.destructiveHint) {
771
- return originalRegisterTool(name, { ...config, annotations }, handler);
822
+ return originalRegisterTool(name, { ...config, annotations }, audited);
772
823
  }
773
824
  const gatedInputSchema = {
774
825
  ...config.inputSchema ?? {},
@@ -777,9 +828,16 @@ function wrapServerWithToolGovernance(server, options = {}) {
777
828
  return originalRegisterTool(
778
829
  name,
779
830
  { ...config, inputSchema: gatedInputSchema, annotations },
780
- wrapDestructiveHandler(name, handler)
831
+ wrapDestructiveHandler(name, audited)
781
832
  );
782
833
  };
834
+ target.registerTool = (name, config, handler) => {
835
+ const registered = register(name, config, handler);
836
+ if (options.toolFilter && !options.toolFilter(name)) {
837
+ registered?.disable?.();
838
+ }
839
+ return registered;
840
+ };
783
841
  return server;
784
842
  }
785
843
 
@@ -807,7 +865,9 @@ function createMcpServer(ctx, modules, opts) {
807
865
  { capabilities: toServerCapabilities(capabilities) }
808
866
  );
809
867
  wrapServerWithToolGovernance(server, {
810
- enforceDestructiveConfirmation: opts.enforceDestructiveConfirmation
868
+ enforceDestructiveConfirmation: opts.enforceDestructiveConfirmation,
869
+ toolFilter: opts.toolFilter,
870
+ onToolCall: opts.onToolCall
811
871
  });
812
872
  ctx._internal.serverRef.current = server;
813
873
  const inner = server.server ?? server;