@himanshusinghs/mongodb-mcp-server 0.3.0 → 0.3.1-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 (176) hide show
  1. package/README.md +108 -44
  2. package/dist/cjs/common/atlas/accessListUtils.d.ts +2 -1
  3. package/dist/cjs/common/atlas/accessListUtils.d.ts.map +1 -1
  4. package/dist/cjs/common/atlas/accessListUtils.js +4 -1
  5. package/dist/cjs/common/atlas/accessListUtils.js.map +1 -1
  6. package/dist/cjs/common/config.d.ts +9 -3
  7. package/dist/cjs/common/config.d.ts.map +1 -1
  8. package/dist/cjs/common/config.js +88 -5
  9. package/dist/cjs/common/config.js.map +1 -1
  10. package/dist/cjs/common/connectionErrorHandler.d.ts +18 -0
  11. package/dist/cjs/common/connectionErrorHandler.d.ts.map +1 -0
  12. package/dist/cjs/common/connectionErrorHandler.js +70 -0
  13. package/dist/cjs/common/connectionErrorHandler.js.map +1 -0
  14. package/dist/cjs/common/connectionManager.d.ts.map +1 -1
  15. package/dist/cjs/common/connectionManager.js +7 -11
  16. package/dist/cjs/common/connectionManager.js.map +1 -1
  17. package/dist/cjs/common/errors.d.ts +5 -4
  18. package/dist/cjs/common/errors.d.ts.map +1 -1
  19. package/dist/cjs/common/errors.js +1 -0
  20. package/dist/cjs/common/errors.js.map +1 -1
  21. package/dist/cjs/common/exportsManager.d.ts +1 -1
  22. package/dist/cjs/common/exportsManager.d.ts.map +1 -1
  23. package/dist/cjs/common/keychain.d.ts +22 -0
  24. package/dist/cjs/common/keychain.d.ts.map +1 -0
  25. package/dist/cjs/common/keychain.js +36 -0
  26. package/dist/cjs/common/keychain.js.map +1 -0
  27. package/dist/cjs/common/logger.d.ts +10 -2
  28. package/dist/cjs/common/logger.d.ts.map +1 -1
  29. package/dist/cjs/common/logger.js +20 -11
  30. package/dist/cjs/common/logger.js.map +1 -1
  31. package/dist/cjs/common/packageInfo.js +1 -1
  32. package/dist/cjs/common/packageInfo.js.map +1 -1
  33. package/dist/cjs/common/session.d.ts +4 -1
  34. package/dist/cjs/common/session.d.ts.map +1 -1
  35. package/dist/cjs/common/session.js +2 -1
  36. package/dist/cjs/common/session.js.map +1 -1
  37. package/dist/cjs/helpers/connectionOptions.js +3 -6
  38. package/dist/cjs/helpers/connectionOptions.js.map +1 -1
  39. package/dist/cjs/index.js +9 -2
  40. package/dist/cjs/index.js.map +1 -1
  41. package/dist/cjs/lib.d.ts +4 -1
  42. package/dist/cjs/lib.d.ts.map +1 -1
  43. package/dist/cjs/lib.js +6 -3
  44. package/dist/cjs/lib.js.map +1 -1
  45. package/dist/cjs/server.d.ts +4 -1
  46. package/dist/cjs/server.d.ts.map +1 -1
  47. package/dist/cjs/server.js +16 -5
  48. package/dist/cjs/server.js.map +1 -1
  49. package/dist/cjs/telemetry/eventCache.d.ts +11 -4
  50. package/dist/cjs/telemetry/eventCache.d.ts.map +1 -1
  51. package/dist/cjs/telemetry/eventCache.js +13 -6
  52. package/dist/cjs/telemetry/eventCache.js.map +1 -1
  53. package/dist/cjs/telemetry/telemetry.d.ts +9 -2
  54. package/dist/cjs/telemetry/telemetry.d.ts.map +1 -1
  55. package/dist/cjs/telemetry/telemetry.js +79 -42
  56. package/dist/cjs/telemetry/telemetry.js.map +1 -1
  57. package/dist/cjs/telemetry/types.d.ts +48 -0
  58. package/dist/cjs/telemetry/types.d.ts.map +1 -1
  59. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  60. package/dist/cjs/tools/atlas/connect/connectCluster.js +49 -25
  61. package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
  62. package/dist/cjs/tools/atlas/create/createDBUser.d.ts.map +1 -1
  63. package/dist/cjs/tools/atlas/create/createDBUser.js +4 -0
  64. package/dist/cjs/tools/atlas/create/createDBUser.js.map +1 -1
  65. package/dist/cjs/tools/atlas/read/listProjects.js +1 -1
  66. package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
  67. package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
  68. package/dist/cjs/tools/mongodb/mongodbTool.js +11 -52
  69. package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
  70. package/dist/cjs/tools/mongodb/read/aggregate.d.ts +1 -0
  71. package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
  72. package/dist/cjs/tools/mongodb/read/aggregate.js +12 -0
  73. package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
  74. package/dist/cjs/tools/tool.d.ts.map +1 -1
  75. package/dist/cjs/tools/tool.js +11 -5
  76. package/dist/cjs/tools/tool.js.map +1 -1
  77. package/dist/cjs/transports/base.d.ts +14 -3
  78. package/dist/cjs/transports/base.d.ts.map +1 -1
  79. package/dist/cjs/transports/base.js +14 -5
  80. package/dist/cjs/transports/base.js.map +1 -1
  81. package/dist/cjs/transports/stdio.d.ts +2 -5
  82. package/dist/cjs/transports/stdio.d.ts.map +1 -1
  83. package/dist/cjs/transports/stdio.js +2 -3
  84. package/dist/cjs/transports/stdio.js.map +1 -1
  85. package/dist/cjs/transports/streamableHttp.d.ts +3 -5
  86. package/dist/cjs/transports/streamableHttp.d.ts.map +1 -1
  87. package/dist/cjs/transports/streamableHttp.js +18 -6
  88. package/dist/cjs/transports/streamableHttp.js.map +1 -1
  89. package/dist/esm/common/atlas/accessListUtils.d.ts +2 -1
  90. package/dist/esm/common/atlas/accessListUtils.d.ts.map +1 -1
  91. package/dist/esm/common/atlas/accessListUtils.js +4 -1
  92. package/dist/esm/common/atlas/accessListUtils.js.map +1 -1
  93. package/dist/esm/common/config.d.ts +9 -3
  94. package/dist/esm/common/config.d.ts.map +1 -1
  95. package/dist/esm/common/config.js +85 -4
  96. package/dist/esm/common/config.js.map +1 -1
  97. package/dist/esm/common/connectionErrorHandler.d.ts +18 -0
  98. package/dist/esm/common/connectionErrorHandler.d.ts.map +1 -0
  99. package/dist/esm/common/connectionErrorHandler.js +66 -0
  100. package/dist/esm/common/connectionErrorHandler.js.map +1 -0
  101. package/dist/esm/common/connectionManager.d.ts.map +1 -1
  102. package/dist/esm/common/connectionManager.js +6 -7
  103. package/dist/esm/common/connectionManager.js.map +1 -1
  104. package/dist/esm/common/errors.d.ts +5 -4
  105. package/dist/esm/common/errors.d.ts.map +1 -1
  106. package/dist/esm/common/errors.js +1 -0
  107. package/dist/esm/common/errors.js.map +1 -1
  108. package/dist/esm/common/exportsManager.d.ts +1 -1
  109. package/dist/esm/common/exportsManager.d.ts.map +1 -1
  110. package/dist/esm/common/keychain.d.ts +22 -0
  111. package/dist/esm/common/keychain.d.ts.map +1 -0
  112. package/dist/esm/common/keychain.js +31 -0
  113. package/dist/esm/common/keychain.js.map +1 -0
  114. package/dist/esm/common/logger.d.ts +10 -2
  115. package/dist/esm/common/logger.d.ts.map +1 -1
  116. package/dist/esm/common/logger.js +20 -11
  117. package/dist/esm/common/logger.js.map +1 -1
  118. package/dist/esm/common/packageInfo.js +1 -1
  119. package/dist/esm/common/packageInfo.js.map +1 -1
  120. package/dist/esm/common/session.d.ts +4 -1
  121. package/dist/esm/common/session.d.ts.map +1 -1
  122. package/dist/esm/common/session.js +2 -1
  123. package/dist/esm/common/session.js.map +1 -1
  124. package/dist/esm/helpers/connectionOptions.js +1 -1
  125. package/dist/esm/helpers/connectionOptions.js.map +1 -1
  126. package/dist/esm/index.js +9 -2
  127. package/dist/esm/index.js.map +1 -1
  128. package/dist/esm/lib.d.ts +4 -1
  129. package/dist/esm/lib.d.ts.map +1 -1
  130. package/dist/esm/lib.js +2 -1
  131. package/dist/esm/lib.js.map +1 -1
  132. package/dist/esm/server.d.ts +4 -1
  133. package/dist/esm/server.d.ts.map +1 -1
  134. package/dist/esm/server.js +16 -5
  135. package/dist/esm/server.js.map +1 -1
  136. package/dist/esm/telemetry/eventCache.d.ts +11 -4
  137. package/dist/esm/telemetry/eventCache.d.ts.map +1 -1
  138. package/dist/esm/telemetry/eventCache.js +13 -6
  139. package/dist/esm/telemetry/eventCache.js.map +1 -1
  140. package/dist/esm/telemetry/telemetry.d.ts +9 -2
  141. package/dist/esm/telemetry/telemetry.d.ts.map +1 -1
  142. package/dist/esm/telemetry/telemetry.js +79 -42
  143. package/dist/esm/telemetry/telemetry.js.map +1 -1
  144. package/dist/esm/telemetry/types.d.ts +48 -0
  145. package/dist/esm/telemetry/types.d.ts.map +1 -1
  146. package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  147. package/dist/esm/tools/atlas/connect/connectCluster.js +49 -25
  148. package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
  149. package/dist/esm/tools/atlas/create/createDBUser.d.ts.map +1 -1
  150. package/dist/esm/tools/atlas/create/createDBUser.js +4 -0
  151. package/dist/esm/tools/atlas/create/createDBUser.js.map +1 -1
  152. package/dist/esm/tools/atlas/read/listProjects.js +1 -1
  153. package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
  154. package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
  155. package/dist/esm/tools/mongodb/mongodbTool.js +11 -52
  156. package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
  157. package/dist/esm/tools/mongodb/read/aggregate.d.ts +1 -0
  158. package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
  159. package/dist/esm/tools/mongodb/read/aggregate.js +12 -0
  160. package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
  161. package/dist/esm/tools/tool.d.ts.map +1 -1
  162. package/dist/esm/tools/tool.js +11 -5
  163. package/dist/esm/tools/tool.js.map +1 -1
  164. package/dist/esm/transports/base.d.ts +14 -3
  165. package/dist/esm/transports/base.d.ts.map +1 -1
  166. package/dist/esm/transports/base.js +14 -5
  167. package/dist/esm/transports/base.js.map +1 -1
  168. package/dist/esm/transports/stdio.d.ts +2 -5
  169. package/dist/esm/transports/stdio.d.ts.map +1 -1
  170. package/dist/esm/transports/stdio.js +2 -3
  171. package/dist/esm/transports/stdio.js.map +1 -1
  172. package/dist/esm/transports/streamableHttp.d.ts +3 -5
  173. package/dist/esm/transports/streamableHttp.d.ts.map +1 -1
  174. package/dist/esm/transports/streamableHttp.js +18 -6
  175. package/dist/esm/transports/streamableHttp.js.map +1 -1
  176. package/package.json +5 -4
