mongodb-mcp-server 1.14.0-prerelease.1 → 1.14.0-prerelease.2

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 (152) hide show
  1. package/README.md +38 -0
  2. package/dist/cjs/common/atlas/roles.d.ts +7 -0
  3. package/dist/cjs/common/atlas/roles.d.ts.map +1 -1
  4. package/dist/cjs/common/atlas/roles.js +19 -0
  5. package/dist/cjs/common/atlas/roles.js.map +1 -1
  6. package/dist/cjs/common/logging/loggerBase.d.ts +0 -1
  7. package/dist/cjs/common/logging/loggerBase.d.ts.map +1 -1
  8. package/dist/cjs/common/logging/loggerBase.js +5 -3
  9. package/dist/cjs/common/logging/loggerBase.js.map +1 -1
  10. package/dist/cjs/common/packageInfo.js +1 -1
  11. package/dist/cjs/common/sessionStore.d.ts +49 -2
  12. package/dist/cjs/common/sessionStore.d.ts.map +1 -1
  13. package/dist/cjs/common/sessionStore.js +31 -4
  14. package/dist/cjs/common/sessionStore.js.map +1 -1
  15. package/dist/cjs/helpers/escapeMarkdown.d.ts +5 -0
  16. package/dist/cjs/helpers/escapeMarkdown.d.ts.map +1 -0
  17. package/dist/cjs/helpers/escapeMarkdown.js +10 -0
  18. package/dist/cjs/helpers/escapeMarkdown.js.map +1 -0
  19. package/dist/cjs/helpers/requestIdAttr.d.ts.map +1 -1
  20. package/dist/cjs/helpers/requestIdAttr.js +5 -1
  21. package/dist/cjs/helpers/requestIdAttr.js.map +1 -1
  22. package/dist/cjs/lib.d.ts +1 -1
  23. package/dist/cjs/lib.d.ts.map +1 -1
  24. package/dist/cjs/lib.js +3 -2
  25. package/dist/cjs/lib.js.map +1 -1
  26. package/dist/cjs/tools/args.d.ts +1 -0
  27. package/dist/cjs/tools/args.d.ts.map +1 -1
  28. package/dist/cjs/tools/args.js +5 -3
  29. package/dist/cjs/tools/args.js.map +1 -1
  30. package/dist/cjs/tools/atlas/create/createDBUser.d.ts +24 -2
  31. package/dist/cjs/tools/atlas/create/createDBUser.d.ts.map +1 -1
  32. package/dist/cjs/tools/atlas/create/createDBUser.js +18 -2
  33. package/dist/cjs/tools/atlas/create/createDBUser.js.map +1 -1
  34. package/dist/cjs/tools/atlas/create/createProject.d.ts +3 -3
  35. package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -1
  36. package/dist/cjs/tools/atlas/create/createProject.js +8 -8
  37. package/dist/cjs/tools/atlas/create/createProject.js.map +1 -1
  38. package/dist/cjs/tools/atlas/read/listClusters.d.ts +1 -0
  39. package/dist/cjs/tools/atlas/read/listClusters.d.ts.map +1 -1
  40. package/dist/cjs/tools/atlas/read/listClusters.js +4 -1
  41. package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -1
  42. package/dist/cjs/tools/atlas/streams/discover.d.ts.map +1 -1
  43. package/dist/cjs/tools/atlas/streams/discover.js +8 -8
  44. package/dist/cjs/tools/atlas/streams/discover.js.map +1 -1
  45. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  46. package/dist/cjs/tools/mongodb/delete/deleteMany.js +6 -2
  47. package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
  48. package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
  49. package/dist/cjs/tools/mongodb/delete/dropCollection.js +2 -1
  50. package/dist/cjs/tools/mongodb/delete/dropCollection.js.map +1 -1
  51. package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
  52. package/dist/cjs/tools/mongodb/delete/dropDatabase.js +2 -1
  53. package/dist/cjs/tools/mongodb/delete/dropDatabase.js.map +1 -1
  54. package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
  55. package/dist/cjs/tools/mongodb/delete/dropIndex.js +2 -1
  56. package/dist/cjs/tools/mongodb/delete/dropIndex.js.map +1 -1
  57. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js +3 -3
  58. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
  59. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +3 -3
  60. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  61. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js +2 -2
  62. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  63. package/dist/cjs/tools/mongodb/metadata/dbStats.js +1 -1
  64. package/dist/cjs/tools/mongodb/metadata/dbStats.js.map +1 -1
  65. package/dist/cjs/tools/mongodb/metadata/explain.js +1 -1
  66. package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
  67. package/dist/cjs/tools/mongodb/metadata/listCollections.js +2 -2
  68. package/dist/cjs/tools/mongodb/metadata/listCollections.js.map +1 -1
  69. package/dist/cjs/tools/mongodb/update/renameCollection.js +3 -3
  70. package/dist/cjs/tools/mongodb/update/renameCollection.js.map +1 -1
  71. package/dist/cjs/transports/mcpHttpServer.d.ts.map +1 -1
  72. package/dist/cjs/transports/mcpHttpServer.js +12 -4
  73. package/dist/cjs/transports/mcpHttpServer.js.map +1 -1
  74. package/dist/cjs/transports/monitoringServer.d.ts.map +1 -1
  75. package/dist/cjs/transports/monitoringServer.js +9 -1
  76. package/dist/cjs/transports/monitoringServer.js.map +1 -1
  77. package/dist/esm/common/atlas/roles.d.ts +7 -0
  78. package/dist/esm/common/atlas/roles.d.ts.map +1 -1
  79. package/dist/esm/common/atlas/roles.js +18 -0
  80. package/dist/esm/common/atlas/roles.js.map +1 -1
  81. package/dist/esm/common/logging/loggerBase.d.ts +0 -1
  82. package/dist/esm/common/logging/loggerBase.d.ts.map +1 -1
  83. package/dist/esm/common/logging/loggerBase.js +5 -3
  84. package/dist/esm/common/logging/loggerBase.js.map +1 -1
  85. package/dist/esm/common/packageInfo.js +1 -1
  86. package/dist/esm/common/sessionStore.d.ts +49 -2
  87. package/dist/esm/common/sessionStore.d.ts.map +1 -1
  88. package/dist/esm/common/sessionStore.js +29 -3
  89. package/dist/esm/common/sessionStore.js.map +1 -1
  90. package/dist/esm/helpers/escapeMarkdown.d.ts +5 -0
  91. package/dist/esm/helpers/escapeMarkdown.d.ts.map +1 -0
  92. package/dist/esm/helpers/escapeMarkdown.js +7 -0
  93. package/dist/esm/helpers/escapeMarkdown.js.map +1 -0
  94. package/dist/esm/helpers/requestIdAttr.d.ts.map +1 -1
  95. package/dist/esm/helpers/requestIdAttr.js +5 -1
  96. package/dist/esm/helpers/requestIdAttr.js.map +1 -1
  97. package/dist/esm/lib.d.ts +1 -1
  98. package/dist/esm/lib.d.ts.map +1 -1
  99. package/dist/esm/lib.js +1 -1
  100. package/dist/esm/lib.js.map +1 -1
  101. package/dist/esm/tools/args.d.ts +1 -0
  102. package/dist/esm/tools/args.d.ts.map +1 -1
  103. package/dist/esm/tools/args.js +4 -2
  104. package/dist/esm/tools/args.js.map +1 -1
  105. package/dist/esm/tools/atlas/create/createDBUser.d.ts +24 -2
  106. package/dist/esm/tools/atlas/create/createDBUser.d.ts.map +1 -1
  107. package/dist/esm/tools/atlas/create/createDBUser.js +19 -3
  108. package/dist/esm/tools/atlas/create/createDBUser.js.map +1 -1
  109. package/dist/esm/tools/atlas/create/createProject.d.ts +3 -3
  110. package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -1
  111. package/dist/esm/tools/atlas/create/createProject.js +8 -8
  112. package/dist/esm/tools/atlas/create/createProject.js.map +1 -1
  113. package/dist/esm/tools/atlas/read/listClusters.d.ts +1 -0
  114. package/dist/esm/tools/atlas/read/listClusters.d.ts.map +1 -1
  115. package/dist/esm/tools/atlas/read/listClusters.js +4 -1
  116. package/dist/esm/tools/atlas/read/listClusters.js.map +1 -1
  117. package/dist/esm/tools/atlas/streams/discover.d.ts.map +1 -1
  118. package/dist/esm/tools/atlas/streams/discover.js +8 -8
  119. package/dist/esm/tools/atlas/streams/discover.js.map +1 -1
  120. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  121. package/dist/esm/tools/mongodb/delete/deleteMany.js +6 -2
  122. package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
  123. package/dist/esm/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
  124. package/dist/esm/tools/mongodb/delete/dropCollection.js +2 -1
  125. package/dist/esm/tools/mongodb/delete/dropCollection.js.map +1 -1
  126. package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
  127. package/dist/esm/tools/mongodb/delete/dropDatabase.js +2 -1
  128. package/dist/esm/tools/mongodb/delete/dropDatabase.js.map +1 -1
  129. package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
  130. package/dist/esm/tools/mongodb/delete/dropIndex.js +2 -1
  131. package/dist/esm/tools/mongodb/delete/dropIndex.js.map +1 -1
  132. package/dist/esm/tools/mongodb/metadata/collectionIndexes.js +3 -3
  133. package/dist/esm/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
  134. package/dist/esm/tools/mongodb/metadata/collectionSchema.js +3 -3
  135. package/dist/esm/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  136. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js +2 -2
  137. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  138. package/dist/esm/tools/mongodb/metadata/dbStats.js +1 -1
  139. package/dist/esm/tools/mongodb/metadata/dbStats.js.map +1 -1
  140. package/dist/esm/tools/mongodb/metadata/explain.js +1 -1
  141. package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
  142. package/dist/esm/tools/mongodb/metadata/listCollections.js +2 -2
  143. package/dist/esm/tools/mongodb/metadata/listCollections.js.map +1 -1
  144. package/dist/esm/tools/mongodb/update/renameCollection.js +3 -3
  145. package/dist/esm/tools/mongodb/update/renameCollection.js.map +1 -1
  146. package/dist/esm/transports/mcpHttpServer.d.ts.map +1 -1
  147. package/dist/esm/transports/mcpHttpServer.js +12 -4
  148. package/dist/esm/transports/mcpHttpServer.js.map +1 -1
  149. package/dist/esm/transports/monitoringServer.d.ts.map +1 -1
  150. package/dist/esm/transports/monitoringServer.js +9 -1
  151. package/dist/esm/transports/monitoringServer.js.map +1 -1
  152. package/package.json +3 -3
