@delorenj/mcp-server-trello 0.2.0 → 0.3.0

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
@@ -1,3 +1,5 @@
1
+ [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/delorenj-mcp-server-trello-badge.png)](https://mseep.ai/app/delorenj-mcp-server-trello)
2
+
1
3
  # MCP Server Trello
2
4
  [![smithery badge](https://smithery.ai/badge/@modelcontextprotocol/mcp-server-trello)](https://smithery.ai/server/@modelcontextprotocol/mcp-server-trello)
3
5
 
@@ -7,8 +9,27 @@ A Model Context Protocol (MCP) server that provides tools for interacting with T
7
9
 
8
10
  ## Changelog
9
11
 
10
- ### 0.1.2
12
+ ### 0.3.0
13
+
14
+ - Added board and workspace management capabilities:
15
+ - `list_boards` - List all boards the user has access to
16
+ - `set_active_board` - Set the active board for future operations
17
+ - `list_workspaces` - List all workspaces the user has access to
18
+ - `set_active_workspace` - Set the active workspace for future operations
19
+ - `list_boards_in_workspace` - List all boards in a specific workspace
20
+ - `get_active_board_info` - Get information about the currently active board
21
+ - Added persistent configuration storage to remember active board/workspace
22
+ - Improved error handling for all new operations
23
+
24
+ ### 0.2.1
25
+
26
+ - Added detailed JSDoc comments to rate limiter functions
27
+ - Improved error handling for image attachment functionality
28
+ - Updated documentation for attach_image_to_card tool
11
29
 
30
+ ### 0.2.0
31
+
32
+ - Added `attach_image_to_card` tool to attach images to cards from URLs
12
33
  - Added Docker support with multi-stage build
13
34
  - Improved security by moving environment variables to `.env`
14
35
  - Added Docker Compose configuration
@@ -30,6 +51,7 @@ A Model Context Protocol (MCP) server that provides tools for interacting with T
30
51
  - **Type-Safe Implementation**: Written in TypeScript with comprehensive type definitions
31
52
  - **Input Validation**: Robust validation for all API inputs
32
53
  - **Error Handling**: Graceful error handling with informative messages
54
+ - **Dynamic Board Selection**: Switch between boards and workspaces without restarting
33
55
 
34
56
  ## Installation
35
57
 
@@ -68,18 +90,84 @@ npm install @delorenj/mcp-server-trello
68
90
 
69
91
  ## Configuration
70
92
 
93
+ ### Environment Variables
94
+
71
95
  The server can be configured using environment variables. Create a `.env` file in the root directory with the following variables:
72
96
 
73
97
  ```env
98
+ # Required: Your Trello API credentials
74
99
  TRELLO_API_KEY=your-api-key
75
100
  TRELLO_TOKEN=your-token
101
+
102
+ # Required: Initial board ID (can be changed later using set_active_board)
76
103
  TRELLO_BOARD_ID=your-board-id
104
+
105
+ # Optional: Initial workspace ID (can be changed later using set_active_workspace)
106
+ TRELLO_WORKSPACE_ID=your-workspace-id
77
107
  ```
78
108
 
79
109
  You can get these values from:
80
110
  - API Key: https://trello.com/app-key
81
111
  - Token: Generate using your API key
82
- - Board ID: Found in the board URL
112
+ - Board ID: Found in the board URL (e.g., https://trello.com/b/BOARD_ID/board-name)
113
+ - Workspace ID: Found in workspace settings or using `list_workspaces` tool
114
+
115
+ ### Board and Workspace Management
116
+
117
+ Starting with version 0.3.0, the MCP server supports dynamic board and workspace selection:
118
+
119
+ - The `TRELLO_BOARD_ID` in your `.env` file is used as the initial board ID when the server starts
120
+ - You can change the active board at any time using the `set_active_board` tool
121
+ - The selected board persists between server restarts (stored in `~/.trello-mcp/config.json`)
122
+ - Similarly, you can set and persist an active workspace using `set_active_workspace`
123
+
124
+ This allows you to work with multiple boards and workspaces without restarting the server or changing environment variables.
125
+
126
+ #### Example Workflow
127
+
128
+ 1. Start by listing available boards:
129
+ ```typescript
130
+ {
131
+ name: 'list_boards',
132
+ arguments: {}
133
+ }
134
+ ```
135
+
136
+ 2. Set your active board:
137
+ ```typescript
138
+ {
139
+ name: 'set_active_board',
140
+ arguments: {
141
+ boardId: "abc123" // ID from list_boards response
142
+ }
143
+ }
144
+ ```
145
+
146
+ 3. List workspaces if needed:
147
+ ```typescript
148
+ {
149
+ name: 'list_workspaces',
150
+ arguments: {}
151
+ }
152
+ ```
153
+
154
+ 4. Set active workspace if needed:
155
+ ```typescript
156
+ {
157
+ name: 'set_active_workspace',
158
+ arguments: {
159
+ workspaceId: "xyz789" // ID from list_workspaces response
160
+ }
161
+ }
162
+ ```
163
+
164
+ 5. Check current active board info:
165
+ ```typescript
166
+ {
167
+ name: 'get_active_board_info',
168
+ arguments: {}
169
+ }
170
+ ```
83
171
 
84
172
  ## Available Tools
85
173
 
@@ -98,7 +186,7 @@ Fetch all cards from a specific list.
98
186
 
99
187
  ### get_lists
100
188
 
101
- Retrieve all lists from the configured board.
189
+ Retrieve all lists from the currently active board.
102
190
 
103
191
  ```typescript
104
192
  {
@@ -109,7 +197,7 @@ Retrieve all lists from the configured board.
109
197
 
110
198
  ### get_recent_activity
111
199
 
112
- Fetch recent activity on the board.
200
+ Fetch recent activity on the currently active board.
113
201
 
114
202
  ```typescript
115
203
  {
@@ -169,7 +257,7 @@ Send a card to the archive.
169
257
 
170
258
  ### add_list_to_board
171
259
 
172
- Add a new list to the board.
260
+ Add a new list to the currently active board.
173
261
 
174
262
  ```typescript
175
263
  {
@@ -218,6 +306,93 @@ Move a card to a different list.
218
306
  }
219
307
  ```
220
308
 
309
+ ### attach_image_to_card
310
+
311
+ Attach an image to a card directly from a URL.
312
+
313
+ ```typescript
314
+ {
315
+ name: 'attach_image_to_card',
316
+ arguments: {
317
+ cardId: string, // ID of the card to attach the image to
318
+ imageUrl: string, // URL of the image to attach
319
+ name?: string // Optional: Name for the attachment (defaults to "Image Attachment")
320
+ }
321
+ }
322
+ ```
323
+
324
+ ### list_boards
325
+
326
+ List all boards the user has access to.
327
+
328
+ ```typescript
329
+ {
330
+ name: 'list_boards',
331
+ arguments: {}
332
+ }
333
+ ```
334
+
335
+ ### set_active_board
336
+
337
+ Set the active board for future operations.
338
+
339
+ ```typescript
340
+ {
341
+ name: 'set_active_board',
342
+ arguments: {
343
+ boardId: string // ID of the board to set as active
344
+ }
345
+ }
346
+ ```
347
+
348
+ ### list_workspaces
349
+
350
+ List all workspaces the user has access to.
351
+
352
+ ```typescript
353
+ {
354
+ name: 'list_workspaces',
355
+ arguments: {}
356
+ }
357
+ ```
358
+
359
+ ### set_active_workspace
360
+
361
+ Set the active workspace for future operations.
362
+
363
+ ```typescript
364
+ {
365
+ name: 'set_active_workspace',
366
+ arguments: {
367
+ workspaceId: string // ID of the workspace to set as active
368
+ }
369
+ }
370
+ ```
371
+
372
+ ### list_boards_in_workspace
373
+
374
+ List all boards in a specific workspace.
375
+
376
+ ```typescript
377
+ {
378
+ name: 'list_boards_in_workspace',
379
+ arguments: {
380
+ workspaceId: string // ID of the workspace to list boards from
381
+ }
382
+ }
383
+ ```
384
+
385
+ ### get_active_board_info
386
+
387
+ Get information about the currently active board.
388
+
389
+ ```typescript
390
+ {
391
+ name: 'get_active_board_info',
392
+ arguments: {}
393
+ }
394
+ ```
395
+
221
396
  ## Rate Limiting
222
397
 
223
398
  The server implements a token bucket algorithm for rate limiting to comply with Trello's API limits:
@@ -266,6 +441,13 @@ npm run build
266
441
  ```
267
442
 
268
443
 
444
+ ## Running evals
445
+
446
+ The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can load environment variables by prefixing the npx command. Full documentation can be found [here](https://www.mcpevals.io/docs).
447
+
448
+ ```bash
449
+ OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
450
+ ```
269
451
  ## Contributing
270
452
 
271
453
  Contributions are welcome!
@@ -0,0 +1,5 @@
1
+ import { EvalConfig } from 'mcp-evals';
2
+ import { EvalFunction } from "mcp-evals";
3
+ declare const config: EvalConfig;
4
+ export default config;
5
+ export declare const evals: EvalFunction[];
@@ -0,0 +1,50 @@
1
+ //evals.ts
2
+ import { openai } from "@ai-sdk/openai";
3
+ import { grade } from "mcp-evals";
4
+ const get_cards_by_list_idEval = {
5
+ name: 'get_cards_by_list_id Tool Evaluation',
6
+ description: 'Evaluates the get_cards_by_list_id tool functionality',
7
+ run: async () => {
8
+ const result = await grade(openai("gpt-4"), "Can you fetch all cards from the Trello list with ID abc123?");
9
+ return JSON.parse(result);
10
+ }
11
+ };
12
+ const get_listsEval = {
13
+ name: 'get_lists Tool Evaluation',
14
+ description: 'Evaluates the get_lists tool by retrieving all lists from a specified board',
15
+ run: async () => {
16
+ const result = await grade(openai("gpt-4"), "Please retrieve all lists from the board with ID 12345 and provide their names.");
17
+ return JSON.parse(result);
18
+ }
19
+ };
20
+ const get_recent_activityEvalFunction = {
21
+ name: 'get_recent_activity Tool Evaluation',
22
+ description: 'Evaluates the ability to fetch recent activity on the Trello board',
23
+ run: async () => {
24
+ const result = await grade(openai("gpt-4"), "Fetch the recent activity on the Trello board, limit it to 5 items");
25
+ return JSON.parse(result);
26
+ }
27
+ };
28
+ const add_card_to_listEval = {
29
+ name: 'add_card_to_listEval',
30
+ description: 'Evaluates the add_card_to_list tool',
31
+ run: async () => {
32
+ const result = await grade(openai("gpt-4"), "Please add a new card named 'Demo Card' to the list with ID 'abc123', with a description of 'This is a test card', due date '2023-12-31T12:00:00Z', and a label 'priority'.");
33
+ return JSON.parse(result);
34
+ }
35
+ };
36
+ const update_card_detailsEval = {
37
+ name: 'update_card_details Evaluation',
38
+ description: 'Evaluates the update_card_details tool functionality',
39
+ run: async () => {
40
+ const result = await grade(openai("gpt-4"), "Please update the card with ID 'abc123' to have the name 'Updated Card Name', the description 'New description for the card', a due date of '2024-01-01T10:00:00Z', and labels ['priority','review'].");
41
+ return JSON.parse(result);
42
+ }
43
+ };
44
+ const config = {
45
+ model: openai("gpt-4"),
46
+ evals: [get_cards_by_list_idEval, get_listsEval, get_recent_activityEvalFunction, add_card_to_listEval, update_card_detailsEval]
47
+ };
48
+ export default config;
49
+ export const evals = [get_cards_by_list_idEval, get_listsEval, get_recent_activityEvalFunction, add_card_to_listEval, update_card_detailsEval];
50
+ //# sourceMappingURL=evals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evals.js","sourceRoot":"","sources":["../../src/evals/evals.ts"],"names":[],"mappings":"AAAA,UAAU;AAGV,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAgB,MAAM,WAAW,CAAC;AAEhD,MAAM,wBAAwB,GAAiB;IAC3C,IAAI,EAAE,sCAAsC;IAC5C,WAAW,EAAE,uDAAuD;IACpE,GAAG,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,8DAA8D,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAC;AAEF,MAAM,aAAa,GAAiB;IAChC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,6EAA6E;IAC1F,GAAG,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,iFAAiF,CAAC,CAAC;QAC/H,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAC;AAEF,MAAM,+BAA+B,GAAiB;IAClD,IAAI,EAAE,qCAAqC;IAC3C,WAAW,EAAE,oEAAoE;IACjF,GAAG,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,oEAAoE,CAAC,CAAC;QAClH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAC;AAEF,MAAM,oBAAoB,GAAiB;IACvC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,qCAAqC;IAClD,GAAG,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,6KAA6K,CAAC,CAAC;QAC3N,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAC;AAEF,MAAM,uBAAuB,GAAiB;IAC1C,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE,sDAAsD;IACnE,GAAG,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,uMAAuM,CAAC,CAAC;QACrP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,GAAe;IACvB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,KAAK,EAAE,CAAC,wBAAwB,EAAE,aAAa,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,uBAAuB,CAAC;CACnI,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,wBAAwB,EAAE,aAAa,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,uBAAuB,CAAC,CAAC"}
package/build/index.js CHANGED
@@ -3,7 +3,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError, } from '@modelcontextprotocol/sdk/types.js';
5
5
  import { TrelloClient } from './trello-client.js';
6
- import { validateGetCardsListRequest, validateGetRecentActivityRequest, validateAddCardRequest, validateUpdateCardRequest, validateArchiveCardRequest, validateAddListRequest, validateArchiveListRequest, validateMoveCardRequest, } from './validators.js';
6
+ import { validateGetCardsListRequest, validateGetRecentActivityRequest, validateAddCardRequest, validateUpdateCardRequest, validateArchiveCardRequest, validateAddListRequest, validateArchiveListRequest, validateMoveCardRequest, validateAttachImageRequest, validateSetActiveBoardRequest, validateSetActiveWorkspaceRequest, validateListBoardsInWorkspaceRequest, } from './validators.js';
7
7
  class TrelloServer {
8
8
  constructor() {
9
9
  const apiKey = process.env.TRELLO_API_KEY;
@@ -15,7 +15,7 @@ class TrelloServer {
15
15
  this.trelloClient = new TrelloClient({ apiKey, token, boardId });
16
16
  this.server = new Server({
17
17
  name: 'trello-server',
18
- version: '0.1.1',
18
+ version: '0.3.0',
19
19
  }, {
20
20
  capabilities: {
21
21
  tools: {},
@@ -204,6 +204,97 @@ class TrelloServer {
204
204
  required: [],
205
205
  },
206
206
  },
207
+ {
208
+ name: 'attach_image_to_card',
209
+ description: 'Attach an image to a card directly from a URL',
210
+ inputSchema: {
211
+ type: 'object',
212
+ properties: {
213
+ cardId: {
214
+ type: 'string',
215
+ description: 'ID of the card to attach the image to',
216
+ },
217
+ imageUrl: {
218
+ type: 'string',
219
+ description: 'URL of the image to attach',
220
+ },
221
+ name: {
222
+ type: 'string',
223
+ description: 'Optional name for the attachment (defaults to "Image Attachment")',
224
+ },
225
+ },
226
+ required: ['cardId', 'imageUrl'],
227
+ },
228
+ },
229
+ {
230
+ name: 'list_boards',
231
+ description: 'List all boards the user has access to',
232
+ inputSchema: {
233
+ type: 'object',
234
+ properties: {},
235
+ required: [],
236
+ },
237
+ },
238
+ {
239
+ name: 'set_active_board',
240
+ description: 'Set the active board for future operations',
241
+ inputSchema: {
242
+ type: 'object',
243
+ properties: {
244
+ boardId: {
245
+ type: 'string',
246
+ description: 'ID of the board to set as active',
247
+ },
248
+ },
249
+ required: ['boardId'],
250
+ },
251
+ },
252
+ {
253
+ name: 'list_workspaces',
254
+ description: 'List all workspaces the user has access to',
255
+ inputSchema: {
256
+ type: 'object',
257
+ properties: {},
258
+ required: [],
259
+ },
260
+ },
261
+ {
262
+ name: 'set_active_workspace',
263
+ description: 'Set the active workspace for future operations',
264
+ inputSchema: {
265
+ type: 'object',
266
+ properties: {
267
+ workspaceId: {
268
+ type: 'string',
269
+ description: 'ID of the workspace to set as active',
270
+ },
271
+ },
272
+ required: ['workspaceId'],
273
+ },
274
+ },
275
+ {
276
+ name: 'list_boards_in_workspace',
277
+ description: 'List all boards in a specific workspace',
278
+ inputSchema: {
279
+ type: 'object',
280
+ properties: {
281
+ workspaceId: {
282
+ type: 'string',
283
+ description: 'ID of the workspace to list boards from',
284
+ },
285
+ },
286
+ required: ['workspaceId'],
287
+ },
288
+ },
289
+ {
290
+ name: 'get_active_board_info',
291
+ description: 'Get information about the currently active board',
292
+ inputSchema: {
293
+ type: 'object',
294
+ properties: {},
295
+ required: [],
296
+ },
297
+ },
207
298
  ],
208
299
  }));
209
300
  this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
@@ -281,6 +372,91 @@ class TrelloServer {
281
372
  content: [{ type: 'text', text: JSON.stringify(cards, null, 2) }],
282
373
  };
283
374
  }
375
+ case 'attach_image_to_card': {
376
+ const validArgs = validateAttachImageRequest(args);
377
+ try {
378
+ const attachment = await this.trelloClient.attachImageToCard(validArgs.cardId, validArgs.imageUrl, validArgs.name);
379
+ return {
380
+ content: [{ type: 'text', text: JSON.stringify(attachment, null, 2) }],
381
+ };
382
+ }
383
+ catch (error) {
384
+ return this.handleErrorResponse(error);
385
+ }
386
+ }
387
+ case 'list_boards': {
388
+ const boards = await this.trelloClient.listBoards();
389
+ return {
390
+ content: [{ type: 'text', text: JSON.stringify(boards, null, 2) }],
391
+ };
392
+ }
393
+ case 'set_active_board': {
394
+ const validArgs = validateSetActiveBoardRequest(args);
395
+ try {
396
+ const board = await this.trelloClient.setActiveBoard(validArgs.boardId);
397
+ return {
398
+ content: [{
399
+ type: 'text',
400
+ text: `Successfully set active board to "${board.name}" (${board.id})`
401
+ }],
402
+ };
403
+ }
404
+ catch (error) {
405
+ return this.handleErrorResponse(error);
406
+ }
407
+ }
408
+ case 'list_workspaces': {
409
+ const workspaces = await this.trelloClient.listWorkspaces();
410
+ return {
411
+ content: [{ type: 'text', text: JSON.stringify(workspaces, null, 2) }],
412
+ };
413
+ }
414
+ case 'set_active_workspace': {
415
+ const validArgs = validateSetActiveWorkspaceRequest(args);
416
+ try {
417
+ const workspace = await this.trelloClient.setActiveWorkspace(validArgs.workspaceId);
418
+ return {
419
+ content: [{
420
+ type: 'text',
421
+ text: `Successfully set active workspace to "${workspace.displayName}" (${workspace.id})`
422
+ }],
423
+ };
424
+ }
425
+ catch (error) {
426
+ return this.handleErrorResponse(error);
427
+ }
428
+ }
429
+ case 'list_boards_in_workspace': {
430
+ const validArgs = validateListBoardsInWorkspaceRequest(args);
431
+ try {
432
+ const boards = await this.trelloClient.listBoardsInWorkspace(validArgs.workspaceId);
433
+ return {
434
+ content: [{ type: 'text', text: JSON.stringify(boards, null, 2) }],
435
+ };
436
+ }
437
+ catch (error) {
438
+ return this.handleErrorResponse(error);
439
+ }
440
+ }
441
+ case 'get_active_board_info': {
442
+ try {
443
+ const boardId = this.trelloClient.activeBoardId;
444
+ const board = await this.trelloClient.getBoardById(boardId);
445
+ return {
446
+ content: [{
447
+ type: 'text',
448
+ text: JSON.stringify({
449
+ ...board,
450
+ isActive: true,
451
+ activeWorkspaceId: this.trelloClient.activeWorkspaceId || 'Not set'
452
+ }, null, 2)
453
+ }],
454
+ };
455
+ }
456
+ catch (error) {
457
+ return this.handleErrorResponse(error);
458
+ }
459
+ }
284
460
  default:
285
461
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${request.params.name}`);
286
462
  }
@@ -298,8 +474,24 @@ class TrelloServer {
298
474
  }
299
475
  });
300
476
  }