package/README.md CHANGED
@@ -47,7 +47,9 @@ node -v
47
47
 
48
48
  ### Quick Start
49
49
 
50
- **Note:** When using Atlas API credentials, be sure to assign only the minimum required permissions to your service account. See [Atlas API Permissions](#atlas-api-permissions) for details.
50
+ > **🔒 Security Recommendation 1:** When using Atlas API credentials, be sure to assign only the minimum required permissions to your service account. See [Atlas API Permissions](#atlas-api-permissions) for details.
51
+
52
+ > **🔒 Security Recommendation 2:** For enhanced security, we strongly recommend using environment variables to pass sensitive configuration such as connection strings and API credentials instead of command line arguments. Command line arguments can be visible in process lists and logged in various system locations, potentially exposing your secrets. Environment variables provide a more secure way to handle sensitive information.
51
53
 
52
54
  Most MCP clients require a configuration file to be created or modified to add the MCP server.
53
55
 
@@ -60,22 +62,19 @@ Note: The configuration file syntax can be different across clients. Please refe
60
62
 
61
63
  > **Default Safety Notice:** All examples below include `--readOnly` by default to ensure safe, read-only access to your data. Remove `--readOnly` if you need to enable write operations.
62
64
 
63
- #### Option 1: Connection String args
65
+ #### Option 1: Connection String
64
66
 
65
- You can pass your connection string via args, make sure to use a valid username and password.
67
+ You can pass your connection string via environment variables, make sure to use a valid username and password.
66
68
 
67
69
  ```json
68
70
  {
69
71
  "mcpServers": {
70
72
  "MongoDB": {
71
73
  "command": "npx",
72
- "args": [
73
- "-y",
74
- "mongodb-mcp-server",
75
- "--connectionString",
76
- "mongodb://localhost:27017/myDatabase",
77
- "--readOnly"
78
- ]
74
+ "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
75
+ "env": {
76
+ "MDB_MCP_CONNECTION_STRING": "mongodb://localhost:27017/myDatabase"
77
+ }
79
78
  }
80
79
  }
81
80
  }
@@ -83,7 +82,7 @@ You can pass your connection string via args, make sure to use a valid username
83
82
 
84
83
  NOTE: The connection string can be configured to connect to any MongoDB cluster, whether it's a local instance or an Atlas cluster.
85
84
 
86
- #### Option 2: Atlas API credentials args
85
+ #### Option 2: Atlas API Credentials
87
86
 
88
87
  Use your Atlas API Service Accounts credentials. Must follow all the steps in [Atlas API Access](#atlas-api-access) section.
89
88
 
@@ -92,43 +91,37 @@ Use your Atlas API Service Accounts credentials. Must follow all the steps in [A
92
91
  "mcpServers": {
93
92
  "MongoDB": {
94
93
  "command": "npx",
95
- "args": [
96
- "-y",
97
- "mongodb-mcp-server",
98
- "--apiClientId",
99
- "your-atlas-service-accounts-client-id",
100
- "--apiClientSecret",
101
- "your-atlas-service-accounts-client-secret",
102
- "--readOnly"
103
- ]
94
+ "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
95
+ "env": {
96
+ "MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
97
+ "MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
98
+ }
104
99
  }
105
100
  }
106
101
  }
107
102
  ```
108
103
 
109
- #### Option 3: Standalone Service using command arguments
104
+ #### Option 3: Standalone Service using environment variables and command line arguments
110
105
 
111
- Start Server using npx command:
106
+ You can source environment variables defined in a config file or explicitly set them like we do in the example below and run the server via npx.
112
107
 
113
108
  ```shell
114
- npx -y mongodb-mcp-server@latest --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --readOnly
115
- ```
116
-
117
- - For a complete list of arguments see [Configuration Options](#configuration-options)
118
- - To configure your Atlas Service Accounts credentials please refer to [Atlas API Access](#atlas-api-access)
119
-
120
- #### Option 4: Standalone Service using environment variables
109
+ # Set your credentials as environment variables first
110
+ export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
111
+ export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
121
112
 
122
- ```shell
123
- npx -y mongodb-mcp-server@latest --readOnly
113
+ # Then start the server
114
+ npx -y mongodb-mcp-server@latest --readOnly
124
115
  ```
125
116
 
126
- You can use environment variables in the config file or set them and run the server via npx.
117
+ > **💡 Platform Note:** The examples above use Unix/Linux/macOS syntax. For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
127
118
 
119
+ - For a complete list of configuration options see [Configuration Options](#configuration-options)
120
+ - To configure your Atlas Service Accounts credentials please refer to [Atlas API Access](#atlas-api-access)
128
121
  - Connection String via environment variables in the MCP file [example](#connection-string-with-environment-variables)
129
122
  - Atlas API credentials via environment variables in the MCP file [example](#atlas-api-credentials-with-environment-variables)
130
123
 
131
- #### Option 5: Using Docker
124
+ #### Option 4: Using Docker
132
125
 
133
126
  You can run the MongoDB MCP Server in a Docker container, which provides isolation and doesn't require a local Node.js installation.
134
127
 
@@ -146,22 +139,35 @@ docker run --rm -i \
146
139
  ##### Option B: With MongoDB connection string
147
140
 
148
141
  ```shell
142
+ # Set your credentials as environment variables first
143
+ export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
144
+
145
+ # Then start the docker container
149
146
  docker run --rm -i \
150
- -e MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" \
147
+ -e MDB_MCP_CONNECTION_STRING \
151
148
  -e MDB_MCP_READ_ONLY="true" \
152
149
  mongodb/mongodb-mcp-server:latest
153
150
  ```
154
151
 
152
+ > **💡 Platform Note:** The examples above use Unix/Linux/macOS syntax. For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
153
+
155
154
  ##### Option C: With Atlas API credentials
156
155
 
157
156
  ```shell
157
+ # Set your credentials as environment variables first
158
+ export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
159
+ export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
160
+
161
+ # Then start the docker container
158
162
  docker run --rm -i \
159
- -e MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id" \
160
- -e MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret" \
163
+ -e MDB_MCP_API_CLIENT_ID \
164
+ -e MDB_MCP_API_CLIENT_SECRET \
161
165
  -e MDB_MCP_READ_ONLY="true" \
162
166
  mongodb/mongodb-mcp-server:latest
163
167
  ```
164
168
 
169
+ > **💡 Platform Note:** The examples above use Unix/Linux/macOS syntax. For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
170
+
165
171
  ##### Docker in MCP Configuration File
166
172
 
167
173
  Without options:
@@ -196,11 +202,14 @@ With connection string:
196
202
  "--rm",
197
203
  "-i",
198
204
  "-e",
199
- "MDB_MCP_CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/myDatabase",
205
+ "MDB_MCP_CONNECTION_STRING",
200
206
  "-e",
201
207
  "MDB_MCP_READ_ONLY=true",
202
208
  "mongodb/mongodb-mcp-server:latest"
203
- ]
209
+ ],
210
+ "env": {
211
+ "MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
212
+ }
204
213
  }
205
214
  }
206
215
  }
@@ -220,17 +229,21 @@ With Atlas API credentials:
220
229
  "-e",
221
230
  "MDB_MCP_READ_ONLY=true",
222
231
  "-e",
223
- "MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id",
232
+ "MDB_MCP_API_CLIENT_ID",
224
233
  "-e",
225
- "MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret",
234
+ "MDB_MCP_API_CLIENT_SECRET",
226
235
  "mongodb/mongodb-mcp-server:latest"
227
- ]
236
+ ],
237
+ "env": {
238
+ "MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
239
+ "MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
240
+ }
228
241
  }
