@bitwarden/mcp-server 2025.10.1 → 2025.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,6 +7,34 @@ A Model Context Protocol (MCP) server that provides AI assistants with secure ac
7
7
 
8
8
  [![npm version](https://img.shields.io/npm/v/@bitwarden/mcp-server.svg)](https://www.npmjs.com/package/@bitwarden/mcp-server)
9
9
 
10
+ > [!WARNING]
11
+ > This MCP server is designed exclusively for local use and must never be hosted publicly or exposed over a network.
12
+ >
13
+ > When you grant an AI assistant access to this server, you are providing the ability to:
14
+ >
15
+ > - Read vault items including passwords, secure notes, and sensitive data
16
+ > - Create, modify, and delete vault items
17
+ > - Access organization secrets and administrative functions
18
+ > - Expose credentials and vault contents through AI responses
19
+ >
20
+ > **You are responsible for:**
21
+ >
22
+ > - Ensuring this server runs only on your local machine or self-hosted environment
23
+ > - Understanding what data you're exposing to your AI assistant
24
+ > - Being aware that AI responses may inadvertently reveal sensitive information
25
+ > - Using appropriate AI providers (consider self-hosted or local LLMs for sensitive data)
26
+ > - Never sharing configuration files containing session tokens or API credentials
27
+ > - Monitoring logs for unexpected activity
28
+ >
29
+ > **Never:**
30
+ >
31
+ > - Deploy this server to cloud hosting, containers, or public servers
32
+ > - Share your MCP configuration files with others
33
+ > - Use this server over untrusted networks
34
+ > - Grant access to untrusted AI clients or services
35
+ >
36
+ > Use this tool responsibly and at your own risk.
37
+
10
38
  ## What is MCP?
11
39
 
12
40
  The [Model Context Protocol](https://modelcontextprotocol.io/) is an open standard that enables AI assistants to securely interact with local tools and services. This server exposes Bitwarden's vault management and organization administration capabilities to MCP-compatible AI clients like Claude Desktop.
@@ -55,6 +83,9 @@ The [Model Context Protocol](https://modelcontextprotocol.io/) is an open standa
55
83
 
56
84
  ### Configuration
57
85
 
86
+ > [!WARNING]
87
+ > The configuration files below will contain sensitive credentials that grant access to your Bitwarden vault. Keep these files secure, never commit them to version control, and never share them with others. Ensure your MCP client (e.g., Claude Desktop) is configured to run the server locally only.
88
+
58
89
  #### Option 1: Claude Desktop (Recommended)
59
90
 
60
91
  Add to your Claude Desktop configuration file:
@@ -139,13 +170,14 @@ Any MCP-compatible client can connect to this server via stdio transport. Refer
139
170
 
140
171
  ### Environment Variables
141
172
 
142
- | Variable | Required For | Description | Default |
143
- | ------------------ | -------------- | ------------------------------------ | -------------------------------- |
144
- | `BW_SESSION` | CLI operations | Session token from `bw unlock --raw` | - |
145
- | `BW_CLIENT_ID` | API operations | Organization API client ID | - |
146
- | `BW_CLIENT_SECRET` | API operations | Organization API client secret | - |
147
- | `BW_API_BASE_URL` | API operations | Bitwarden API base URL | `https://api.bitwarden.com` |
148
- | `BW_IDENTITY_URL` | API operations | OAuth2 identity server URL | `https://identity.bitwarden.com` |
173
+ | Variable | Required For | Description | Default |
174
+ | ------------------------ | --------------- | ------------------------------------------------ | ---------------------------------- |
175
+ | `BW_SESSION` | CLI operations | Session token from `bw unlock --raw` | - |
176
+ | `BW_CLIENT_ID` | API operations | Organization API client ID | - |
177
+ | `BW_CLIENT_SECRET` | API operations | Organization API client secret | - |
178
+ | `BW_API_BASE_URL` | API operations | Bitwarden API base URL | `https://api.bitwarden.com` |
179
+ | `BW_IDENTITY_URL` | API operations | OAuth2 identity server URL | `https://identity.bitwarden.com` |
180
+ | `BW_ALLOWED_DIRECTORIES` | File operations | Comma-separated list of allowed file directories | `os.tmpdir() + '/bitwarden-files'` |
149
181
 
150
182
  **Note:** For self-hosted Bitwarden instances, set `BW_API_BASE_URL` and `BW_IDENTITY_URL` to your server URLs.
151
183
 
@@ -266,7 +298,7 @@ export DEBUG=bitwarden:*
266
298
  export NODE_ENV=development
267
299
  ```
268
300
 
269
- ## Security considerations
301
+ ## Security Considerations
270
302
 
271
303
  - **Never commit** sensitive credentials (`BW_SESSION`, `BW_CLIENT_ID`, `BW_CLIENT_SECRET`)
272
304
  - **Use environment variables** for all sensitive configuration
@@ -287,7 +319,6 @@ export NODE_ENV=development
287
319
  ```
288
320
 
289
321
  - **Session key is invalid**
290
-
291
322
  - Session tokens expire after inactivity
292
323
  - Run `bw unlock --raw` to get a fresh token
293
324
  - Update your MCP configuration with the new token
@@ -295,13 +326,11 @@ export NODE_ENV=development
295
326
  ### API Issues
296
327
 
297
328
  - **Invalid client credentials**
298
-
299
329
  - Verify `BW_CLIENT_ID` starts with `organization.`
300
330
  - Ensure `BW_CLIENT_SECRET` is correct
301
331
  - Check that API keys haven't been rotated in the Admin Console
302
332
 
303
333
  - **403 Forbidden**
304
-
305
334
  - Verify you have organization owner or admin permissions
306
335
  - Some operations require specific roles (e.g., managing members)
307
336
 
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2DH,eAAO,MAAM,UAAU;;;;;;EAGrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;EAGrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;EAGvB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;EAyBrB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;EAepB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;EAsC1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAuF5B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAY9B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EA6H1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAY5B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;EAYxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;EAazB,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAkCrC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;EA6DnC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAuBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;;;;;EAmBtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;EAapC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAcvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;EAa1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;EAcpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAavC,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;EAQzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;EAyChC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;EAsChC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EAIzB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAQzB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EAmD1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAQ5B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;EAQpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;EAclC,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0DH,eAAO,MAAM,UAAU;;;;;;EAGrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;EAGrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;EAGvB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;EAwBrB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;EAcpB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;EAqC1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAsF5B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAW9B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EA+H1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAe5B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;EAWxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;EAYzB,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAgCrC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;EA0DnC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAqBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;;;;;EAiBtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;EAWpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAYvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;EAW1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;EAYpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAWvC,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;EAOzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;EAwChC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;EAqChC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EAGzB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAOzB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EAoD1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAO5B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;EAOpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;EAalC,CAAC"}
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { executeCliCommand } from '../utils/cli.js';
5
5
  import { withValidation } from '../utils/validation.js';
6
- import { buildSafeCommand } from '../utils/security.js';
7
6
  import { lockSchema, syncSchema, statusSchema, listSchema, getSchema, generateSchema, createItemSchema, createFolderSchema, editItemSchema, editFolderSchema, deleteSchema, confirmSchema, createOrgCollectionSchema, editOrgCollectionSchema, editItemCollectionsSchema, moveSchema, deviceApprovalListSchema, deviceApprovalApproveSchema, deviceApprovalApproveAllSchema, deviceApprovalDenySchema, deviceApprovalDenyAllSchema, restoreSchema, createTextSendSchema, createFileSendSchema, listSendSchema, getSendSchema, editSendSchema, deleteSendSchema, removeSendPasswordSchema, createAttachmentSchema, } from '../schemas/cli.js';
8
7
  function toMcpFormat(response) {
9
8
  return {
@@ -19,15 +18,15 @@ function toMcpFormat(response) {
19
18
  };
20
19
  }
21
20
  export const handleLock = withValidation(lockSchema, async () => {
22
- const response = await executeCliCommand('lock');
21
+ const response = await executeCliCommand('lock', []);
23
22
  return toMcpFormat(response);
24
23
  });
25
24
  export const handleSync = withValidation(syncSchema, async () => {
26
- const response = await executeCliCommand('sync');
25
+ const response = await executeCliCommand('sync', []);
27
26
  return toMcpFormat(response);
28
27
  });
29
28
  export const handleStatus = withValidation(statusSchema, async () => {
30
- const response = await executeCliCommand('status');
29
+ const response = await executeCliCommand('status', []);
31
30
  return toMcpFormat(response);
32
31
  });
33
32
  export const handleList = withValidation(listSchema, async (validatedArgs) => {
@@ -51,8 +50,7 @@ export const handleList = withValidation(listSchema, async (validatedArgs) => {
51
50
  if (trash) {
52
51
  params.push('--trash');
53
52
  }
54
- const command = buildSafeCommand('list', params);
55
- const response = await executeCliCommand(command);
53
+ const response = await executeCliCommand('list', params);
56
54
  return toMcpFormat(response);
57
55
  });
58
56
  export const handleGet = withValidation(getSchema, async (validatedArgs) => {
@@ -67,8 +65,7 @@ export const handleGet = withValidation(getSchema, async (validatedArgs) => {
67
65
  if (output) {
68
66
  params.push('--output', output);
69
67
  }
70
- const command = buildSafeCommand('get', params);
71
- const response = await executeCliCommand(command);
68
+ const response = await executeCliCommand('get', params);
72
69
  return toMcpFormat(response);
73
70
  });
74
71
  export const handleGenerate = withValidation(generateSchema, async (validatedArgs) => {
@@ -102,8 +99,7 @@ export const handleGenerate = withValidation(generateSchema, async (validatedArg
102
99
  params.push('--noSpecial');
103
100
  }
104
101
  }
105
- const command = buildSafeCommand('generate', params);
106
- const response = await executeCliCommand(command);
102
+ const response = await executeCliCommand('generate', params);
107
103
  return toMcpFormat(response);
108
104
  });
109
105
  export const handleCreateItem = withValidation(createItemSchema, async (validatedArgs) => {
@@ -200,8 +196,7 @@ export const handleCreateItem = withValidation(createItemSchema, async (validate
200
196
  }
201
197
  const itemJson = JSON.stringify(item);
202
198
  const encodedItem = Buffer.from(itemJson).toString('base64');
203
- const command = buildSafeCommand('create', ['item', encodedItem]);
204
- const response = await executeCliCommand(command);
199
+ const response = await executeCliCommand('create', ['item', encodedItem]);
205
200
  return toMcpFormat(response);
206
201
  });
207
202
  export const handleCreateFolder = withValidation(createFolderSchema, async (validatedArgs) => {
@@ -209,15 +204,13 @@ export const handleCreateFolder = withValidation(createFolderSchema, async (vali
209
204
  const folder = { name };
210
205
  const itemJson = JSON.stringify(folder);
211
206
  const encodedItem = Buffer.from(itemJson).toString('base64');
212
- const command = buildSafeCommand('create', ['folder', encodedItem]);
213
- const response = await executeCliCommand(command);
207
+ const response = await executeCliCommand('create', ['folder', encodedItem]);
214
208
  return toMcpFormat(response);
215
209
  });
216
210
  export const handleEditItem = withValidation(editItemSchema, async (validatedArgs) => {
217
211
  const { id, name, notes, login, card, identity, secureNote, folderId } = validatedArgs;
218
212
  // First, get the existing item
219
- const getCommand = buildSafeCommand('get', ['item', id]);
220
- const getResponse = await executeCliCommand(getCommand);
213
+ const getResponse = await executeCliCommand('get', ['item', id]);
221
214
  if (getResponse.errorOutput) {
222
215
  return toMcpFormat(getResponse);
223
216
  }
@@ -317,8 +310,11 @@ export const handleEditItem = withValidation(editItemSchema, async (validatedArg
317
310
  }
318
311
  const updatesJson = JSON.stringify(existingItem);
319
312
  const encodedUpdates = Buffer.from(updatesJson).toString('base64');
320
- const command = buildSafeCommand('edit', ['item', id, encodedUpdates]);
321
- const response = await executeCliCommand(command);
313
+ const response = await executeCliCommand('edit', [
314
+ 'item',
315
+ id,
316
+ encodedUpdates,
317
+ ]);
322
318
  return toMcpFormat(response);
323
319
  }
324
320
  catch (error) {
@@ -333,8 +329,11 @@ export const handleEditFolder = withValidation(editFolderSchema, async (validate
333
329
  const folder = { name };
334
330
  const itemJson = JSON.stringify(folder);
335
331
  const encodedItem = Buffer.from(itemJson).toString('base64');
336
- const command = buildSafeCommand('edit', ['folder', id, encodedItem]);
337
- const response = await executeCliCommand(command);
332
+ const response = await executeCliCommand('edit', [
333
+ 'folder',
334
+ id,
335
+ encodedItem,
336
+ ]);
338
337
  return toMcpFormat(response);
339
338
  });
340
339
  export const handleDelete = withValidation(deleteSchema, async (validatedArgs) => {
@@ -343,19 +342,17 @@ export const handleDelete = withValidation(deleteSchema, async (validatedArgs) =
343
342
  if (permanent) {
344
343
  params.push('--permanent');
345
344
  }
346
- const command = buildSafeCommand('delete', params);
347
- const response = await executeCliCommand(command);
345
+ const response = await executeCliCommand('delete', params);
348
346
  return toMcpFormat(response);
349
347
  });
350
348
  export const handleConfirm = withValidation(confirmSchema, async (validatedArgs) => {
351
349
  const { organizationId, memberId } = validatedArgs;
352
- const command = buildSafeCommand('confirm', [
350
+ const response = await executeCliCommand('confirm', [
353
351
  'org-member',
354
352
  memberId,
355
353
  '--organizationid',
356
354
  organizationId,
357
355
  ]);
358
- const response = await executeCliCommand(command);
359
356
  return toMcpFormat(response);
360
357
  });
361
358
  export const handleCreateOrgCollection = withValidation(createOrgCollectionSchema, async (validatedArgs) => {
@@ -375,25 +372,23 @@ export const handleCreateOrgCollection = withValidation(createOrgCollectionSchem
375
372
  const collectionJson = JSON.stringify(collection);
376
373
  const encodedJson = Buffer.from(collectionJson, 'utf8').toString('base64');
377
374
  // Build the command
378
- const command = buildSafeCommand('create', [
375
+ const response = await executeCliCommand('create', [
379
376
  'org-collection',
380
377
  encodedJson,
381
378
  '--organizationid',
382
379
  organizationId,
383
380
  ]);
384
- const response = await executeCliCommand(command);
385
381
  return toMcpFormat(response);
386
382
  });
387
383
  export const handleEditOrgCollection = withValidation(editOrgCollectionSchema, async (validatedArgs) => {
388
384
  const { organizationId, collectionId, name, externalId, groups } = validatedArgs;
389
385
  // First, get the existing collection
390
- const getCommand = buildSafeCommand('get', [
386
+ const getResponse = await executeCliCommand('get', [
391
387
  'org-collection',
392
388
  collectionId,
393
389
  '--organizationid',
394
390
  organizationId,
395
391
  ]);
396
- const getResponse = await executeCliCommand(getCommand);
397
392
  if (getResponse.errorOutput) {
398
393
  return toMcpFormat(getResponse);
399
394
  }
@@ -425,14 +420,13 @@ export const handleEditOrgCollection = withValidation(editOrgCollectionSchema, a
425
420
  const collectionJson = JSON.stringify(collection);
426
421
  const encodedJson = Buffer.from(collectionJson, 'utf8').toString('base64');
427
422
  // Build the command
428
- const command = buildSafeCommand('edit', [
423
+ const response = await executeCliCommand('edit', [
429
424
  'org-collection',
430
425
  collectionId,
431
426
  encodedJson,
432
427
  '--organizationid',
433
428
  organizationId,
434
429
  ]);
435
- const response = await executeCliCommand(command);
436
430
  return toMcpFormat(response);
437
431
  });
438
432
  export const handleEditItemCollections = withValidation(editItemCollectionsSchema, async (validatedArgs) => {
@@ -441,14 +435,13 @@ export const handleEditItemCollections = withValidation(editItemCollectionsSchem
441
435
  const collectionIdsJson = JSON.stringify(collectionIds);
442
436
  const encodedJson = Buffer.from(collectionIdsJson, 'utf8').toString('base64');
443
437
  // Build the command
444
- const command = buildSafeCommand('edit', [
438
+ const response = await executeCliCommand('edit', [
445
439
  'item-collections',
446
440
  itemId,
447
441
  encodedJson,
448
442
  '--organizationid',
449
443
  organizationId,
450
444
  ]);
451
- const response = await executeCliCommand(command);
452
445
  return toMcpFormat(response);
453
446
  });
454
447
  /**
@@ -462,12 +455,11 @@ export const handleMove = withValidation(moveSchema, async ({ itemId, organizati
462
455
  const collectionIdsJson = JSON.stringify(collectionIds);
463
456
  const encodedJson = Buffer.from(collectionIdsJson, 'utf8').toString('base64');
464
457
  // Build the command
465
- const command = buildSafeCommand('move', [
458
+ const response = await executeCliCommand('move', [
466
459
  itemId,
467
460
  organizationId,
468
461
  encodedJson,
469
462
  ]);
470
- const response = await executeCliCommand(command);
471
463
  return toMcpFormat(response);
472
464
  });
473
465
  /**
@@ -478,12 +470,11 @@ export const handleMove = withValidation(moveSchema, async ({ itemId, organizati
478
470
  */
479
471
  export const handleDeviceApprovalList = withValidation(deviceApprovalListSchema, async ({ organizationId }) => {
480
472
  // Build the command
481
- const command = buildSafeCommand('device-approval', [
473
+ const response = await executeCliCommand('device-approval', [
482
474
  'list',
483
475
  '--organizationid',
484
476
  organizationId,
485
477
  ]);
486
- const response = await executeCliCommand(command);
487
478
  return toMcpFormat(response);
488
479
  });
489
480
  /**
@@ -494,13 +485,12 @@ export const handleDeviceApprovalList = withValidation(deviceApprovalListSchema,
494
485
  */
495
486
  export const handleDeviceApprovalApprove = withValidation(deviceApprovalApproveSchema, async ({ organizationId, requestId }) => {
496
487
  // Build the command
497
- const command = buildSafeCommand('device-approval', [
488
+ const response = await executeCliCommand('device-approval', [
498
489
  'approve',
499
490
  '--organizationid',
500
491
  organizationId,
501
492
  requestId,
502
493
  ]);
503
- const response = await executeCliCommand(command);
504
494
  return toMcpFormat(response);
505
495
  });
506
496
  /**
@@ -511,12 +501,11 @@ export const handleDeviceApprovalApprove = withValidation(deviceApprovalApproveS
511
501
  */
512
502
  export const handleDeviceApprovalApproveAll = withValidation(deviceApprovalApproveAllSchema, async ({ organizationId }) => {
513
503
  // Build the command
514
- const command = buildSafeCommand('device-approval', [
504
+ const response = await executeCliCommand('device-approval', [
515
505
  'approve-all',
516
506
  '--organizationid',
517
507
  organizationId,
518
508
  ]);
519
- const response = await executeCliCommand(command);
520
509
  return toMcpFormat(response);
521
510
  });
522
511
  /**
@@ -527,13 +516,12 @@ export const handleDeviceApprovalApproveAll = withValidation(deviceApprovalAppro
527
516
  */
528
517
  export const handleDeviceApprovalDeny = withValidation(deviceApprovalDenySchema, async ({ organizationId, requestId }) => {
529
518
  // Build the command
530
- const command = buildSafeCommand('device-approval', [
519
+ const response = await executeCliCommand('device-approval', [
531
520
  'deny',
532
521
  '--organizationid',
533
522
  organizationId,
534
523
  requestId,
535
524
  ]);
536
- const response = await executeCliCommand(command);
537
525
  return toMcpFormat(response);
538
526
  });
539
527
  /**
@@ -544,18 +532,16 @@ export const handleDeviceApprovalDeny = withValidation(deviceApprovalDenySchema,
544
532
  */
545
533
  export const handleDeviceApprovalDenyAll = withValidation(deviceApprovalDenyAllSchema, async ({ organizationId }) => {
546
534
  // Build the command
547
- const command = buildSafeCommand('device-approval', [
535
+ const response = await executeCliCommand('device-approval', [
548
536
  'deny-all',
549
537
  '--organizationid',
550
538
  organizationId,
551
539
  ]);
552
- const response = await executeCliCommand(command);
553
540
  return toMcpFormat(response);
554
541
  });
555
542
  export const handleRestore = withValidation(restoreSchema, async (validatedArgs) => {
556
543
  const { object, id } = validatedArgs;
557
- const command = buildSafeCommand('restore', [object, id]);
558
- const response = await executeCliCommand(command);
544
+ const response = await executeCliCommand('restore', [object, id]);
559
545
  return toMcpFormat(response);
560
546
  });
561
547
  export const handleCreateTextSend = withValidation(createTextSendSchema, async (validatedArgs) => {
@@ -583,8 +569,7 @@ export const handleCreateTextSend = withValidation(createTextSendSchema, async (
583
569
  send.expirationDate = expirationDate;
584
570
  const sendJson = JSON.stringify(send);
585
571
  const encodedSend = Buffer.from(sendJson).toString('base64');
586
- const command = buildSafeCommand('send', ['create', encodedSend]);
587
- const response = await executeCliCommand(command);
572
+ const response = await executeCliCommand('send', ['create', encodedSend]);
588
573
  return toMcpFormat(response);
589
574
  });
590
575
  export const handleCreateFileSend = withValidation(createFileSendSchema, async (validatedArgs) => {
@@ -606,31 +591,27 @@ export const handleCreateFileSend = withValidation(createFileSendSchema, async (
606
591
  send.expirationDate = expirationDate;
607
592
  const sendJson = JSON.stringify(send);
608
593
  const encodedSend = Buffer.from(sendJson).toString('base64');
609
- const command = buildSafeCommand('send', [
594
+ const response = await executeCliCommand('send', [
610
595
  'create',
611
596
  encodedSend,
612
597
  '--file',
613
598
  filePath,
614
599
  ]);
615
- const response = await executeCliCommand(command);
616
600
  return toMcpFormat(response);
617
601
  });
618
602
  export const handleListSend = withValidation(listSendSchema, async () => {
619
- const command = buildSafeCommand('send', ['list']);
620
- const response = await executeCliCommand(command);
603
+ const response = await executeCliCommand('send', ['list']);
621
604
  return toMcpFormat(response);
622
605
  });
623
606
  export const handleGetSend = withValidation(getSendSchema, async (validatedArgs) => {
624
607
  const { id } = validatedArgs;
625
- const command = buildSafeCommand('send', ['get', id]);
626
- const response = await executeCliCommand(command);
608
+ const response = await executeCliCommand('send', ['get', id]);
627
609
  return toMcpFormat(response);
628
610
  });
629
611
  export const handleEditSend = withValidation(editSendSchema, async (validatedArgs) => {
630
612
  const { id, name, notes, password, maxAccessCount, expirationDate, deletionDate, disabled, } = validatedArgs;
631
613
  // First, get the existing Send
632
- const getCommand = buildSafeCommand('send', ['get', id]);
633
- const getResponse = await executeCliCommand(getCommand);
614
+ const getResponse = await executeCliCommand('send', ['get', id]);
634
615
  if (getResponse.errorOutput) {
635
616
  return toMcpFormat(getResponse);
636
617
  }
@@ -654,8 +635,10 @@ export const handleEditSend = withValidation(editSendSchema, async (validatedArg
654
635
  existingSend.disabled = disabled;
655
636
  const updatesJson = JSON.stringify(existingSend);
656
637
  const encodedUpdates = Buffer.from(updatesJson).toString('base64');
657
- const command = buildSafeCommand('send', ['edit', encodedUpdates]);
658
- const response = await executeCliCommand(command);
638
+ const response = await executeCliCommand('send', [
639
+ 'edit',
640
+ encodedUpdates,
641
+ ]);
659
642
  return toMcpFormat(response);
660
643
  }
661
644
  catch (error) {
@@ -667,26 +650,23 @@ export const handleEditSend = withValidation(editSendSchema, async (validatedArg
667
650
  });
668
651
  export const handleDeleteSend = withValidation(deleteSendSchema, async (validatedArgs) => {
669
652
  const { id } = validatedArgs;
670
- const command = buildSafeCommand('send', ['delete', id]);
671
- const response = await executeCliCommand(command);
653
+ const response = await executeCliCommand('send', ['delete', id]);
672
654
  return toMcpFormat(response);
673
655
  });
674
656
  export const handleRemoveSendPassword = withValidation(removeSendPasswordSchema, async (validatedArgs) => {
675
657
  const { id } = validatedArgs;
676
- const command = buildSafeCommand('send', ['remove-password', id]);
677
- const response = await executeCliCommand(command);
658
+ const response = await executeCliCommand('send', ['remove-password', id]);
678
659
  return toMcpFormat(response);
679
660
  });
680
661
  export const handleCreateAttachment = withValidation(createAttachmentSchema, async (validatedArgs) => {
681
662
  const { filePath, itemId } = validatedArgs;
682
- const command = buildSafeCommand('create', [
663
+ const response = await executeCliCommand('create', [
683
664
  'attachment',
684
665
  '--file',
685
666
  filePath,
686
667
  '--itemid',
687
668
  itemId,
688
669
  ]);
689
- const response = await executeCliCommand(command);
690
670
  return toMcpFormat(response);
691
671
  });
692
672
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ import { handleListOrgCollections, handleGetOrgCollection, handleUpdateOrgCollec
24
24
  async function runServer() {
25
25
  const server = new Server({
26
26
  name: 'Bitwarden MCP Server',
27
- version: '2025.10.1',
27
+ version: '2025.10.3',
28
28
  }, {
29
29
  capabilities: {
30
30
  tools: {},
@@ -60,5 +60,11 @@ export declare const organizationApiTools: {
60
60
  _meta?: {
61
61
  [x: string]: unknown;
62
62
  } | undefined;
63
+ icons?: {
64
+ [x: string]: unknown;
65
+ src: string;
66
+ mimeType?: string | undefined;
67
+ sizes?: string[] | undefined;
68
+ }[] | undefined;
63
69
  }[];
64
70
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG/D,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAalC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAkDrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAarC,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,IAQhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA8EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA6EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAajC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,IAQ/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAc7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA6ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA+ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAahC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAsBvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IAcnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAoBvC,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,IAQjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAgB9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAwBjC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,IAyC9B,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAkDvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,IA0EzC,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkChC,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG/D,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAalC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAkDrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAarC,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,IAQhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA8EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA6EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAajC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,IAQ/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAc7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA6ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA+ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAahC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAsBvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IAcnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAoBvC,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,IAQjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAgB9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAwBjC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,IAyC9B,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAkDvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,IA0EzC,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkChC,CAAC"}
@@ -64,5 +64,11 @@ export declare const cliTools: {
64
64
  _meta?: {
65
65
  [x: string]: unknown;
66
66
  } | undefined;
67
+ icons?: {
68
+ [x: string]: unknown;
69
+ src: string;
70
+ mimeType?: string | undefined;
71
+ sizes?: string[] | undefined;
72
+ }[] | undefined;
67
73
  }[];
68
74
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/tools/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAOxB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAkDtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,IA8CrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IA8C1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IA2L5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAuL1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAiB5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAsBxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IA2CrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IA+CnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAwBrC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IA0BtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAiBvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,IAa1C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAiBpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAavC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAyChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAqChC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAO1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAazB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAyC1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAa5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAiBlC,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BpB,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/tools/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAOxB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAkDtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,IA8CrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IA8C1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IA2L5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAuL1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAiB5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAsBxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IA2CrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IA+CnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAwBrC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IA0BtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAiBvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,IAa1C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAiBpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAavC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAyChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAqChC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAO1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAazB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAyC1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAa5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAiBlC,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BpB,CAAC"}
package/dist/utils/api.js CHANGED
@@ -62,7 +62,7 @@ export async function buildSafeApiRequest(endpoint, method, data) {
62
62
  headers: {
63
63
  Authorization: `Bearer ${token}`,
64
64
  'Content-Type': 'application/json',
65
- 'User-Agent': 'Bitwarden-MCP-Server/2025.10.1',
65
+ 'User-Agent': 'Bitwarden-MCP-Server/2025.10.3',
66
66
  },
67
67
  };
68
68
  if (sanitizedData && (upperMethod === 'POST' || upperMethod === 'PUT')) {
@@ -3,7 +3,11 @@
3
3
  */
4
4
  import type { CliResponse } from './types.js';
5
5
  /**
6
- * Executes a Bitwarden CLI command safely with input sanitization and validation
6
+ * Executes a Bitwarden CLI command safely using spawn() to prevent command injection
7
+ * Internally calls buildSafeCommand() to validate and sanitize inputs
8
+ * @param baseCommand - The base Bitwarden command (e.g., 'list', 'get', 'create')
9
+ * @param parameters - Array of command parameters (will be validated)
10
+ * @returns Promise resolving to CLI response with output or error
7
11
  */
8
- export declare function executeCliCommand(command: string): Promise<CliResponse>;
12
+ export declare function executeCliCommand(baseCommand: string, parameters?: readonly string[]): Promise<CliResponse>;
9
13
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA2B7E"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,OAAO,CAAC,WAAW,CAAC,CAsDtB"}
package/dist/utils/cli.js CHANGED
@@ -1,31 +1,54 @@
1
1
  /**
2
2
  * CLI command execution utilities
3
3
  */
4
- import { exec } from 'child_process';
5
- import { promisify } from 'util';
6
- import { sanitizeInput, isValidBitwardenCommand } from './security.js';
7
- const execPromise = promisify(exec);
4
+ import { spawn } from 'child_process';
5
+ import { buildSafeCommand, isValidBitwardenCommand } from './security.js';
8
6
  /**
9
- * Executes a Bitwarden CLI command safely with input sanitization and validation
7
+ * Executes a Bitwarden CLI command safely using spawn() to prevent command injection
8
+ * Internally calls buildSafeCommand() to validate and sanitize inputs
9
+ * @param baseCommand - The base Bitwarden command (e.g., 'list', 'get', 'create')
10
+ * @param parameters - Array of command parameters (will be validated)
11
+ * @returns Promise resolving to CLI response with output or error
10
12
  */
11
- export async function executeCliCommand(command) {
13
+ export async function executeCliCommand(baseCommand, parameters = []) {
12
14
  try {
13
- const sanitizedCommand = sanitizeInput(command);
14
- if (!isValidBitwardenCommand(sanitizedCommand)) {
15
+ // Build safe command array (validates and sanitizes inputs)
16
+ const [command, ...args] = buildSafeCommand(baseCommand, parameters);
17
+ // Validate the base command against allowlist
18
+ if (!isValidBitwardenCommand(command)) {
15
19
  return {
16
20
  errorOutput: 'Invalid or unsafe command. Only Bitwarden CLI commands are allowed.',
17
21
  };
18
22
  }
19
- // Pass environment variables to child process so BW_SESSION is available
20
- const { stdout, stderr } = await execPromise(`bw ${sanitizedCommand}`, {
21
- env: { ...process.env },
23
+ // Use spawn with array of arguments to avoid shell interpretation
24
+ return new Promise((resolve) => {
25
+ const child = spawn('bw', [command, ...args], {
26
+ env: process.env,
27
+ shell: false, // Explicitly disable shell to prevent injection
28
+ });
29
+ let stdout = '';
30
+ let stderr = '';
31
+ child.stdout.on('data', (data) => {
32
+ stdout += data.toString();
33
+ });
34
+ child.stderr.on('data', (data) => {
35
+ stderr += data.toString();
36
+ });
37
+ child.on('error', (error) => {
38
+ resolve({
39
+ errorOutput: `Failed to execute command: ${error.message}`,
40
+ });
41
+ });
42
+ child.on('close', (code) => {
43
+ const result = {};
44
+ if (stdout)
45
+ result.output = stdout.trim();
46
+ if (stderr || code !== 0)
47
+ result.errorOutput =
48
+ stderr.trim() || `Command exited with code ${code}`;
49
+ resolve(result);
50
+ });
22
51
  });
23
- const result = {};
24
- if (stdout)
25
- result.output = stdout;
26
- if (stderr)
27
- result.errorOutput = stderr;
28
- return result;
29
52
  }
30
53
  catch (error) {
31
54
  const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGvE,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe;IACrD,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,WAAW,EACT,qEAAqE;aAC/D,CAAC;QACb,CAAC;QAED,yEAAyE;QACzE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,MAAM,gBAAgB,EAAE,EAAE;YACrE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QACH,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACnC,IAAI,MAAM;YAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAEpE,OAAO;YACL,WAAW,EAAE,YAAY;SACjB,CAAC;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG1E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,aAAgC,EAAE;IAElC,IAAI,CAAC;QACH,4DAA4D;QAC5D,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAErE,8CAA8C;QAC9C,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,WAAW,EACT,qEAAqE;aAC/D,CAAC;QACb,CAAC;QAED,kEAAkE;QAClE,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE;gBAC5C,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,KAAK,EAAE,gDAAgD;aAC/D,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBACjC,OAAO,CAAC;oBACN,WAAW,EAAE,8BAA8B,KAAK,CAAC,OAAO,EAAE;iBAC3D,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;gBAC/B,IAAI,MAAM;oBAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC1C,IAAI,MAAM,IAAI,IAAI,KAAK,CAAC;oBACtB,MAAM,CAAC,WAAW;wBAChB,MAAM,CAAC,IAAI,EAAE,IAAI,4BAA4B,IAAI,EAAE,CAAC;gBACxD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAEpE,OAAO;YACL,WAAW,EAAE,YAAY;SACjB,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -6,13 +6,15 @@
6
6
  */
7
7
  export declare function sanitizeInput(input: string): string;
8
8
  /**
9
- * Safely escapes a parameter value for use in shell commands
9
+ * Validates a parameter to ensure it doesn't contain dangerous patterns
10
+ * Used as an additional safety check before passing to spawn()
10
11
  */
11
- export declare function escapeShellParameter(value: string): string;
12
+ export declare function validateParameter(value: string): boolean;
12
13
  /**
13
- * Builds a safe Bitwarden CLI command with properly escaped parameters
14
+ * Builds a safe Bitwarden CLI command array for use with spawn()
15
+ * Returns an array of [baseCommand, ...parameters] for safe execution
14
16
  */
15
- export declare function buildSafeCommand(baseCommand: string, parameters?: readonly string[]): string;
17
+ export declare function buildSafeCommand(baseCommand: string, parameters?: readonly string[]): readonly [string, ...string[]];
16
18
  /**
17
19
  * Validates that a command is safe and contains only allowed Bitwarden CLI commands
18
20
  */
@@ -27,7 +29,20 @@ export declare function validateApiEndpoint(endpoint: string): boolean;
27
29
  export declare function sanitizeApiParameters(params: unknown): unknown;
28
30
  /**
29
31
  * Validates file paths to prevent path traversal attacks
30
- * Checks for common path traversal patterns and suspicious characters
32
+ * Uses allowlist-based validation with comprehensive security checks
33
+ *
34
+ * Security measures:
35
+ * - URL decoding (iterative to handle double encoding)
36
+ * - Unicode normalization (NFC form)
37
+ * - Path resolution to canonical form
38
+ * - Allowlist-based directory validation
39
+ * - Protection against all known bypass techniques
40
+ *
41
+ * Configuration:
42
+ * Set BW_ALLOWED_DIRECTORIES environment variable to a comma-separated list
43
+ * of allowed directories. If not set, defaults to system temp directory.
44
+ *
45
+ * Example: BW_ALLOWED_DIRECTORIES=/tmp/bitwarden,/home/user/downloads
31
46
  */
32
47
  export declare function validateFilePath(filePath: string): boolean;
33
48
  //# sourceMappingURL=security.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkChE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAqC7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAyB9D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA+B1D"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgBxD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAWhC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkChE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAqC7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAyB9D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0H1D"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Security utilities for input sanitization and validation
3
3
  */
4
+ import path from 'path';
5
+ import os from 'os';
4
6
  /**
5
7
  * Sanitizes a string to prevent command injection by removing dangerous characters
6
8
  */
@@ -25,22 +27,36 @@ export function sanitizeInput(input) {
25
27
  .trim());
26
28
  }
27
29
  /**
28
- * Safely escapes a parameter value for use in shell commands
30
+ * Validates a parameter to ensure it doesn't contain dangerous patterns
31
+ * Used as an additional safety check before passing to spawn()
29
32
  */
30
- export function escapeShellParameter(value) {
33
+ export function validateParameter(value) {
31
34
  if (typeof value !== 'string') {
32
- throw new TypeError('Parameter must be a string');
35
+ return false;
36
+ }
37
+ // Reject parameters with null bytes
38
+ if (value.includes('\0')) {
39
+ return false;
33
40
  }
34
- // Replace single quotes with '\'' (end quote, escaped quote, start quote)
35
- return `'${value.replace(/'/g, "'\\''")}'`;
41
+ // Reject parameters with newlines/carriage returns
42
+ if (/[\r\n]/.test(value)) {
43
+ return false;
44
+ }
45
+ return true;
36
46
  }
37
47
  /**
38
- * Builds a safe Bitwarden CLI command with properly escaped parameters
48
+ * Builds a safe Bitwarden CLI command array for use with spawn()
49
+ * Returns an array of [baseCommand, ...parameters] for safe execution
39
50
  */
40
51
  export function buildSafeCommand(baseCommand, parameters = []) {
41
52
  const sanitizedBase = sanitizeInput(baseCommand);
42
- const escapedParams = parameters.map((param) => escapeShellParameter(param));
43
- return [sanitizedBase, ...escapedParams].join(' ');
53
+ // Validate all parameters
54
+ for (const param of parameters) {
55
+ if (!validateParameter(param)) {
56
+ throw new Error(`Invalid parameter detected: ${param}`);
57
+ }
58
+ }
59
+ return [sanitizedBase, ...parameters];
44
60
  }
45
61
  /**
46
62
  * Validates that a command is safe and contains only allowed Bitwarden CLI commands
@@ -136,33 +152,126 @@ export function sanitizeApiParameters(params) {
136
152
  }
137
153
  /**
138
154
  * Validates file paths to prevent path traversal attacks
139
- * Checks for common path traversal patterns and suspicious characters
155
+ * Uses allowlist-based validation with comprehensive security checks
156
+ *
157
+ * Security measures:
158
+ * - URL decoding (iterative to handle double encoding)
159
+ * - Unicode normalization (NFC form)
160
+ * - Path resolution to canonical form
161
+ * - Allowlist-based directory validation
162
+ * - Protection against all known bypass techniques
163
+ *
164
+ * Configuration:
165
+ * Set BW_ALLOWED_DIRECTORIES environment variable to a comma-separated list
166
+ * of allowed directories. If not set, defaults to system temp directory.
167
+ *
168
+ * Example: BW_ALLOWED_DIRECTORIES=/tmp/bitwarden,/home/user/downloads
140
169
  */
141
170
  export function validateFilePath(filePath) {
142
171
  if (typeof filePath !== 'string' || filePath.length === 0) {
143
172
  return false;
144
173
  }
145
- // Reject paths with null bytes
146
- if (filePath.includes('\0')) {
147
- return false;
148
- }
149
- // Reject paths with path traversal sequences
150
- const dangerousPatterns = [
151
- /\.\.\//, // ../
152
- /\.\.\\/, // ..\
153
- /\.\.$/, // .. at end
154
- /^\.\.$/, // exactly ..
155
- /\/\.\./, // /..
156
- /\\\.\./, // \..
157
- ];
158
- if (dangerousPatterns.some((pattern) => pattern.test(filePath))) {
159
- return false;
174
+ try {
175
+ // Step 1: Reject null bytes immediately
176
+ if (filePath.includes('\0')) {
177
+ return false;
178
+ }
179
+ // Step 2: Reject URL protocols (file://, http://, etc.)
180
+ // But allow Windows drive letters (C:, D:, etc.) which are single letters
181
+ if (/^[a-zA-Z][a-zA-Z0-9+.-]+:/.test(filePath) &&
182
+ !/^[a-zA-Z]:[\\/]/.test(filePath)) {
183
+ return false;
184
+ }
185
+ // Step 3: Reject UNC paths (both \\ and single \ at start on Windows)
186
+ if (filePath.startsWith('\\\\') || /^\\[^\\]/.test(filePath)) {
187
+ return false;
188
+ }
189
+ // Step 4: Iterative URL decoding to handle double/triple encoding
190
+ let decodedPath = filePath;
191
+ let previousPath = '';
192
+ let iterations = 0;
193
+ const maxIterations = 5; // Prevent infinite loops
194
+ while (decodedPath !== previousPath && iterations < maxIterations) {
195
+ previousPath = decodedPath;
196
+ try {
197
+ decodedPath = decodeURIComponent(decodedPath);
198
+ }
199
+ catch {
200
+ // Invalid encoding, reject
201
+ return false;
202
+ }
203
+ iterations++;
204
+ }
205
+ // Step 5: Unicode normalization to canonical form (NFC)
206
+ // This converts fullwidth characters and other Unicode variants to standard form
207
+ const normalizedPath = decodedPath.normalize('NFC');
208
+ // Step 6: Check for dangerous patterns after decoding/normalization
209
+ // This catches encoded traversal sequences like %2e%2e%2f
210
+ const dangerousPatterns = [
211
+ /\.\.\//, // ../
212
+ /\.\.\\/, // ..\
213
+ /\.\.$/, // .. at end
214
+ /^\.\.$/, // exactly ..
215
+ /\/\.\./, // /..
216
+ /\\\.\./, // \..
217
+ /\.\s+\./, // . . (spaces between dots)
218
+ ];
219
+ if (dangerousPatterns.some((pattern) => pattern.test(normalizedPath))) {
220
+ return false;
221
+ }
222
+ // Step 7: Check for Unicode lookalikes and alternative slashes
223
+ // Reject fullwidth characters and alternative slash characters
224
+ const unicodeLookalikes = [
225
+ '\uFF0E', // FULLWIDTH FULL STOP (.)
226
+ '\u2215', // DIVISION SLASH (∕)
227
+ '\u2216', // SET MINUS (∖)
228
+ '\u2044', // FRACTION SLASH (⁄)
229
+ '\u29F8', // BIG SOLIDUS (⧸)
230
+ '\uFF0F', // FULLWIDTH SOLIDUS (/)
231
+ '\uFF3C', // FULLWIDTH REVERSE SOLIDUS (\)
232
+ ];
233
+ if (unicodeLookalikes.some((char) => normalizedPath.includes(char))) {
234
+ return false;
235
+ }
236
+ // Step 8: Resolve to absolute canonical path
237
+ const resolvedPath = path.resolve(normalizedPath);
238
+ // Step 9: Get allowed directories from environment variable
239
+ const allowedDirsEnv = process.env['BW_ALLOWED_DIRECTORIES'];
240
+ let allowedDirectories;
241
+ if (allowedDirsEnv && allowedDirsEnv.trim()) {
242
+ // Parse comma-separated list and resolve each to absolute path
243
+ allowedDirectories = allowedDirsEnv
244
+ .split(',')
245
+ .map((dir) => dir.trim())
246
+ .filter((dir) => dir.length > 0)
247
+ .map((dir) => path.resolve(dir));
248
+ }
249
+ else {
250
+ // Default to system temp directory if no whitelist configured
251
+ const defaultDir = path.join(os.tmpdir(), 'bitwarden-files');
252
+ allowedDirectories = [defaultDir];
253
+ }
254
+ // Step 10: Verify resolved path starts with one of the allowed directories
255
+ const isAllowed = allowedDirectories.some((allowedDir) => {
256
+ // Ensure both paths end with separator for accurate comparison
257
+ const normalizedAllowedDir = allowedDir.endsWith(path.sep)
258
+ ? allowedDir
259
+ : allowedDir + path.sep;
260
+ const normalizedResolvedPath = resolvedPath + path.sep;
261
+ // On Windows, paths are case-insensitive
262
+ const isWindows = process.platform === 'win32';
263
+ if (isWindows) {
264
+ return normalizedResolvedPath
265
+ .toLowerCase()
266
+ .startsWith(normalizedAllowedDir.toLowerCase());
267
+ }
268
+ return normalizedResolvedPath.startsWith(normalizedAllowedDir);
269
+ });
270
+ return isAllowed;
160
271
  }
161
- // Reject UNC paths (network shares like \\server\share)
162
- // Allow both Unix absolute paths (/path/to/file) and Windows absolute paths (C:\path\to\file)
163
- if (filePath.startsWith('\\\\')) {
272
+ catch {
273
+ // Any error in validation should result in rejection
164
274
  return false;
165
275
  }
166
- return true;
167
276
  }
168
277
  //# sourceMappingURL=security.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@bitwarden/mcp-server",
4
- "version": "2025.10.1",
4
+ "version": "2025.10.3",
5
5
  "description": "Bitwarden MCP Server",
6
6
  "repository": {
7
7
  "type": "git",
@@ -14,26 +14,26 @@
14
14
  },
15
15
  "homepage": "https://bitwarden.com",
16
16
  "dependencies": {
17
- "@modelcontextprotocol/sdk": "1.17.2",
17
+ "@modelcontextprotocol/sdk": "1.19.1",
18
18
  "shx": "0.4.0",
19
- "zod": "4.0.15"
19
+ "zod": "4.1.11"
20
20
  },
21
21
  "devDependencies": {
22
- "@eslint/js": "9.32.0",
23
- "@jest/globals": "30.0.5",
24
- "@modelcontextprotocol/inspector": "0.16.6",
22
+ "@eslint/js": "9.37.0",
23
+ "@jest/globals": "30.2.0",
24
+ "@modelcontextprotocol/inspector": "0.17.0",
25
25
  "@types/jest": "30.0.0",
26
- "@types/node": "22.17.0",
27
- "eslint": "9.32.0",
28
- "globals": "16.3.0",
26
+ "@types/node": "22.18.8",
27
+ "eslint": "9.37.0",
28
+ "globals": "16.4.0",
29
29
  "husky": "9.1.7",
30
- "jest": "30.0.5",
30
+ "jest": "30.2.0",
31
31
  "jest-junit": "16.0.0",
32
- "lint-staged": "16.1.5",
32
+ "lint-staged": "16.2.3",
33
33
  "prettier": "3.6.2",
34
- "ts-jest": "29.4.1",
35
- "typescript": "5.9.2",
36
- "typescript-eslint": "8.39.0"
34
+ "ts-jest": "29.4.4",
35
+ "typescript": "5.9.3",
36
+ "typescript-eslint": "8.45.0"
37
37
  },
38
38
  "bin": {
39
39
  "mcp-server-bitwarden": "dist/index.js"