package/README.md CHANGED
@@ -591,6 +591,44 @@ List of available preview features:
591
591
 
592
592
  - `mcpUI` - Enables an optional web-based UI for interacting with the MCP server.
593
593
 
594
+ #### Monitoring Server (Health Check & Metrics)
595
+
596
+ When running with `--transport http`, you can expose a separate monitoring HTTP server for health checks and metrics. This server is only started when both `monitoringServerHost` and `monitoringServerPort` are set, and it listens on its own host/port (independent from the main `httpHost`/`httpPort`).
597
+
598
+ The features exposed are controlled by `monitoringServerFeatures` (default: `health-check`). Available features and their endpoints:
599
+
600
+ | Feature | Endpoint | Description |
601
+ | -------------- | ---------- | ------------------------------------------------------------------------------------------- |
602
+ | `health-check` | `/health` | Returns `200 OK` with a JSON body describing the server status. Useful for liveness probes. |
603
+ | `metrics` | `/metrics` | Returns server metrics in Prometheus text format. |
604
+
605
+ The `/health` response is sent with `Cache-Control: no-store` and has the following shape (`status` is always `"ok"` while the process is alive):
606
+
607
+ ```json
608
+ {
609
+ "status": "ok",
610
+ "version": "1.13.0",
611
+ "uptimeSeconds": 42,
612
+ "timestamp": "2026-06-20T12:00:00.000Z"
613
+ }
614
+ ```
615
+
616
+ Example: start the server with the monitoring server enabled and call the health-check endpoint:
617
+
618
+ ```shell
619
+ npx -y mongodb-mcp-server@latest --transport http --httpHost 0.0.0.0 --httpPort 3000 --monitoringServerHost 0.0.0.0 --monitoringServerPort 8080 &
620
+ curl http://0.0.0.0:8080/health
621
+ # => {"status":"ok","version":"1.13.0","uptimeSeconds":42,"timestamp":"2026-06-20T12:00:00.000Z"}
622
+ ```
623
+
624
+ To expose both endpoints, pass the features explicitly:
625
+
626
+ ```shell
627
+ npx -y mongodb-mcp-server@latest --transport http --monitoringServerHost 0.0.0.0 --monitoringServerPort 8080 --monitoringServerFeatures health-check,metrics
628
+ ```
629
+
630
+ > **💡 Note:** `healthCheckHost` / `healthCheckPort` are deprecated aliases for `monitoringServerHost` / `monitoringServerPort` and continue to serve the same `/health` endpoint.
631
+
594
632
  ### Atlas API Access
595
633
 
596
634
  To use the Atlas API tools, you'll need to create a service account in MongoDB Atlas:
@@ -1,5 +1,12 @@
1
1
  import type { UserConfig } from "../config/userConfig.js";
2
2
  import type { DatabaseUserRole } from "./openapi.js";