229
242
  }
230
243
  }
231
244
  ```
232
245
 
233
- #### Option 6: Running as an HTTP Server
246
+ #### Option 5: Running as an HTTP Server
234
247
 
235
248
  > **⚠️ Security Notice:** This server now supports Streamable HTTP transport for remote connections. **HTTP transport is NOT recommended for production use without implementing proper authentication and security measures.**
236
249
 
@@ -316,6 +329,8 @@ NOTE: atlas tools are only available when you set credentials on [configuration]
316
329
 
317
330
  ## Configuration
318
331
 
332
+ > **🔒 Security Best Practice:** We strongly recommend using environment variables for sensitive configuration such as API credentials (`MDB_MCP_API_CLIENT_ID`, `MDB_MCP_API_CLIENT_SECRET`) and connection strings (`MDB_MCP_CONNECTION_STRING`) instead of command-line arguments. Environment variables are not visible in process lists and provide better security for your sensitive data.
333
+
319
334
  The MongoDB MCP Server can be configured using multiple methods, with the following precedence (highest to lowest):
320
335
 
321
336
  1. Command-line arguments
@@ -361,6 +376,8 @@ You can combine multiple loggers, e.g. `--loggers disk stderr` or `export MDB_MC
361
376
  export MDB_MCP_LOGGERS="disk,stderr"