477
+ handleErrorResponse(error) {
478
+ return {
479
+ content: [
480
+ {
481
+ type: 'text',
482
+ text: `Error: ${error instanceof Error ? error.message : 'Unknown error occurred'}`,
483
+ },
484
+ ],
485
+ isError: true,
486
+ };
487
+ }
301
488
  async run() {
302
489
  const transport = new StdioServerTransport();
490
+ // Load configuration before starting the server
491
+ await this.trelloClient.loadConfig().catch((error) => {
492
+ console.error('Failed to load saved configuration:', error);
493
+ // Continue with default config if loading fails
494
+ });
303
495
  await this.server.connect(transport);
304
496
  console.error('Trello MCP server running on stdio');
305
497
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,20 @@ export declare class TokenBucketRateLimiter implements RateLimiter {
13
13
  export declare const createTrelloRateLimiters: () => {
14
14
  apiKeyLimiter: TokenBucketRateLimiter;
15
15
  tokenLimiter: TokenBucketRateLimiter;
16
- waitForAvailable(): Promise<void>;
16
+ /**
17
+ * Checks if a request can be made without hitting rate limits.
18
+ * This is useful for pre-checking before attempting a request,
19
+ * allowing for more graceful handling of rate limits without blocking.
20
+ *
21
+ * @returns {boolean} True if both API key and token limiters have available tokens
22
+ */
23
+ canMakeRequest(): boolean;
24
+ /**
25
+ * Waits until tokens are available for both API key and token limiters.
26
+ * This method blocks execution until rate limits allow the request to proceed.
27
+ * Used by the axios interceptor to ensure all requests respect Trello's rate limits.
28
+ *
29
+ * @returns {Promise<void>} Resolves when tokens are available
30
+ */
31
+ waitForAvailableToken(): Promise<void>;
17
32
  };
@@ -45,7 +45,24 @@ export const createTrelloRateLimiters = () => {
45
45
  return {
46
46
  apiKeyLimiter,
47
47
  tokenLimiter,
48
- async waitForAvailable() {
48
+ /**
49
+ * Checks if a request can be made without hitting rate limits.
50
+ * This is useful for pre-checking before attempting a request,
51
+ * allowing for more graceful handling of rate limits without blocking.
52
+ *
53
+ * @returns {boolean} True if both API key and token limiters have available tokens
54
+ */
55
+ canMakeRequest() {
56
+ return apiKeyLimiter.canMakeRequest() && tokenLimiter.canMakeRequest();
57
+ },
58
+ /**
59
+ * Waits until tokens are available for both API key and token limiters.
60
+ * This method blocks execution until rate limits allow the request to proceed.
61
+ * Used by the axios interceptor to ensure all requests respect Trello's rate limits.
62
+ *
63
+ * @returns {Promise<void>} Resolves when tokens are available
64
+ */
65
+ async waitForAvailableToken() {
49
66
  await Promise.all([
50
67
  apiKeyLimiter.waitForAvailableToken(),
51
68
  tokenLimiter.waitForAvailableToken(),
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAOjC,YAAY,WAAmB,EAAE,QAAgB;QAC/C,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,+CAA+C;oBAC/C,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACrC,MAAM,QAAQ,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oBACzD,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B;gBAC1E,CAAC;YACH,CAAC,CAAC;YACF,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,aAAa,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,8BAA8B;IAC5F,MAAM,YAAY,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,8BAA8B;IAE3F,OAAO;QACL,aAAa;QACb,YAAY;QACZ,KAAK,CAAC,gBAAgB;YACpB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,aAAa,CAAC,qBAAqB,EAAE;gBACrC,YAAY,CAAC,qBAAqB,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../src/rate-limiter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAOjC,YAAY,WAAmB,EAAE,QAAgB;QAC/C,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,+CAA+C;oBAC/C,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBACrC,MAAM,QAAQ,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oBACzD,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B;gBAC1E,CAAC;YACH,CAAC,CAAC;YACF,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,aAAa,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,8BAA8B;IAC5F,MAAM,YAAY,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,8BAA8B;IAE3F,OAAO;QACL,aAAa;QACb,YAAY;QACZ;;;;;;WAMG;QACH,cAAc;YACZ,OAAO,aAAa,CAAC,cAAc,EAAE,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QACzE,CAAC;QACD;;;;;;WAMG;QACH,KAAK,CAAC,qBAAqB;YACzB,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,aAAa,CAAC,qBAAqB,EAAE;gBACrC,YAAY,CAAC,qBAAqB,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,10 +1,55 @@
1
- import { TrelloConfig, TrelloCard, TrelloList, TrelloAction } from './types.js';
1
+ import { TrelloConfig, TrelloCard, TrelloList, TrelloAction, TrelloAttachment, TrelloBoard, TrelloWorkspace } from './types.js';
2
2
  export declare class TrelloClient {
3
3
  private config;
4
4
  private axiosInstance;
5
5
  private rateLimiter;
6
+ private activeConfig;
6
7
  constructor(config: TrelloConfig);
8
+ /**
9
+ * Load saved configuration from disk
10
+ */
11
+ loadConfig(): Promise<void>;
12
+ /**
13
+ * Save current configuration to disk
14
+ */
15
+ private saveConfig;
16
+ /**
17
+ * Get the current active board ID
18
+ */
19
+ get activeBoardId(): string;
20
+ /**
21
+ * Get the current active workspace ID
22
+ */
23
+ get activeWorkspaceId(): string | undefined;
24
+ /**
25
+ * Set the active board
26
+ */
27
+ setActiveBoard(boardId: string): Promise<TrelloBoard>;
28
+ /**
29
+ * Set the active workspace
30
+ */
31
+ setActiveWorkspace(workspaceId: string): Promise<TrelloWorkspace>;
7
32
  private handleRequest;
33
+ /**
34
+ * List all boards the user has access to
35
+ */
36
+ listBoards(): Promise<TrelloBoard[]>;
37
+ /**
38
+ * Get a specific board by ID
39
+ */
40
+ getBoardById(boardId: string): Promise<TrelloBoard>;
41
+ /**
42
+ * List all workspaces the user has access to
43
+ */
44
+ listWorkspaces(): Promise<TrelloWorkspace[]>;
45
+ /**
46
+ * Get a specific workspace by ID
47
+ */
48
+ getWorkspaceById(workspaceId: string): Promise<TrelloWorkspace>;
49
+ /**
50
+ * List boards in a specific workspace
51
+ */
52
+ listBoardsInWorkspace(workspaceId: string): Promise<TrelloBoard[]>;
8
53
  getCardsByList(listId: string): Promise<TrelloCard[]>;
9
54
  getLists(): Promise<TrelloList[]>;
10
55
  getRecentActivity(limit?: number): Promise<TrelloAction[]>;
@@ -27,4 +72,5 @@ export declare class TrelloClient {
27
72
  addList(name: string): Promise<TrelloList>;
28
73
  archiveList(listId: string): Promise<TrelloList>;
29
74
  getMyCards(): Promise<TrelloCard[]>;
75
+ attachImageToCard(cardId: string, imageUrl: string, name?: string): Promise<TrelloAttachment>;
30
76
  }
@@ -1,8 +1,14 @@
1
1
  import axios from 'axios';
2
2
  import { createTrelloRateLimiters } from './rate-limiter.js';
3
+ import * as fs from 'fs/promises';
4
+ import * as path from 'path';
5
+ // Path for storing active board/workspace configuration
6
+ const CONFIG_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '.', '.trello-mcp');
7
+ const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
3
8
  export class TrelloClient {
4
9
  constructor(config) {
5
10
  this.config = config;
11
+ this.activeConfig = { ...config };
6
12
  this.axiosInstance = axios.create({
7
13
  baseURL: 'https://api.trello.com/1',
8
14
  params: {
@@ -13,10 +19,83 @@ export class TrelloClient {
13
19
  this.rateLimiter = createTrelloRateLimiters();
14
20
  // Add rate limiting interceptor
15
21
  this.axiosInstance.interceptors.request.use(async (config) => {
16
- await this.rateLimiter.waitForAvailable();
22
+ await this.rateLimiter.waitForAvailableToken();
17
23
  return config;
18
24
  });
19
25
  }
26
+ /**
27
+ * Load saved configuration from disk
28
+ */
29
+ async loadConfig() {
30
+ try {
31
+ await fs.mkdir(CONFIG_DIR, { recursive: true });
32
+ const data = await fs.readFile(CONFIG_FILE, 'utf8');
33
+ const savedConfig = JSON.parse(data);
34
+ // Only update boardId and workspaceId, keep credentials from env
35
+ if (savedConfig.boardId) {
36
+ this.activeConfig.boardId = savedConfig.boardId;
37
+ }
38
+ if (savedConfig.workspaceId) {
39
+ this.activeConfig.workspaceId = savedConfig.workspaceId;
40
+ }
41
+ console.log(`Loaded configuration: Board ID ${this.activeConfig.boardId}, Workspace ID ${this.activeConfig.workspaceId || 'not set'}`);
42
+ }
43
+ catch (error) {
44
+ // File might not exist yet, that's okay
45
+ if (error instanceof Error && 'code' in error && error.code !== 'ENOENT') {
46
+ throw error;
47
+ }
48
+ }
49
+ }
50
+ /**
51
+ * Save current configuration to disk
52
+ */
53
+ async saveConfig() {
54
+ try {
55
+ await fs.mkdir(CONFIG_DIR, { recursive: true });
56
+ const configToSave = {
57
+ boardId: this.activeConfig.boardId,
58
+ workspaceId: this.activeConfig.workspaceId,
59
+ };
60
+ await fs.writeFile(CONFIG_FILE, JSON.stringify(configToSave, null, 2));
61
+ }
62
+ catch (error) {
63
+ console.error('Failed to save configuration:', error);
64
+ throw new Error('Failed to save configuration');
65
+ }
66
+ }
67
+ /**
68
+ * Get the current active board ID
69
+ */
70
+ get activeBoardId() {
71
+ return this.activeConfig.boardId;
72
+ }
73
+ /**
74
+ * Get the current active workspace ID
75
+ */
76
+ get activeWorkspaceId() {
77
+ return this.activeConfig.workspaceId;
78
+ }
79
+ /**
80
+ * Set the active board
81
+ */
82
+ async setActiveBoard(boardId) {
83
+ // Verify the board exists
84
+ const board = await this.getBoardById(boardId);
85
+ this.activeConfig.boardId = boardId;
86
+ await this.saveConfig();
87
+ return board;
88
+ }
89
+ /**
90
+ * Set the active workspace
91
+ */
92
+ async setActiveWorkspace(workspaceId) {
93
+ // Verify the workspace exists
94
+ const workspace = await this.getWorkspaceById(workspaceId);
95
+ this.activeConfig.workspaceId = workspaceId;
96
+ await this.saveConfig();
97
+ return workspace;
98
+ }
20
99
  async handleRequest(request) {
21
100
  try {
22
101
  return await request();
@@ -33,6 +112,51 @@ export class TrelloClient {
33
112
  throw error;
34
113
  }
35
114
  }
115
+ /**
116
+ * List all boards the user has access to
117
+ */
118
+ async listBoards() {
119
+ return this.handleRequest(async () => {
120
+ const response = await this.axiosInstance.get('/members/me/boards');
121
+ return response.data;
122
+ });
123
+ }
124
+ /**
125
+ * Get a specific board by ID
126
+ */
127
+ async getBoardById(boardId) {
128
+ return this.handleRequest(async () => {
129
+ const response = await this.axiosInstance.get(`/boards/${boardId}`);
130
+ return response.data;
131
+ });
132
+ }
133
+ /**
134
+ * List all workspaces the user has access to
135
+ */
136
+ async listWorkspaces() {
137
+ return this.handleRequest(async () => {
138
+ const response = await this.axiosInstance.get('/members/me/organizations');
139
+ return response.data;
140
+ });
141
+ }
142
+ /**
143
+ * Get a specific workspace by ID
144
+ */
145
+ async getWorkspaceById(workspaceId) {
146
+ return this.handleRequest(async () => {
147
+ const response = await this.axiosInstance.get(`/organizations/${workspaceId}`);
148
+ return response.data;
149
+ });
150
+ }
151
+ /**
152
+ * List boards in a specific workspace
153
+ */
154
+ async listBoardsInWorkspace(workspaceId) {
155
+ return this.handleRequest(async () => {
156
+ const response = await this.axiosInstance.get(`/organizations/${workspaceId}/boards`);
157
+ return response.data;
158
+ });
159
+ }
36
160
  async getCardsByList(listId) {
37
161
  return this.handleRequest(async () => {
38
162
  const response = await this.axiosInstance.get(`/lists/${listId}/cards`);
@@ -41,13 +165,13 @@ export class TrelloClient {
41
165
  }
42
166
  async getLists() {
43
167
  return this.handleRequest(async () => {
44
- const response = await this.axiosInstance.get(`/boards/${this.config.boardId}/lists`);
168
+ const response = await this.axiosInstance.get(`/boards/${this.activeConfig.boardId}/lists`);
45
169
  return response.data;
46
170
  });
47
171
  }
48
172
  async getRecentActivity(limit = 10) {
49
173
  return this.handleRequest(async () => {
50
- const response = await this.axiosInstance.get(`/boards/${this.config.boardId}/actions`, {
174
+ const response = await this.axiosInstance.get(`/boards/${this.activeConfig.boardId}/actions`, {
51
175
  params: { limit },
52
176
  });
53
177
  return response.data;
@@ -96,7 +220,7 @@ export class TrelloClient {
96
220
  return this.handleRequest(async () => {
97
221
  const response = await this.axiosInstance.post('/lists', {
98
222
  name,
99
- idBoard: this.config.boardId,
223
+ idBoard: this.activeConfig.boardId,
100
224
  });
101
225
  return response.data;
102
226
  });
@@ -115,5 +239,15 @@ export class TrelloClient {
115
239
  return response.data;
116
240
  });
117
241
  }
242
+ async attachImageToCard(cardId, imageUrl, name) {
243
+ return this.handleRequest(async () => {
244
+ // Attaching an image directly from URL without downloading it
245
+ const response = await this.axiosInstance.post(`/cards/${cardId}/attachments`, {
246
+ url: imageUrl,
247
+ name: name || 'Image Attachment',
248
+ });
249
+ return response.data;
250
+ });
251
+ }
118
252
  }
119
253
  //# sourceMappingURL=trello-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trello-client.js","sourceRoot":"","sources":["../src/trello-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trello-client.js","sourceRoot":"","sources":["../src/trello-client.ts"],"names":[],"mappings":"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"}
package/build/types.d.ts CHANGED
@@ -2,6 +2,24 @@ export interface TrelloConfig {
2
2
  apiKey: string;
3
3
  token: string;
4
4
  boardId: string;
5
+ workspaceId?: string;
6
+ }
7
+ export interface TrelloBoard {
8
+ id: string;
9
+ name: string;
10
+ desc: string;
11
+ closed: boolean;
12
+ idOrganization: string;
13
+ url: string;
14
+ shortUrl: string;
15
+ }
16
+ export interface TrelloWorkspace {
17
+ id: string;
18
+ name: string;
19
+ displayName: string;
20
+ desc?: string;
21
+ url: string;
22
+ website?: string;
5
23
  }
6
24
  export interface TrelloCard {
7
25
  id: string;
@@ -58,6 +76,22 @@ export interface TrelloMember {
58
76
  username: string;
59
77
  avatarUrl: string | null;
60
78
  }
79
+ export interface TrelloAttachment {
80
+ id: string;
81
+ name: string;
82
+ url: string;
83
+ fileName: string | null;
84
+ bytes: number | null;
85
+ date: string;
86
+ mimeType: string;
87
+ previews: Array<{
88
+ id: string;
89
+ url: string;
90
+ width: number;
91
+ height: number;
92
+ }>;
93
+ isUpload: boolean;
94
+ }
61
95
  export interface RateLimiter {
62
96
  canMakeRequest(): boolean;
63
97
  waitForAvailableToken(): Promise<void>;
@@ -37,3 +37,17 @@ export declare function validateMoveCardRequest(args: Record<string, unknown>):
37
37
  cardId: string;
38
38
  listId: string;
39
39
  };
40
+ export declare function validateAttachImageRequest(args: Record<string, unknown>): {
41
+ cardId: string;
42
+ imageUrl: string;
43
+ name?: string;
44
+ };
45
+ export declare function validateSetActiveBoardRequest(args: Record<string, unknown>): {
46
+ boardId: string;
47
+ };
48
+ export declare function validateSetActiveWorkspaceRequest(args: Record<string, unknown>): {
49
+ workspaceId: string;
50
+ };
51
+ export declare function validateListBoardsInWorkspaceRequest(args: Record<string, unknown>): {
52
+ workspaceId: string;
53
+ };
@@ -102,4 +102,46 @@ export function validateMoveCardRequest(args) {
102
102
  listId: validateString(args.listId, 'listId'),
103
103
  };
104
104
  }
105
+ export function validateAttachImageRequest(args) {
106
+ if (!args.cardId || !args.imageUrl) {
107
+ throw new McpError(ErrorCode.InvalidParams, 'cardId and imageUrl are required');
108
+ }
109
+ // Validate image URL format
110
+ const imageUrl = validateString(args.imageUrl, 'imageUrl');
111
+ try {
112
+ new URL(imageUrl);
113
+ }
114
+ catch (e) {
115
+ throw new McpError(ErrorCode.InvalidParams, 'imageUrl must be a valid URL');
116
+ }
117
+ return {
118
+ cardId: validateString(args.cardId, 'cardId'),
119
+ imageUrl: imageUrl,
120
+ name: validateOptionalString(args.name),
121
+ };
122
+ }
123
+ export function validateSetActiveBoardRequest(args) {
124
+ if (!args.boardId) {
125
+ throw new McpError(ErrorCode.InvalidParams, 'boardId is required');
126
+ }
127
+ return {
128
+ boardId: validateString(args.boardId, 'boardId'),
129
+ };
130
+ }
131
+ export function validateSetActiveWorkspaceRequest(args) {
132
+ if (!args.workspaceId) {
133
+ throw new McpError(ErrorCode.InvalidParams, 'workspaceId is required');
134
+ }
135
+ return {
136
+ workspaceId: validateString(args.workspaceId, 'workspaceId'),
137
+ };
138
+ }
139
+ export function validateListBoardsInWorkspaceRequest(args) {
140
+ if (!args.workspaceId) {
141
+ throw new McpError(ErrorCode.InvalidParams, 'workspaceId is required');
142
+ }
143
+ return {
144
+ workspaceId: validateString(args.workspaceId, 'workspaceId'),
145
+ };
146
+ }
105
147
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,KAAK,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,KAAK,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAA6B;IACvE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,IAA6B;IAC5E,OAAO;QACL,KAAK,EAAE,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA6B;IAOlE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC7C,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QACvC,WAAW,EAAE,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;QACrD,OAAO,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7C,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAA6B;IAOrE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC7C,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,WAAW,EAAE,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;QACrD,OAAO,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7C,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAA6B;IACtE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA6B;IAClE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IAClE,CAAC;IACD,OAAO;QACL,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAA6B;IACtE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAA6B;IACnE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC7C,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAA6B;IAKtE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAC;IAClF,CAAC;IAED,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACL,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC7C,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAA6B;IACzE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;IACrE,CAAC;IACD,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAA6B;IAC7E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO;QACL,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,IAA6B;IAChF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO;QACL,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;KAC7D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delorenj/mcp-server-trello",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "A Model Context Protocol (MCP) server for interacting with Trello boards",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -41,7 +41,8 @@
41
41
  "homepage": "https://github.com/delorenj/mcp-server-trello#readme",
42
42
  "dependencies": {
43
43
  "@modelcontextprotocol/sdk": "^1.0.4",
44
- "axios": "^1.6.2"
44
+ "axios": "^1.6.2",
45
+ "mcp-evals": "^1.0.18"
45
46
  },
46
47
  "devDependencies": {
47
48
  "@types/node": "^20.10.0",