3
+ /**
4
+ * The built-in Atlas database user roles, per the Atlas Admin API
5
+ * (DatabaseUserRole.roleName). Any value outside this set must be a
6
+ * project-scoped custom role.
7
+ * https://www.mongodb.com/docs/atlas/mongodb-users-roles-and-privileges/
8
+ */
9
+ export declare const BUILT_IN_DB_USER_ROLES: readonly ["atlasAdmin", "backup", "clusterMonitor", "dbAdmin", "dbAdminAnyDatabase", "enableSharding", "read", "readAnyDatabase", "readWrite", "readWriteAnyDatabase"];
3
10
  /**
4
11
  * Get the default role name for the database user based on the Atlas Admin API
5
12
  * https://www.mongodb.com/docs/atlas/mongodb-users-roles-and-privileges/
@@ -1 +1 @@
1
- {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../../src/common/atlas/roles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYrD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAe7E"}
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../../src/common/atlas/roles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,wKAWzB,CAAC;AAYX;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAe7E"}
@@ -1,6 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BUILT_IN_DB_USER_ROLES = void 0;
3
4
  exports.getDefaultRoleFromConfig = getDefaultRoleFromConfig;
5
+ /**
6
+ * The built-in Atlas database user roles, per the Atlas Admin API
7
+ * (DatabaseUserRole.roleName). Any value outside this set must be a
8
+ * project-scoped custom role.
9
+ * https://www.mongodb.com/docs/atlas/mongodb-users-roles-and-privileges/
10
+ */
11
+ exports.BUILT_IN_DB_USER_ROLES = [
12
+ "atlasAdmin",
13
+ "backup",
14
+ "clusterMonitor",
15
+ "dbAdmin",
16
+ "dbAdminAnyDatabase",
17
+ "enableSharding",
18
+ "read",
19
+ "readAnyDatabase",
20
+ "readWrite",
21
+ "readWriteAnyDatabase",
22
+ ];
4
23
  const readWriteRole = {
5
24
  roleName: "readWriteAnyDatabase",
6
25
  databaseName: "admin",
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../../src/common/atlas/roles.ts"],"names":[],"mappings":";;AAiBA,4DAeC;AA7BD,MAAM,aAAa,GAAqB;IACpC,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,OAAO;CACxB,CAAC;AAEF,MAAM,YAAY,GAAqB;IACnC,QAAQ,EAAE,iBAAiB;IAC3B,YAAY,EAAE,OAAO;CACxB,CAAC;AAEF;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,MAAkB;IACvD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,kEAAkE;IAClE,IACI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC1C,CAAC;QACC,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../../src/common/atlas/roles.ts"],"names":[],"mappings":";;;AAoCA,4DAeC;AAhDD;;;;;GAKG;AACU,QAAA,sBAAsB,GAAG;IAClC,YAAY;IACZ,QAAQ;IACR,gBAAgB;IAChB,SAAS;IACT,oBAAoB;IACpB,gBAAgB;IAChB,MAAM;IACN,iBAAiB;IACjB,WAAW;IACX,sBAAsB;CAChB,CAAC;AAEX,MAAM,aAAa,GAAqB;IACpC,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,OAAO;CACxB,CAAC;AAEF,MAAM,YAAY,GAAqB;IACnC,QAAQ,EAAE,iBAAiB;IAC3B,YAAY,EAAE,OAAO;CACxB,CAAC;AAEF;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,MAAkB;IACvD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,kEAAkE;IAClE,IACI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC1C,CAAC;QACC,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -3,7 +3,6 @@ import type { Keychain } from "../keychain.js";
3
3
  import type { DefaultEventMap, EventMap, LoggerType, LogLevel, LogPayload } from "./loggingTypes.js";
4
4
  export declare abstract class LoggerBase<T extends EventMap<T> = DefaultEventMap> extends EventEmitter<T> {
5
5
  private readonly keychain;
6
- private readonly defaultUnredactedLogger;
7
6
  constructor(keychain: Keychain | undefined);
8
7
  log(level: LogLevel, payload: LogPayload): void;
9
8
  protected abstract readonly type?: LoggerType;
@@ -1 +1 @@
1
- {"version":3,"file":"loggerBase.d.ts","sourceRoot":"","sources":["../../../../src/common/logging/loggerBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAErG,8BAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;IAGjF,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;gBAEhC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAIpD,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAWtD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAE9C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAEtE,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,iBAAiB;IA2BlB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAI/B,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAGhC,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIhC,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIjC,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIlC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAInC,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIhC,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAI3C,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO;CAmBjG"}
1
+ {"version":3,"file":"loggerBase.d.ts","sourceRoot":"","sources":["../../../../src/common/logging/loggerBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAErG,8BAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAIpD,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IActD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAE9C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAEtE,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,iBAAiB;IA2BlB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAI/B,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAGhC,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIhC,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIjC,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIlC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAInC,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIhC,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAI3C,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO;CAmBjG"}
@@ -7,11 +7,13 @@ class LoggerBase extends events_1.EventEmitter {
7
7
  constructor(keychain) {
8
8
  super();
9
9
  this.keychain = keychain;
10
- this.defaultUnredactedLogger = "mcp";
11
10
  }
12
11
  log(level, payload) {
13
- // If no explicit value is supplied for unredacted loggers, default to "mcp"
14
- const noRedaction = payload.noRedaction !== undefined ? payload.noRedaction : this.defaultUnredactedLogger;
12
+ // Redact by default for every logger. Skipping redaction must be an explicit,
13
+ // per-call opt-out via `noRedaction` never a default. This matters most for the
14
+ // MCP logger, whose messages are sent to the (untrusted) MCP client and downstream
15
+ // agent/LLM toolchain, so secrets must never be emitted there unless explicitly allowed.
16
+ const noRedaction = payload.noRedaction !== undefined ? payload.noRedaction : false;
15
17
  this.logCore(level, {
16
18
  ...payload,
17
19
  message: this.redactIfNecessary(payload.message, noRedaction),
@@ -1 +1 @@
1
- {"version":3,"file":"loggerBase.js","sourceRoot":"","sources":["../../../../src/common/logging/loggerBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loggerBase.js","sourceRoot":"","sources":["../../../../src/common/logging/loggerBase.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.packageInfo = void 0;
4
4
  // This file was generated by scripts/updatePackageVersion.ts - Do not edit it manually.
5
5
  exports.packageInfo = {
6
- version: "1.14.0-prerelease.1",
6
+ version: "1.14.0-prerelease.2",
7
7
  mcpServerName: "MongoDB MCP Server",
8
8
  engines: {
9
9
  node: "^20.19.0 || ^22.13.0 || >= 24.0.0",
@@ -1,7 +1,20 @@
1
1
  import type { LoggerBase } from "./logging/index.js";
2
+ import type { Session } from "./session.js";
2
3
  import type { Metrics, DefaultMetrics } from "@mongodb-js/mcp-metrics";
3
4
  import type { CloseableTransport, SessionCloseReason } from "@mongodb-js/mcp-types";
4
5
  export type { CloseableTransport, SessionCloseReason };
6
+ /**
7
+ * Error that `ISessionStore` implementations can throw from `getSession` to
8
+ * reject a request (e.g. when identity validation against the request headers
9
+ * fails). Unlike returning `undefined`, which means the session does not exist
10
+ * and may trigger implicit session initialization, throwing this error fails
11
+ * the request without creating a session. To avoid leaking whether the
12
+ * session exists, the response is indistinguishable from "session not found";
13
+ * the error message is only logged server-side.
14
+ */
15
+ export declare class SessionRejectedError extends Error {
16
+ constructor(message: string);
17
+ }
5
18
  /**
6
19
  * Interface for managing MCP transport sessions.
7
20
  *
@@ -9,11 +22,34 @@ export type { CloseableTransport, SessionCloseReason };
9
22
  * management (e.g. database-based session storage).
10
23
  */
11
24
  export interface ISessionStore<T extends CloseableTransport = CloseableTransport> {
12
- getSession(sessionId: string): Promise<T | undefined>;
25
+ /**
26
+ * Returns the transport for the given session id or `undefined` if the
27
+ * session does not exist.
28
+ *
29
+ * @param headers The headers of the incoming request. Implementations can
30
+ * use them to validate the caller's identity before returning the session.
31
+ * To reject a request for an existing session, throw a
32
+ * {@link SessionRejectedError} rather than returning `undefined` — the
33
+ * latter is treated as "session not found" and may trigger implicit
34
+ * session initialization.
35
+ */
36
+ getSession(sessionId: string, headers?: Record<string, unknown>): Promise<T | undefined>;
37
+ /**
38
+ * Stores a newly initialized session.
39
+ *
40
+ * @param params.session The server session, exposing session-level state
41
+ * (e.g. the logger or the connection manager) to implementations that
42
+ * need it.
43
+ * @param params.headers The headers of the request that initiated the
44
+ * session (e.g. for tracing the x-request-id in logs and downstream
45
+ * requests).
46
+ */
13
47
  addSession(params: {
14
48
  sessionId: string;
15
49
  transport: T;
50
+ /** TODO: Remove in v2 — redundant with `session.logger`. */
16
51
  logger: LoggerBase;
52
+ session: Session;
17
53
  headers?: Record<string, unknown>;
18
54
  }): Promise<void>;
19
55
  closeSession(params: {
@@ -36,13 +72,24 @@ export declare class SessionStore<T extends CloseableTransport = CloseableTransp
36
72
  logger: LoggerBase;
37
73
  metrics: Metrics<DefaultMetrics>;
38
74
  });
39
- getSession(sessionId: string): Promise<T | undefined>;
75
+ getSession(sessionId: string, _headers?: Record<string, unknown>): Promise<T | undefined>;
76
+ /**
77
+ * Returns whether a session with the given id exists in this store.
78
+ *
79
+ * Unlike `getSession`, this does not reset the session's idle
80
+ * timeout, so it is safe to call when probing on behalf of requests that
81
+ * may not be served (e.g. authorization checks) without extending the
82
+ * session's lifetime.
83
+ */
84
+ hasSession(sessionId: string): boolean;
40
85
  private resetTimeout;
41
86
  private sendNotification;
42
87
  addSession(params: {
43
88
  sessionId: string;
44
89
  transport: T;
90
+ /** TODO: Remove in v2 — redundant with `session.logger`. */
45
91
  logger: LoggerBase;
92
+ session: Session;
46
93
  headers?: Record<string, unknown>;
47
94
  }): Promise<void>;
48
95
  closeSession({ sessionId, reason, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStore.d.ts","sourceRoot":"","sources":["../../../src/common/sessionStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionStore.d.ts","sourceRoot":"","sources":["../../../src/common/sessionStore.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionStore = void 0;
3
+ exports.SessionStore = exports.SessionRejectedError = void 0;
4
4
  exports.createDefaultSessionStore = createDefaultSessionStore;
5
5
  const index_js_1 = require("./logging/index.js");
6
6
  const managedTimeout_js_1 = require("./managedTimeout.js");
7
+ /**
8
+ * Error that `ISessionStore` implementations can throw from `getSession` to
9
+ * reject a request (e.g. when identity validation against the request headers
10
+ * fails). Unlike returning `undefined`, which means the session does not exist
11
+ * and may trigger implicit session initialization, throwing this error fails
12
+ * the request without creating a session. To avoid leaking whether the
13
+ * session exists, the response is indistinguishable from "session not found";
14
+ * the error message is only logged server-side.
15
+ */
16
+ class SessionRejectedError extends Error {
17
+ constructor(message) {
18
+ super(message);
19
+ this.name = "SessionRejectedError";
20
+ }
21
+ }
22
+ exports.SessionRejectedError = SessionRejectedError;
7
23
  class SessionStore {
8
24
  constructor(params) {
9
25
  this.sessions = {};
@@ -22,10 +38,22 @@ class SessionStore {
22
38
  throw new Error("idleTimeoutMS must be greater than notificationTimeoutMS");
23
39
  }
24
40
  }
25
- async getSession(sessionId) {
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ async getSession(sessionId, _headers) {
26
43
  this.resetTimeout(sessionId);
27
44
  return Promise.resolve(this.sessions[sessionId]?.transport);
28
45
  }
46
+ /**
47
+ * Returns whether a session with the given id exists in this store.
48
+ *
49
+ * Unlike `getSession`, this does not reset the session's idle
50
+ * timeout, so it is safe to call when probing on behalf of requests that
51
+ * may not be served (e.g. authorization checks) without extending the
52
+ * session's lifetime.
53
+ */
54
+ hasSession(sessionId) {
55
+ return this.sessions[sessionId] !== undefined;
56
+ }
29
57
  resetTimeout(sessionId) {
30
58
  const session = this.sessions[sessionId];
31
59
  if (!session) {
@@ -52,8 +80,7 @@ class SessionStore {
52
80
  }
53
81
  async addSession(params) {
54
82
  const { sessionId, transport, logger } = params;
55
- const session = this.sessions[sessionId];
56
- if (session) {
83
+ if (this.sessions[sessionId]) {
57
84
  throw new Error(`Session ${sessionId} already exists`);
58
85
  }
59
86
  const abortTimeout = (0, managedTimeout_js_1.setManagedTimeout)(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStore.js","sourceRoot":"","sources":["../../../src/common/sessionStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionStore.js","sourceRoot":"","sources":["../../../src/common/sessionStore.ts"],"names":[],"mappings":";;;AA2PA,8DAKC;AA/PD,iDAA2C;AAG3C,2DAAwD;AAMxD;;;;;;;;GAQG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACvC,CAAC;CACJ;AALD,oDAKC;AA2CD,MAAa,YAAY;IAerB,YAAY,MAIX;QAlBO,aAAQ,GAOZ,EAAE,CAAC;QAYH,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,QAAkC;QAClE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;IAClD,CAAC;IAEO,YAAY,CAAC,SAAiB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QAED,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAE/B,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,SAAiB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChB,EAAE,EAAE,gBAAK,CAAC,sDAAsD;gBAChE,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,WAAW,SAAS,uCAAuC;aACvE,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,EAAE,EAAE,gBAAK,CAAC,+CAA+C;YACzD,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,iDAAiD;SAC7D,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAOhB;QACG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,iBAAiB,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,qCAAiB,EAAC,KAAK,IAAI,EAAE;YAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjC,EAAE,EAAE,gBAAK,CAAC,+CAA+C;oBACzD,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE,kCAAkC;iBAC9C,CAAC,CAAC;gBAEH,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YACnE,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvB,MAAM,mBAAmB,GAAG,IAAA,qCAAiB,EACzC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACtC,IAAI,CAAC,qBAAqB,CAC7B,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG;YACvB,SAAS;YACT,YAAY;YACZ,mBAAmB;YACnB,MAAM;SACT,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACf,SAAS,EACT,MAAM,GAAG,SAAS,GAIrB;QACG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;QACtD,CAAC;QAED,gEAAgE;QAChE,iEAAiE;QACjE,4DAA4D;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAErC,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAChC,gEAAgE;YAChE,IAAI,CAAC;gBACD,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACd,EAAE,EAAE,gBAAK,CAAC,0CAA0C;oBACpD,OAAO,EAAE,yBAAyB;oBAClC,OAAO,EAAE,2BAA2B,SAAS,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAC7G,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CACzG,CAAC;IACN,CAAC;CACJ;AAjKD,oCAiKC;AAoBD;;GAEG;AACH,SAAgB,yBAAyB,CAGvC,MAA6C;IAC3C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Escapes markdown and HTML metacharacters in a string.
3
+ */
4
+ export declare function escapeMarkdown(value: string): string;
5
+ //# sourceMappingURL=escapeMarkdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeMarkdown.d.ts","sourceRoot":"","sources":["../../../src/helpers/escapeMarkdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.escapeMarkdown = escapeMarkdown;
4
+ /**
5
+ * Escapes markdown and HTML metacharacters in a string.
6
+ */
7
+ function escapeMarkdown(value) {
8
+ return value.replace(/[\\`*_{}[\]()<>#+\-.!|]/g, "\\$&");
9
+ }
10
+ //# sourceMappingURL=escapeMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeMarkdown.js","sourceRoot":"","sources":["../../../src/helpers/escapeMarkdown.ts"],"names":[],"mappings":";;AAGA,wCAEC;AALD;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"requestIdAttr.d.ts","sourceRoot":"","sources":["../../../src/helpers/requestIdAttr.ts"],"names":[],"mappings":"AAAA,kIAAkI;AAClI,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlG"}
1
+ {"version":3,"file":"requestIdAttr.d.ts","sourceRoot":"","sources":["../../../src/helpers/requestIdAttr.ts"],"names":[],"mappings":"AAAA,kIAAkI;AAClI,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlG"}
@@ -3,7 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.requestIdAttr = requestIdAttr;
4
4
  /** Returns `{ "x-request-id": "..." }` when the headers carry one, else `{}`. Spread inside a LogPayload's `attributes` field. */
5
5
  function requestIdAttr(headers) {
6
- const id = headers?.["x-request-id"];
6
+ if (!headers) {
7
+ return {};
8
+ }
9
+ const key = Object.keys(headers).find((k) => k.toLowerCase() === "x-request-id");
10
+ const id = key !== undefined ? headers[key] : undefined;
7
11
  return typeof id === "string" ? { "x-request-id": id } : {};
8
12
  }
9
13
  //# sourceMappingURL=requestIdAttr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestIdAttr.js","sourceRoot":"","sources":["../../../src/helpers/requestIdAttr.ts"],"names":[],"mappings":";;AACA,sCAGC;AAJD,kIAAkI;AAClI,SAAgB,aAAa,CAAC,OAA4C;IACtE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC;IACrC,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"requestIdAttr.js","sourceRoot":"","sources":["../../../src/helpers/requestIdAttr.ts"],"names":[],"mappings":";;AACA,sCAOC;AARD,kIAAkI;AAClI,SAAgB,aAAa,CAAC,OAA4C;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC;IACjF,MAAM,EAAE,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC"}
package/dist/cjs/lib.d.ts CHANGED
@@ -31,7 +31,7 @@ export { Keychain, registerGlobalSecretToRedact } from "./common/keychain.js";
31
31
  export type { Secret } from "./common/keychain.js";
32
32
  export { Elicitation } from "./elicitation.js";
33
33
  export { applyConfigOverrides, ConfigOverrideError } from "./common/config/configOverrides.js";
34
- export { SessionStore, createDefaultSessionStore, type ISessionStore, type CloseableTransport, type SessionCloseReason, type CreateSessionStoreFn, type SessionStoreConstructorArgs, } from "./common/sessionStore.js";
34
+ export { SessionStore, SessionRejectedError, createDefaultSessionStore, type ISessionStore, type CloseableTransport, type SessionCloseReason, type CreateSessionStoreFn, type SessionStoreConstructorArgs, } from "./common/sessionStore.js";
35
35
  export { ExportsManager } from "./common/exportsManager.js";
36
36
  export { DeviceId } from "./helpers/deviceId.js";
37
37
  export type { MonitoringServerFeature } from "./common/schemas.js";
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
package/dist/cjs/lib.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JSON_RPC_ERROR_CODE_INVALID_REQUEST = exports.JSON_RPC_ERROR_CODE_SESSION_NOT_FOUND = exports.JSON_RPC_ERROR_CODE_SESSION_ID_INVALID = exports.JSON_RPC_ERROR_CODE_SESSION_ID_REQUIRED = exports.JSON_RPC_ERROR_CODE_PROCESSING_REQUEST_FAILED = exports.Counter = exports.Histogram = exports.Gauge = exports.Registry = exports.createDefaultMetrics = exports.PrometheusMetrics = exports.UIRegistry = exports.ApiClient = exports.DeviceId = exports.ExportsManager = exports.createDefaultSessionStore = exports.SessionStore = exports.ConfigOverrideError = exports.applyConfigOverrides = exports.Elicitation = exports.registerGlobalSecretToRedact = exports.Keychain = exports.EventCache = exports.Telemetry = exports.MongoDBError = exports.ErrorCodes = exports.connectionErrorHandler = exports.ConnectionStateConnected = exports.MCPConnectionManager = exports.ConnectionManager = exports.TransportRunnerBase = exports.StdioRunner = exports.createDefaultMonitoringServer = exports.MonitoringServer = exports.createDefaultMcpHttpServer = exports.MCPHttpServer = exports.StreamableHttpRunner = exports.NullLogger = exports.ConsoleLogger = exports.CompositeLogger = exports.LoggerBase = exports.defaultCreateAtlasLocalClient = exports.defaultCreateApiClient = exports.defaultCreateConnectionManager = exports.createMCPConnectionManager = exports.defaultParserOptions = exports.parseUserConfig = exports.UserConfigSchema = exports.Session = exports.Server = void 0;
4
- exports.JSON_RPC_ERROR_CODE_DISALLOWED_EXTERNAL_SESSION = void 0;
3
+ exports.JSON_RPC_ERROR_CODE_SESSION_NOT_FOUND = exports.JSON_RPC_ERROR_CODE_SESSION_ID_INVALID = exports.JSON_RPC_ERROR_CODE_SESSION_ID_REQUIRED = exports.JSON_RPC_ERROR_CODE_PROCESSING_REQUEST_FAILED = exports.Counter = exports.Histogram = exports.Gauge = exports.Registry = exports.createDefaultMetrics = exports.PrometheusMetrics = exports.UIRegistry = exports.ApiClient = exports.DeviceId = exports.ExportsManager = exports.createDefaultSessionStore = exports.SessionRejectedError = exports.SessionStore = exports.ConfigOverrideError = exports.applyConfigOverrides = exports.Elicitation = exports.registerGlobalSecretToRedact = exports.Keychain = exports.EventCache = exports.Telemetry = exports.MongoDBError = exports.ErrorCodes = exports.connectionErrorHandler = exports.ConnectionStateConnected = exports.MCPConnectionManager = exports.ConnectionManager = exports.TransportRunnerBase = exports.StdioRunner = exports.createDefaultMonitoringServer = exports.MonitoringServer = exports.createDefaultMcpHttpServer = exports.MCPHttpServer = exports.StreamableHttpRunner = exports.NullLogger = exports.ConsoleLogger = exports.CompositeLogger = exports.LoggerBase = exports.defaultCreateAtlasLocalClient = exports.defaultCreateApiClient = exports.defaultCreateConnectionManager = exports.createMCPConnectionManager = exports.defaultParserOptions = exports.parseUserConfig = exports.UserConfigSchema = exports.Session = exports.Server = void 0;
4
+ exports.JSON_RPC_ERROR_CODE_DISALLOWED_EXTERNAL_SESSION = exports.JSON_RPC_ERROR_CODE_INVALID_REQUEST = void 0;
5
5
  exports.parseArgsWithCliOptions = parseArgsWithCliOptions;
6
6
  var server_js_1 = require("./server.js");
7
7
  Object.defineProperty(exports, "Server", { enumerable: true, get: function () { return server_js_1.Server; } });
@@ -66,6 +66,7 @@ Object.defineProperty(exports, "applyConfigOverrides", { enumerable: true, get:
66
66
  Object.defineProperty(exports, "ConfigOverrideError", { enumerable: true, get: function () { return configOverrides_js_1.ConfigOverrideError; } });
67
67
  var sessionStore_js_1 = require("./common/sessionStore.js");
68
68
  Object.defineProperty(exports, "SessionStore", { enumerable: true, get: function () { return sessionStore_js_1.SessionStore; } });
69
+ Object.defineProperty(exports, "SessionRejectedError", { enumerable: true, get: function () { return sessionStore_js_1.SessionRejectedError; } });
69
70
  Object.defineProperty(exports, "createDefaultSessionStore", { enumerable: true, get: function () { return sessionStore_js_1.createDefaultSessionStore; } });
70
71
  var exportsManager_js_1 = require("./common/exportsManager.js");
71
72
  Object.defineProperty(exports, "ExportsManager", { enumerable: true, get: function () { return exportsManager_js_1.ExportsManager; } });
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":";;;;AASA,0DAQC;AAjBD,yCAA+F;AAAtF,mGAAA,MAAM,OAAA;AACf,kDAAuF;AAA9E,qGAAA,OAAO,OAAA;AAChB,+DAAkF;AAAxD,iHAAA,gBAAgB,OAAA;AAC1C,yEAA+G;AAAtG,qHAAA,eAAe,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AAE9C,2EAAqE;AAGrE,iDAAiD;AACjD,SAAgB,uBAAuB,CAAC,YAAsB;IAK1D,OAAO,IAAA,oCAAe,EAAC;QACnB,IAAI,EAAE,YAAY;KACrB,CAAC,CAAC;AACP,CAAC;AAED,wEAA+E;AAG1C,+GAH5B,qDAA8B,OAG4B;AAFnE,gEAAgE;AAChE,MAAM,0BAA0B,GAAG,qDAA8B,CAAC;AACzD,gEAA0B;AAEnC,4DAAqE;AAA5D,sHAAA,sBAAsB,OAAA;AAC/B,wDAAuE;AAA9D,8HAAA,6BAA6B,OAAA;AAEtC,sDAUmC;AAT/B,sGAAA,UAAU,OAAA;AAIV,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,sGAAA,UAAU,OAAA;AAId,oEAYwC;AAXpC,yHAAA,oBAAoB,OAAA;AACpB,kHAAA,aAAa,OAAA;AACb,+HAAA,0BAA0B,OAAA;AAG1B,qHAAA,gBAAgB,OAAA;AAChB,kIAAA,6BAA6B,OAAA;AAOjC,kDAAoD;AAA3C,uGAAA,WAAW,OAAA;AACpB,gDAO8B;AAN1B,8GAAA,mBAAmB,OAAA;AAOvB,sEAcuC;AAbnC,yHAAA,iBAAiB,OAAA;AACjB,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AAY5B,gFAM4C;AALxC,mIAAA,sBAAsB,OAAA;AAM1B,gDAA8D;AAArD,uGAAA,UAAU,OAAA;AAAE,yGAAA,YAAY,OAAA;AACjC,yDAAqD;AAA5C,yGAAA,SAAS,OAAA;AAGlB,2DAAuD;AAA9C,2GAAA,UAAU,OAAA;AACnB,oDAA8E;AAArE,uGAAA,QAAQ,OAAA;AAAE,2HAAA,4BAA4B,OAAA;AAE/C,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AACpB,yEAA+F;AAAtF,0HAAA,oBAAoB,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAClD,4DAQkC;AAP9B,+GAAA,YAAY,OAAA;AACZ,4HAAA,yBAAyB,OAAA;AAO7B,gEAA4D;AAAnD,mHAAA,cAAc,OAAA;AACvB,qDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,4DAKqC;AAJjC,yGAAA,SAAS,OAAA;AAMb,yDAA+E;AAA9C,yGAAA,UAAU,OAAA;AAE3C,uDAWiC;AAV7B,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AAKpB,uGAAA,QAAQ,OAAA;AACR,oGAAA,KAAK,OAAA;AACL,wGAAA,SAAS,OAAA;AACT,sGAAA,OAAO,OAAA;AAEX,0EAO2C;AANvC,qJAAA,6CAA6C,OAAA;AAC7C,+IAAA,uCAAuC,OAAA;AACvC,8IAAA,sCAAsC,OAAA;AACtC,6IAAA,qCAAqC,OAAA;AACrC,2IAAA,mCAAmC,OAAA;AACnC,uJAAA,+CAA+C,OAAA"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":";;;;AASA,0DAQC;AAjBD,yCAA+F;AAAtF,mGAAA,MAAM,OAAA;AACf,kDAAuF;AAA9E,qGAAA,OAAO,OAAA;AAChB,+DAAkF;AAAxD,iHAAA,gBAAgB,OAAA;AAC1C,yEAA+G;AAAtG,qHAAA,eAAe,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AAE9C,2EAAqE;AAGrE,iDAAiD;AACjD,SAAgB,uBAAuB,CAAC,YAAsB;IAK1D,OAAO,IAAA,oCAAe,EAAC;QACnB,IAAI,EAAE,YAAY;KACrB,CAAC,CAAC;AACP,CAAC;AAED,wEAA+E;AAG1C,+GAH5B,qDAA8B,OAG4B;AAFnE,gEAAgE;AAChE,MAAM,0BAA0B,GAAG,qDAA8B,CAAC;AACzD,gEAA0B;AAEnC,4DAAqE;AAA5D,sHAAA,sBAAsB,OAAA;AAC/B,wDAAuE;AAA9D,8HAAA,6BAA6B,OAAA;AAEtC,sDAUmC;AAT/B,sGAAA,UAAU,OAAA;AAIV,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,sGAAA,UAAU,OAAA;AAId,oEAYwC;AAXpC,yHAAA,oBAAoB,OAAA;AACpB,kHAAA,aAAa,OAAA;AACb,+HAAA,0BAA0B,OAAA;AAG1B,qHAAA,gBAAgB,OAAA;AAChB,kIAAA,6BAA6B,OAAA;AAOjC,kDAAoD;AAA3C,uGAAA,WAAW,OAAA;AACpB,gDAO8B;AAN1B,8GAAA,mBAAmB,OAAA;AAOvB,sEAcuC;AAbnC,yHAAA,iBAAiB,OAAA;AACjB,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AAY5B,gFAM4C;AALxC,mIAAA,sBAAsB,OAAA;AAM1B,gDAA8D;AAArD,uGAAA,UAAU,OAAA;AAAE,yGAAA,YAAY,OAAA;AACjC,yDAAqD;AAA5C,yGAAA,SAAS,OAAA;AAGlB,2DAAuD;AAA9C,2GAAA,UAAU,OAAA;AACnB,oDAA8E;AAArE,uGAAA,QAAQ,OAAA;AAAE,2HAAA,4BAA4B,OAAA;AAE/C,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AACpB,yEAA+F;AAAtF,0HAAA,oBAAoB,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAClD,4DASkC;AAR9B,+GAAA,YAAY,OAAA;AACZ,uHAAA,oBAAoB,OAAA;AACpB,4HAAA,yBAAyB,OAAA;AAO7B,gEAA4D;AAAnD,mHAAA,cAAc,OAAA;AACvB,qDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,4DAKqC;AAJjC,yGAAA,SAAS,OAAA;AAMb,yDAA+E;AAA9C,yGAAA,UAAU,OAAA;AAE3C,uDAWiC;AAV7B,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AAKpB,uGAAA,QAAQ,OAAA;AACR,oGAAA,KAAK,OAAA;AACL,wGAAA,SAAS,OAAA;AACT,sGAAA,OAAO,OAAA;AAEX,0EAO2C;AANvC,qJAAA,6CAA6C,OAAA;AAC7C,+IAAA,uCAAuC,OAAA;AACvC,8IAAA,sCAAsC,OAAA;AACtC,6IAAA,qCAAqC,OAAA;AACrC,2IAAA,mCAAmC,OAAA;AACnC,uJAAA,+CAA+C,OAAA"}
@@ -1,6 +1,7 @@
1
1
  import { z, type ZodString } from "zod";
2
2
  export declare const NO_UNICODE_ERROR = "String cannot contain special characters or Unicode symbols";
3
3
  export declare const ALLOWED_USERNAME_CHARACTERS_ERROR = "Username can only contain letters, numbers, dots, hyphens, and underscores";
4
+ export declare const ALPHANUMERIC_DASH_UNDERSCORE_REGEX: RegExp;
4
5
  export declare const ALLOWED_REGION_CHARACTERS_ERROR = "Region can only contain letters, numbers, hyphens, and underscores";
5
6
  export declare const ALLOWED_CLUSTER_NAME_CHARACTERS_ERROR = "Cluster names can only contain ASCII letters, numbers, and hyphens.";
6
7
  export declare const ALLOWED_PROJECT_NAME_CHARACTERS_ERROR = "Project names can't be longer than 64 characters and can only contain letters, numbers, spaces, and the following symbols: ( ) @ & + : . _ - ' ,";
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/tools/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AAIxC,eAAO,MAAM,gBAAgB,gEAAgE,CAAC;AAG9F,eAAO,MAAM,iCAAiC,+EACkC,CAAC;AAGjF,eAAO,MAAM,+BAA+B,uEAAuE,CAAC;AAGpH,eAAO,MAAM,qCAAqC,wEACuB,CAAC;AAG1E,eAAO,MAAM,qCAAqC,qJACoG,CAAC;AAEvJ,eAAO,MAAM,UAAU;kBACP,SAAS;0BAEC,MAAM,KAAG,CAAC,CAAC,SAAS;CAM7C,CAAC;AAEF,eAAO,MAAM,SAAS;qBACH,CAAC,CAAC,SAAS;0BAEN,CAAC,CAAC,SAAS;uBAEd,CAAC,CAAC,SAAS;0BAOR,CAAC,CAAC,UAAU,CAC5B,CAAC,CAAC,OAAO,CAAC;QAAE,QAAQ,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAC9F;uBAEgB,CAAC,CAAC,SAAS;oBAOd,CAAC,CAAC,SAAS;qBAOV,CAAC,CAAC,SAAS;qBAEX,CAAC,CAAC,SAAS;kBAEd,CAAC,CAAC,SAAS;oBAOT,CAAC,CAAC,SAAS;CAE5B,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMjE;AAID,wBAAgB,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAE/D"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/tools/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AAIxC,eAAO,MAAM,gBAAgB,gEAAgE,CAAC;AAG9F,eAAO,MAAM,iCAAiC,+EACkC,CAAC;AAGjF,eAAO,MAAM,kCAAkC,QAAqB,CAAC;AAGrE,eAAO,MAAM,+BAA+B,uEAAuE,CAAC;AAGpH,eAAO,MAAM,qCAAqC,wEACuB,CAAC;AAG1E,eAAO,MAAM,qCAAqC,qJACoG,CAAC;AAEvJ,eAAO,MAAM,UAAU;kBACP,SAAS;0BAEC,MAAM,KAAG,CAAC,CAAC,SAAS;CAM7C,CAAC;AAEF,eAAO,MAAM,SAAS;qBACH,CAAC,CAAC,SAAS;0BAEN,CAAC,CAAC,SAAS;uBAEd,CAAC,CAAC,SAAS;0BAOR,CAAC,CAAC,UAAU,CAC5B,CAAC,CAAC,OAAO,CAAC;QAAE,QAAQ,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAC9F;uBAEgB,CAAC,CAAC,SAAS;oBAOd,CAAC,CAAC,SAAS;qBAOV,CAAC,CAAC,SAAS;qBAEX,CAAC,CAAC,SAAS;kBAEd,CAAC,CAAC,SAAS;oBAOT,CAAC,CAAC,SAAS;CAE5B,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMjE;AAID,wBAAgB,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAE/D"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AtlasArgs = exports.CommonArgs = exports.ALLOWED_PROJECT_NAME_CHARACTERS_ERROR = exports.ALLOWED_CLUSTER_NAME_CHARACTERS_ERROR = exports.ALLOWED_REGION_CHARACTERS_ERROR = exports.ALLOWED_USERNAME_CHARACTERS_ERROR = exports.NO_UNICODE_ERROR = void 0;
3
+ exports.AtlasArgs = exports.CommonArgs = exports.ALLOWED_PROJECT_NAME_CHARACTERS_ERROR = exports.ALLOWED_CLUSTER_NAME_CHARACTERS_ERROR = exports.ALLOWED_REGION_CHARACTERS_ERROR = exports.ALPHANUMERIC_DASH_UNDERSCORE_REGEX = exports.ALLOWED_USERNAME_CHARACTERS_ERROR = exports.NO_UNICODE_ERROR = void 0;
4
4
  exports.toEJSON = toEJSON;
5
5
  exports.zEJSON = zEJSON;
6
6
  const zod_1 = require("zod");
@@ -9,9 +9,11 @@ const NO_UNICODE_REGEX = /^[\x20-\x7E]*$/;
9
9
  exports.NO_UNICODE_ERROR = "String cannot contain special characters or Unicode symbols";
10
10
  const ALLOWED_USERNAME_CHARACTERS_REGEX = /^[a-zA-Z0-9._-]+$/;
11
11
  exports.ALLOWED_USERNAME_CHARACTERS_ERROR = "Username can only contain letters, numbers, dots, hyphens, and underscores";
12
- const ALLOWED_REGION_CHARACTERS_REGEX = /^[a-zA-Z0-9_-]+$/;
12
+ // Generic pattern for identifiers that permit only ASCII letters, numbers, hyphens, and underscores.
13
+ exports.ALPHANUMERIC_DASH_UNDERSCORE_REGEX = /^[a-zA-Z0-9_-]+$/;
14
+ const ALLOWED_REGION_CHARACTERS_REGEX = exports.ALPHANUMERIC_DASH_UNDERSCORE_REGEX;
13
15
  exports.ALLOWED_REGION_CHARACTERS_ERROR = "Region can only contain letters, numbers, hyphens, and underscores";
14
- const ALLOWED_CLUSTER_NAME_CHARACTERS_REGEX = /^[a-zA-Z0-9_-]+$/;
16
+ const ALLOWED_CLUSTER_NAME_CHARACTERS_REGEX = exports.ALPHANUMERIC_DASH_UNDERSCORE_REGEX;
15
17
  exports.ALLOWED_CLUSTER_NAME_CHARACTERS_ERROR = "Cluster names can only contain ASCII letters, numbers, and hyphens.";
16
18
  const ALLOWED_PROJECT_NAME_CHARACTERS_REGEX = /^[a-zA-Z0-9\s()@&+:._',-]+$/;
17
19
  exports.ALLOWED_PROJECT_NAME_CHARACTERS_ERROR = "Project names can't be longer than 64 characters and can only contain letters, numbers, spaces, and the following symbols: ( ) @ & + : . _ - ' ,";
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/tools/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/tools/args.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,18 @@ export declare const CreateDBUserArgs: {
6
6
  username: z.ZodString;
7
7
  password: z.ZodOptional<z.ZodString>;
8
8
  roles: z.ZodArray<z.ZodObject<{
9
- roleName: z.ZodString;
9
+ roleName: z.ZodUnion<readonly [z.ZodEnum<{
10
+ atlasAdmin: "atlasAdmin";
11
+ backup: "backup";
12
+ clusterMonitor: "clusterMonitor";
13
+ dbAdmin: "dbAdmin";
14
+ dbAdminAnyDatabase: "dbAdminAnyDatabase";
15
+ enableSharding: "enableSharding";
16
+ read: "read";
17
+ readAnyDatabase: "readAnyDatabase";
18
+ readWrite: "readWrite";
19
+ readWriteAnyDatabase: "readWriteAnyDatabase";
20
+ }>, z.ZodString]>;
10
21
  databaseName: z.ZodDefault<z.ZodString>;
11
22
  collectionName: z.ZodOptional<z.ZodString>;
12
23
  }, z.core.$strip>>;
@@ -21,7 +32,18 @@ export declare class CreateDBUserTool extends AtlasToolBase {
21
32
  username: z.ZodString;
22
33
  password: z.ZodOptional<z.ZodString>;
23
34
  roles: z.ZodArray<z.ZodObject<{
24
- roleName: z.ZodString;
35
+ roleName: z.ZodUnion<readonly [z.ZodEnum<{
36
+ atlasAdmin: "atlasAdmin";
37
+ backup: "backup";
38
+ clusterMonitor: "clusterMonitor";
39
+ dbAdmin: "dbAdmin";
40
+ dbAdminAnyDatabase: "dbAdminAnyDatabase";
41
+ enableSharding: "enableSharding";
42
+ read: "read";
43
+ readAnyDatabase: "readAnyDatabase";
44
+ readWrite: "readWrite";
45
+ readWriteAnyDatabase: "readWriteAnyDatabase";
46
+ }>, z.ZodString]>;
25
47
  databaseName: z.ZodDefault<z.ZodString>;
26
48
  collectionName: z.ZodOptional<z.ZodString>;
27
49
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- {"version":3,"file":"createDBUser.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/createDBUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,eAAO,MAAM,gBAAgB;;;;;;;;;;CAwB5B,CAAC;AAOF,qBAAa,gBAAiB,SAAQ,aAAa;IAC/C,MAAM,CAAC,QAAQ,SAA0B;IAClC,WAAW,SAA2C;IAC7D,MAAM,CAAC,aAAa,EAAE,aAAa,CAAY;IACxC,SAAS;;;;;;;;;;MAEd;IACc,YAAY;;;MAA4B;cAExC,OAAO,CACnB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACnF,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAwDhD,SAAS,CAAC,sBAAsB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,GACX,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM;CAW9C"}
1
+ {"version":3,"file":"createDBUser.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/createDBUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;CAkC5B,CAAC;AAOF,qBAAa,gBAAiB,SAAQ,aAAa;IAC/C,MAAM,CAAC,QAAQ,SAA0B;IAClC,WAAW,SAA2C;IAC7D,MAAM,CAAC,aAAa,EAAE,aAAa,CAAY;IACxC,SAAS;;;;;;;;;;;;;;;;;;;;;MAEd;IACc,YAAY;;;MAA4B;cAExC,OAAO,CACnB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACnF,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAwDhD,SAAS,CAAC,sBAAsB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,GACX,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM;CAkB9C"}
@@ -4,8 +4,10 @@ exports.CreateDBUserTool = exports.CreateDBUserArgs = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const atlasTool_js_1 = require("../atlasTool.js");
6
6
  const generatePassword_js_1 = require("../../../helpers/generatePassword.js");
7
+ const escapeMarkdown_js_1 = require("../../../helpers/escapeMarkdown.js");
7
8
  const accessListUtils_js_1 = require("../../../common/atlas/accessListUtils.js");
8
9
  const args_js_1 = require("../../args.js");
10
+ const roles_js_1 = require("../../../common/atlas/roles.js");
9
11
  exports.CreateDBUserArgs = {
10
12
  projectId: args_js_1.AtlasArgs.projectId().describe("Atlas project ID"),
11
13
  username: args_js_1.AtlasArgs.username().describe("Username for the new user"),
@@ -17,7 +19,14 @@ exports.CreateDBUserArgs = {
17
19
  .describe("Password for the new user. IMPORTANT: If the user hasn't supplied an explicit password, leave it unset and under no circumstances try to generate a random one. A secure password will be generated by the MCP server if necessary."),
18
20
  roles: zod_1.z
19
21
  .array(zod_1.z.object({
20
- roleName: args_js_1.CommonArgs.string().describe("Role name"),
22
+ roleName: zod_1.z
23
+ .union([
24
+ zod_1.z.enum(roles_js_1.BUILT_IN_DB_USER_ROLES),
25
+ zod_1.z
26
+ .string()
27
+ .regex(args_js_1.ALPHANUMERIC_DASH_UNDERSCORE_REGEX, "Custom role names can only contain letters, numbers, hyphens, and underscores"),
28
+ ])
29
+ .describe("Role name"),
21
30
  databaseName: args_js_1.CommonArgs.string().describe("Database name").default("admin"),
22
31
  collectionName: args_js_1.CommonArgs.string().describe("Collection name").optional(),
23
32
  }))
@@ -92,7 +101,14 @@ class CreateDBUserTool extends atlasTool_js_1.AtlasToolBase {
92
101
  return (`You are about to create a database user in Atlas project \`${projectId}\`:\n\n` +
93
102
  `**Username**: \`${username}\`\n\n` +
94
103
  `**Password**: ${password ? "(User-provided password)" : "(Auto-generated secure password)"}\n\n` +
95
- `**Roles**: ${roles.map((role) => `${role.roleName}${role.collectionName ? ` on ${role.databaseName}.${role.collectionName}` : ` on ${role.databaseName}`}`).join(", ")}\n\n` +
104
+ `**Roles**: ${roles
105
+ .map((role) => {
106
+ const target = role.collectionName
107
+ ? `${(0, escapeMarkdown_js_1.escapeMarkdown)(role.databaseName)}.${(0, escapeMarkdown_js_1.escapeMarkdown)(role.collectionName)}`
108
+ : (0, escapeMarkdown_js_1.escapeMarkdown)(role.databaseName);
109
+ return `${(0, escapeMarkdown_js_1.escapeMarkdown)(role.roleName)} on ${target}`;
110
+ })
111
+ .join(", ")}\n\n` +
96
112
  `**Cluster Access**: ${clusters?.length ? clusters.join(", ") : "All clusters in the project"}\n\n` +
97
113
  "This will create a new database user with the specified permissions. " +
98
114
  "**Do you confirm the execution of the action?**");