362
377
  ```
363
378
 
379
+ > **💡 Platform Note:** For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
380
+
364
381
  ##### Example: Set logger via command-line argument
365
382
 
366
383
  ```shell
@@ -411,6 +428,8 @@ You can enable read-only mode using:
411
428
  - **Environment variable**: `export MDB_MCP_READ_ONLY=true`
412
429
  - **Command-line argument**: `--readOnly`
413
430
 
431
+ > **💡 Platform Note:** For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
432
+
414
433
  When read-only mode is active, you'll see a message in the server logs indicating which tools were prevented from registering due to this restriction.
415
434
 
416
435
  #### Index Check Mode
@@ -424,6 +443,8 @@ You can enable index check mode using:
424
443
  - **Environment variable**: `export MDB_MCP_INDEX_CHECK=true`
425
444
  - **Command-line argument**: `--indexCheck`
426
445
 
446
+ > **💡 Platform Note:** For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
447
+
427
448
  When index check mode is active, you'll see an error message if a query is rejected due to not using an index.
428
449
 
429
450
  #### Exports
@@ -447,6 +468,8 @@ You can disable telemetry using:
447
468
  - **Command-line argument**: `--telemetry disabled`
448
469
  - **DO_NOT_TRACK environment variable**: `export DO_NOT_TRACK=1`
449
470
 
471
+ > **💡 Platform Note:** For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
472
+
450
473
  ### Atlas API Access
451
474
 
452
475
  To use the Atlas API tools, you'll need to create a service account in MongoDB Atlas:
@@ -500,7 +523,9 @@ For a full list of roles and their privileges, see the [Atlas User Roles documen
500
523
 
501
524
  Set environment variables with the prefix `MDB_MCP_` followed by the option name in uppercase with underscores:
502
525
 
503
- ```shell
526
+ **Linux/macOS (bash/zsh):**
527
+
528
+ ```bash
504
529
  # Set Atlas API credentials (via Service Accounts)
505
530
  export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
506
531
  export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
@@ -508,8 +533,33 @@ export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
508
533
  # Set a custom MongoDB connection string
509
534
  export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
510
535
 
536
+ # Set log path
511
537
  export MDB_MCP_LOG_PATH="/path/to/logs"
538
+ ```
512
539
 
540
+ **Windows Command Prompt (cmd):**
541
+
542
+ ```cmd
543
+ set "MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id"
544
+ set "MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret"
545
+
546
+ set "MDB_MCP_CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
547
+
548
+ set "MDB_MCP_LOG_PATH=C:\path\to\logs"
549
+ ```
550
+
551
+ **Windows PowerShell:**
552
+
553
+ ```powershell
554
+ # Set Atlas API credentials (via Service Accounts)
555
+ $env:MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
556
+ $env:MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
557
+
558
+ # Set a custom MongoDB connection string
559
+ $env:MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
560
+
561
+ # Set log path
562
+ $env:MDB_MCP_LOG_PATH="C:\path\to\logs"
513
563
  ```
514
564
 
515
565
  #### MCP configuration file examples
@@ -551,14 +601,26 @@ export MDB_MCP_LOG_PATH="/path/to/logs"
551
601
 
552
602
  Pass configuration options as command-line arguments when starting the server:
553
603
 
604
+ > **🔒 Security Note:** For sensitive configuration like API credentials and connection strings, use environment variables instead of command-line arguments.
605
+
554
606
  ```shell
555
- npx -y mongodb-mcp-server@latest --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --connectionString="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" --logPath=/path/to/logs --readOnly --indexCheck
607
+ # Set sensitive data as environment variable
608
+ export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
609
+ export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
610
+ export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
611
+
612
+ # Start the server with command line arguments
613
+ npx -y mongodb-mcp-server@latest --logPath=/path/to/logs --readOnly --indexCheck
556
614
  ```
557
615
 
616
+ > **💡 Platform Note:** The examples above use Unix/Linux/macOS syntax. For Windows users, see [Environment Variables](#environment-variables) for platform-specific instructions.
617
+
558
618
  #### MCP configuration file examples
559
619
 
560
620
  ##### Connection String with command-line arguments
561
621
 
622
+ > **🔒 Security Note:** We do not recommend passing connection string as command line argument. Connection string might contain credentials which can be visible in process lists and logged in various system locations, potentially exposing your credentials. Instead configure [connection string through environment variables](#connection-string-with-environment-variables)
623
+
562
624
  ```json
563
625
  {
564
626
  "mcpServers": {
@@ -578,6 +640,8 @@ npx -y mongodb-mcp-server@latest --apiClientId="your-atlas-service-accounts-clie
578
640
 
579
641
  ##### Atlas API credentials with command-line arguments
580
642
 
643
+ > **🔒 Security Note:** We do not recommend passing Atlas API credentials as command line argument. The provided credentials can be visible in process lists and logged in various system locations, potentially exposing your credentials. Instead configure [Atlas API credentials through environment variables](#atlas-api-credentials-with-environment-variables)
644
+
581
645
  ```json
582
646
  {
583
647
  "mcpServers": {
@@ -10,6 +10,7 @@ export declare function makeCurrentIpAccessListEntry(apiClient: ApiClient, proje
10
10
  * If the IP is already present, this is a no-op.
11
11
  * @param apiClient The Atlas API client instance
12
12
  * @param projectId The Atlas project ID
13
+ * @returns Promise<boolean> - true if a new IP access list entry was created, false if it already existed
13
14
  */
14
- export declare function ensureCurrentIpInAccessList(apiClient: ApiClient, projectId: string): Promise<void>;
15
+ export declare function ensureCurrentIpInAccessList(apiClient: ApiClient, projectId: string): Promise<boolean>;
15
16
  //# sourceMappingURL=accessListUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessListUtils.d.ts","sourceRoot":"","sources":["../../../../src/common/atlas/accessListUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,eAAO,MAAM,2BAA2B,sDAAsD,CAAC;AAE/F,wBAAsB,4BAA4B,CAC9C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAoC,GAC9C,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAOlE;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BxG"}
1
+ {"version":3,"file":"accessListUtils.d.ts","sourceRoot":"","sources":["../../../../src/common/atlas/accessListUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,eAAO,MAAM,2BAA2B,sDAAsD,CAAC;AAE/F,wBAAsB,4BAA4B,CAC9C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAoC,GAC9C,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAOlE;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8B3G"}
@@ -19,6 +19,7 @@ async function makeCurrentIpAccessListEntry(apiClient, projectId, comment = expo
19
19
  * If the IP is already present, this is a no-op.
20
20
  * @param apiClient The Atlas API client instance
21
21
  * @param projectId The Atlas project ID
22
+ * @returns Promise<boolean> - true if a new IP access list entry was created, false if it already existed
22
23
  */
23
24
  async function ensureCurrentIpInAccessList(apiClient, projectId) {
24
25
  const entry = await makeCurrentIpAccessListEntry(apiClient, projectId, exports.DEFAULT_ACCESS_LIST_COMMENT);
@@ -32,6 +33,7 @@ async function ensureCurrentIpInAccessList(apiClient, projectId) {
32
33
  context: "accessListUtils",
33
34
  message: `IP access list created: ${JSON.stringify(entry)}`,
34
35
  });
36
+ return true;
35
37
  }
36
38
  catch (err) {
37
39
  if (err instanceof apiClientError_js_1.ApiClientError && err.response?.status === 409) {
@@ -41,7 +43,7 @@ async function ensureCurrentIpInAccessList(apiClient, projectId) {
41
43
  context: "accessListUtils",
42
44
  message: `IP address ${entry.ipAddress} is already present in the access list for project ${projectId}.`,
43
45
  });
44
- return;
46
+ return false;
45
47
  }
46
48
  apiClient.logger.warning({
47
49
  id: logger_js_1.LogId.atlasIpAccessListAddFailure,
@@ -49,5 +51,6 @@ async function ensureCurrentIpInAccessList(apiClient, projectId) {
49
51
  message: `Error adding IP access list: ${err instanceof Error ? err.message : String(err)}`,
50
52
  });
51
53
  }
54
+ return false;
52
55
  }
53
56
  //# sourceMappingURL=accessListUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessListUtils.js","sourceRoot":"","sources":["../../../../src/common/atlas/accessListUtils.ts"],"names":[],"mappings":";;;AAMA,oEAWC;AAQD,kEA4BC;AApDD,4CAAqC;AACrC,2DAAqD;AAExC,QAAA,2BAA2B,GAAG,mDAAmD,CAAC;AAExF,KAAK,UAAU,4BAA4B,CAC9C,SAAoB,EACpB,SAAiB,EACjB,UAAkB,mCAA2B;IAE7C,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;IAC3D,OAAO;QACH,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,kBAAkB;QAC7B,OAAO;KACV,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,2BAA2B,CAAC,SAAoB,EAAE,SAAiB;IACrF,MAAM,KAAK,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,SAAS,EAAE,mCAA2B,CAAC,CAAC;IACpG,IAAI,CAAC;QACD,MAAM,SAAS,CAAC,yBAAyB,CAAC;YACtC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;YACxC,IAAI,EAAE,CAAC,KAAK,CAAC;SAChB,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YACnB,EAAE,EAAE,iBAAK,CAAC,sBAAsB;YAChC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;SAC9D,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,kCAAc,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAChE,+CAA+C;YAC/C,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnB,EAAE,EAAE,iBAAK,CAAC,sBAAsB;gBAChC,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,cAAc,KAAK,CAAC,SAAS,sDAAsD,SAAS,GAAG;aAC3G,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACrB,EAAE,EAAE,iBAAK,CAAC,2BAA2B;YACrC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC9F,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"accessListUtils.js","sourceRoot":"","sources":["../../../../src/common/atlas/accessListUtils.ts"],"names":[],"mappings":";;;AAMA,oEAWC;AASD,kEA8BC;AAvDD,4CAAqC;AACrC,2DAAqD;AAExC,QAAA,2BAA2B,GAAG,mDAAmD,CAAC;AAExF,KAAK,UAAU,4BAA4B,CAC9C,SAAoB,EACpB,SAAiB,EACjB,UAAkB,mCAA2B;IAE7C,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;IAC3D,OAAO;QACH,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,kBAAkB;QAC7B,OAAO;KACV,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,2BAA2B,CAAC,SAAoB,EAAE,SAAiB;IACrF,MAAM,KAAK,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,SAAS,EAAE,mCAA2B,CAAC,CAAC;IACpG,IAAI,CAAC;QACD,MAAM,SAAS,CAAC,yBAAyB,CAAC;YACtC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;YACxC,IAAI,EAAE,CAAC,KAAK,CAAC;SAChB,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YACnB,EAAE,EAAE,iBAAK,CAAC,sBAAsB;YAChC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;SAC9D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,kCAAc,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAChE,+CAA+C;YAC/C,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnB,EAAE,EAAE,iBAAK,CAAC,sBAAsB;gBAChC,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,cAAc,KAAK,CAAC,SAAS,sDAAsD,SAAS,GAAG;aAC3G,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACrB,EAAE,EAAE,iBAAK,CAAC,2BAA2B;YACrC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC9F,CAAC,CAAC;IACP,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import type { CliOptions, ConnectionInfo } from "@mongosh/arg-parser";
2
+ export declare function validateConfigKey(key: string): {
3
+ valid: boolean;
4
+ suggestion?: string;
5
+ };
2
6
  export interface UserConfig extends CliOptions {
3
7
  apiBaseUrl: string;
4
8
  apiClientId?: string;
@@ -25,9 +29,11 @@ export declare const config: UserConfig;
25
29
  export type DriverOptions = ConnectionInfo["driverOptions"];
26
30
  export declare const defaultDriverOptions: DriverOptions;
27
31
  export declare const driverOptions: Omit<import("@mongosh/arg-parser").DevtoolsConnectOptions, "productName" | "productDocsLink">;
28
- export declare function warnAboutDeprecatedCliArgs(args: CliOptions & UserConfig & {
29
- _?: string[];
30
- }, warn: (msg: string) => void): void;
32
+ export declare function warnAboutDeprecatedOrUnknownCliArgs(args: Record<string, unknown>, { warn, exit }: {
33
+ warn: (msg: string) => void;
34
+ exit: (status: number) => void | never;
35
+ }): void;
36
+ export declare function registerKnownSecretsInRootKeychain(userConfig: Partial<UserConfig>): void;
31
37
  export declare function setupUserConfig({ cli, env, defaults, }: {
32
38
  cli: string[];
33
39
  env: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAmGtE,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,iBAAiB,EAAE,UAiB/B,CAAC;AAEF,eAAO,MAAM,MAAM,YAIjB,CAAC;AAQH,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAC5D,eAAO,MAAM,oBAAoB,EAAE,aAWlC,CAAC;AAEF,eAAO,MAAM,aAAa,+FAGxB,CAAC;AAqGH,wBAAgB,0BAA0B,CACtC,IAAI,EAAE,UAAU,GACZ,UAAU,GAAG;IACT,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,EACL,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,IAAI,CAcN;AAyBD,wBAAgB,eAAe,CAAC,EAC5B,GAAG,EACH,GAAG,EACH,QAAQ,GACX,EAAE;IACC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACjC,GAAG,UAAU,CA8Cb;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,MAAM,EACN,QAAQ,GACX,EAAE;IACC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACpC,GAAG,aAAa,CAMhB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkGtE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CA6BtF;AAaD,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,iBAAiB,EAAE,UAiB/B,CAAC;AAEF,eAAO,MAAM,MAAM,YAIjB,CAAC;AAQH,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAC5D,eAAO,MAAM,oBAAoB,EAAE,aAWlC,CAAC;AAEF,eAAO,MAAM,aAAa,+FAGxB,CAAC;AAkHH,wBAAgB,mCAAmC,CAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,KAAK,CAAA;CAAE,GACxF,IAAI,CAsCN;AAyBD,wBAAgB,kCAAkC,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAqBxF;AAED,wBAAgB,eAAe,CAAC,EAC5B,GAAG,EACH,GAAG,EACH,QAAQ,GACX,EAAE;IACC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACjC,GAAG,UAAU,CA+Cb;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,MAAM,EACN,QAAQ,GACX,EAAE;IACC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACpC,GAAG,aAAa,CAMhB"}
@@ -4,13 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.driverOptions = exports.defaultDriverOptions = exports.config = exports.defaultUserConfig = void 0;
7
- exports.warnAboutDeprecatedCliArgs = warnAboutDeprecatedCliArgs;
7
+ exports.validateConfigKey = validateConfigKey;
8
+ exports.warnAboutDeprecatedOrUnknownCliArgs = warnAboutDeprecatedOrUnknownCliArgs;
9
+ exports.registerKnownSecretsInRootKeychain = registerKnownSecretsInRootKeychain;
8
10
  exports.setupUserConfig = setupUserConfig;
9
11
  exports.setupDriverConfig = setupDriverConfig;
10
12
  const path_1 = __importDefault(require("path"));
11
13
  const os_1 = __importDefault(require("os"));
12
14
  const yargs_parser_1 = __importDefault(require("yargs-parser"));
13
15
  const arg_parser_1 = require("@mongosh/arg-parser");
16
+ const keychain_js_1 = require("./keychain.js");
17
+ const ts_levenshtein_1 = __importDefault(require("ts-levenshtein"));
14
18
  // From: https://github.com/mongodb-js/mongosh/blob/main/packages/cli-repl/src/arg-parser.ts
15
19
  const OPTIONS = {
16
20
  string: [
@@ -95,6 +99,35 @@ const OPTIONS = {
95
99
  "short-option-groups": false,
96
100
  },
97
101
  };
102
+ const ALL_CONFIG_KEYS = new Set(OPTIONS.string
103
+ .concat(OPTIONS.array)
104
+ .concat(OPTIONS.boolean)
105
+ .concat(Object.keys(OPTIONS.alias)));
106
+ function validateConfigKey(key) {
107
+ if (ALL_CONFIG_KEYS.has(key)) {
108
+ return { valid: true };
109
+ }
110
+ let minLev = Number.MAX_VALUE;
111
+ let suggestion = "";
112
+ // find the closest match for a suggestion
113
+ for (const validKey of ALL_CONFIG_KEYS) {
114
+ // check if there is an exact case-insensitive match
115
+ if (validKey.toLowerCase() === key.toLowerCase()) {
116
+ return { valid: false, suggestion: validKey };
117
+ }
118
+ // else, infer something using levenshtein so we suggest a valid key
119
+ const lev = ts_levenshtein_1.default.get(key, validKey);
120
+ if (lev < minLev) {
121
+ minLev = lev;
122
+ suggestion = validKey;
123
+ }
124
+ }
125
+ if (minLev <= 2) {
126
+ // accept up to 2 typos
127
+ return { valid: false, suggestion };
128
+ }
129
+ return { valid: false };
130
+ }
98
131
  function isConnectionSpecifier(arg) {
99
132
  return (arg !== undefined &&
100
133
  (arg.startsWith("mongodb://") ||
@@ -156,12 +189,17 @@ function getExportsPath() {
156
189
  // are prefixed with `MDB_MCP_` and the keys match the UserConfig keys, but are converted
157
190
  // to SNAKE_UPPER_CASE.
158
191
  function parseEnvConfig(env) {
192
+ const CONFIG_WITH_URLS = new Set(["connectionString"]);
159
193
  function setValue(obj, path, value) {
160
194
  const currentField = path.shift();
161
195
  if (!currentField) {
162
196
  return;
163
197
  }
164
198
  if (path.length === 0) {
199
+ if (CONFIG_WITH_URLS.has(currentField)) {
200
+ obj[currentField] = value;
201
+ return;
202
+ }
165
203
  const numberValue = Number(value);
166
204
  if (!isNaN(numberValue)) {
167
205
  obj[currentField] = numberValue;
@@ -212,7 +250,10 @@ function parseCliConfig(args) {
212
250
  // so we don't have a logger. For stdio, the warning will be received as a string in
213
251
  // the client and IDEs like VSCode do show the message in the log window. For HTTP,
214
252
  // it will be in the stdout of the process.
215
- warnAboutDeprecatedCliArgs({ ...parsed, _: positionalArguments }, console.warn);
253
+ warnAboutDeprecatedOrUnknownCliArgs({ ...parsed, _: positionalArguments }, {
254
+ warn: (msg) => console.warn(msg),
255
+ exit: (status) => process.exit(status),
256
+ });
216
257
  // if we have a positional argument that matches a connection string
217
258
  // store it as the connection specifier and remove it from the argument
218
259
  // list, so it doesn't get misunderstood by the mongosh args-parser
@@ -222,17 +263,38 @@ function parseCliConfig(args) {
222
263
  delete parsed._;
223
264
  return parsed;
224
265
  }
225
- function warnAboutDeprecatedCliArgs(args, warn) {
266
+ function warnAboutDeprecatedOrUnknownCliArgs(args, { warn, exit }) {
226
267
  let usedDeprecatedArgument = false;
268
+ let usedInvalidArgument = false;
269
+ const knownArgs = args;
227
270
  // the first position argument should be used
228
271
  // instead of --connectionString, as it's how the mongosh works.
229
- if (args.connectionString) {
272
+ if (knownArgs.connectionString) {
230
273
  usedDeprecatedArgument = true;
231
274
  warn("The --connectionString argument is deprecated. Prefer using the first positional argument for the connection string or the MDB_MCP_CONNECTION_STRING environment variable.");
232
275
  }
233
- if (usedDeprecatedArgument) {
276
+ for (const providedKey of Object.keys(args)) {
277
+ if (providedKey === "_") {
278
+ // positional argument
279
+ continue;
280
+ }
281
+ const { valid, suggestion } = validateConfigKey(providedKey);
282
+ if (!valid) {
283
+ usedInvalidArgument = true;
284
+ if (suggestion) {
285
+ warn(`Invalid command line argument '${providedKey}'. Did you mean '${suggestion}'?`);
286
+ }
287
+ else {
288
+ warn(`Invalid command line argument '${providedKey}'.`);
289
+ }
290
+ }
291
+ }
292
+ if (usedInvalidArgument || usedDeprecatedArgument) {
234
293
  warn("Refer to https://www.mongodb.com/docs/mcp-server/get-started/ for setting up the MCP Server.");
235
294
  }
295
+ if (usedInvalidArgument) {
296
+ exit(1);
297
+ }
236
298
  }
237
299
  function commaSeparatedToArray(str) {
238
300
  if (str === undefined) {
@@ -252,6 +314,26 @@ function commaSeparatedToArray(str) {
252
314
  }
253
315
  return str;
254
316
  }
317
+ function registerKnownSecretsInRootKeychain(userConfig) {
318
+ const keychain = keychain_js_1.Keychain.root;
319
+ const maybeRegister = (value, kind) => {
320
+ if (value) {
321
+ keychain.register(value, kind);
322
+ }
323
+ };
324
+ maybeRegister(userConfig.apiClientId, "user");
325
+ maybeRegister(userConfig.apiClientSecret, "password");
326
+ maybeRegister(userConfig.awsAccessKeyId, "password");
327
+ maybeRegister(userConfig.awsIamSessionToken, "password");
328
+ maybeRegister(userConfig.awsSecretAccessKey, "password");
329
+ maybeRegister(userConfig.awsSessionToken, "password");
330
+ maybeRegister(userConfig.password, "password");
331
+ maybeRegister(userConfig.tlsCAFile, "url");
332
+ maybeRegister(userConfig.tlsCRLFile, "url");
333
+ maybeRegister(userConfig.tlsCertificateKeyFile, "url");
334
+ maybeRegister(userConfig.tlsCertificateKeyFilePassword, "password");
335
+ maybeRegister(userConfig.username, "user");
336
+ }
255
337
  function setupUserConfig({ cli, env, defaults, }) {
256
338
  const userConfig = {
257
339
  ...defaults,
@@ -288,6 +370,7 @@ function setupUserConfig({ cli, env, defaults, }) {
288
370
  throw new Error(`Invalid logger: ${loggerType}`);
289
371
  }
290
372
  }
373
+ registerKnownSecretsInRootKeychain(userConfig);
291
374
  return userConfig;
292
375
  }
293
376
  function setupDriverConfig({ config, defaults, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ import { ErrorCodes, type MongoDBError } from "./errors.js";
3
+ import type { AnyConnectionState } from "./connectionManager.js";
4
+ import type { ToolBase } from "../tools/tool.js";
5
+ export type ConnectionErrorHandler = (error: MongoDBError<ErrorCodes.NotConnectedToMongoDB | ErrorCodes.MisconfiguredConnectionString>, additionalContext: ConnectionErrorHandlerContext) => ConnectionErrorUnhandled | ConnectionErrorHandled;
6
+ export type ConnectionErrorHandlerContext = {
7
+ availableTools: ToolBase[];
8
+ connectionState: AnyConnectionState;
9
+ };
10
+ export type ConnectionErrorUnhandled = {
11
+ errorHandled: false;
12
+ };
13
+ export type ConnectionErrorHandled = {
14
+ errorHandled: true;
15
+ result: CallToolResult;
16
+ };
17
+ export declare const connectionErrorHandler: ConnectionErrorHandler;
18
+ //# sourceMappingURL=connectionErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/common/connectionErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,sBAAsB,GAAG,CACjC,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,qBAAqB,GAAG,UAAU,CAAC,6BAA6B,CAAC,EAChG,iBAAiB,EAAE,6BAA6B,KAC/C,wBAAwB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,MAAM,6BAA6B,GAAG;IAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IAAC,eAAe,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAChH,MAAM,MAAM,wBAAwB,GAAG;IAAE,YAAY,EAAE,KAAK,CAAA;CAAE,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAAG;IAAE,YAAY,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,sBAmEpC,CAAC"}