@delorenj/mcp-server-trello 0.3.0 → 1.1.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,16 +1,50 @@
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
-
3
1
  # MCP Server Trello
4
- [![smithery badge](https://smithery.ai/badge/@modelcontextprotocol/mcp-server-trello)](https://smithery.ai/server/@modelcontextprotocol/mcp-server-trello)
5
2
 
6
- A Model Context Protocol (MCP) server that provides tools for interacting with Trello boards. This server enables seamless integration with Trello's API while handling rate limiting, type safety, and error handling automatically.
3
+ [![Verified on MseeP](https://mseep.ai/badge.svg)](https://mseep.ai/app/27359682-7632-4ba7-981d-7dfecadf1c4b)
7
4
 
8
5
  <a href="https://glama.ai/mcp/servers/klqkamy7wt"><img width="380" height="200" src="https://glama.ai/mcp/servers/klqkamy7wt/badge" alt="Server Trello MCP server" /></a>
9
6
 
7
+ A Model Context Protocol (MCP) server that provides tools for interacting with Trello boards. This server enables seamless integration with Trello's API while handling rate limiting, type safety, and error handling automatically.
8
+
9
+ ## 🎉 New in v1.1.0: Complete Card Data Extraction!
10
+
11
+ **The `get_card` tool is here!** 🚀 Now you can fetch comprehensive Trello card data with human-level parity. Get everything you see in the Trello UI - checklists, attachments, labels with details, members, comments, and more - all formatted in beautiful markdown or structured JSON!
12
+
10
13
  ## Changelog
11
14
 
15
+ ### 1.1.0
16
+
17
+ **🎊 Major Feature Release: Complete Card Data Extraction**
18
+
19
+ - Added powerful `get_card` tool for comprehensive single card data retrieval
20
+ - **Enhanced Data Extraction:**
21
+ - ✅ **Checklists** - Full checklist support with items, completion states, member assignments, and due dates
22
+ - 📎 **Attachments** - Complete attachment data including images, previews, file metadata, and inline image detection
23
+ - 🏷️ **Labels** - Full label details (names and colors, not just IDs)
24
+ - 👥 **Members** - Card member assignments with full profile information
25
+ - 💬 **Comments** - Card activity and comment history
26
+ - 📊 **Badges** - Statistics including checklist progress, comment counts, and attachment counts
27
+ - 🎨 **Cover Images** - Card cover image support
28
+ - 📍 **Context** - Board and list information for complete context
29
+ - 🔧 **Custom Fields** - Support for board-specific custom fields
30
+ - **Markdown Formatting:** New `includeMarkdown` parameter returns beautifully formatted, human-readable card data
31
+ - **Inline Image Parsing:** Automatically detects and extracts images embedded in card descriptions
32
+ - **Comprehensive API Integration:** Single API call fetches all card data efficiently using optimized query parameters
33
+ - **Type Safety:** Added new TypeScript interfaces for all enhanced data structures
34
+ - **Human Parity:** Achieves complete parity with Trello UI - see everything a human sees
35
+
36
+ ### 1.0.0
37
+
38
+ - Fixed MCP protocol compatibility by removing all console output that interfered with JSON-RPC communication
39
+ - Improved pnpx support - now works seamlessly with `pnpx @delorenj/mcp-server-trello`
40
+ - Updated installation docs to feature pnpx as the primary installation method
41
+ - Added mise installation instructions for convenient tool management
42
+ - Production-ready release with stable API
43
+
12
44
  ### 0.3.0
13
45
 
46
+ - Added multi-board support - all methods now accept optional `boardId` parameter (thanks @blackoutnet!)
47
+ - `TRELLO_BOARD_ID` environment variable is now optional and serves as default board
14
48
  - Added board and workspace management capabilities:
15
49
  - `list_boards` - List all boards the user has access to
16
50
  - `set_active_board` - Set the active board for future operations
@@ -19,7 +53,8 @@ A Model Context Protocol (MCP) server that provides tools for interacting with T
19
53
  - `list_boards_in_workspace` - List all boards in a specific workspace
20
54
  - `get_active_board_info` - Get information about the currently active board
21
55
  - Added persistent configuration storage to remember active board/workspace
22
- - Improved error handling for all new operations
56
+ - Improved error handling with MCP-specific error types
57
+ - Full backward compatibility maintained
23
58
 
24
59
  ### 0.2.1
25
60
 
@@ -47,34 +82,91 @@ A Model Context Protocol (MCP) server that provides tools for interacting with T
47
82
  ## Features
48
83
 
49
84
  - **Full Trello Board Integration**: Interact with cards, lists, and board activities
85
+ - **🆕 Complete Card Data Extraction**: Fetch all card details including checklists, attachments, labels, members, and comments
50
86
  - **Built-in Rate Limiting**: Respects Trello's API limits (300 requests/10s per API key, 100 requests/10s per token)
51
87
  - **Type-Safe Implementation**: Written in TypeScript with comprehensive type definitions
52
88
  - **Input Validation**: Robust validation for all API inputs
53
89
  - **Error Handling**: Graceful error handling with informative messages
54
90
  - **Dynamic Board Selection**: Switch between boards and workspaces without restarting
91
+ - **Markdown Formatting**: Export card data in human-readable markdown format
55
92
 
56
93
  ## Installation
57
94
 
58
- ### Docker Installation (Recommended)
95
+ ### Quick Start with pnpx (Recommended)
59
96
 
60
- The easiest way to run the server is using Docker:
97
+ The easiest way to use the Trello MCP server is with `pnpx`, which doesn't require a global install:
61
98
 
62
- 1. Clone the repository:
63
- ```bash
64
- git clone https://github.com/delorenj/mcp-server-trello
65
- cd mcp-server-trello
99
+ ```json
100
+ {
101
+ "mcpServers": {
102
+ "trello": {
103
+ "command": "pnpx",
104
+ "args": ["@delorenj/mcp-server-trello"],
105
+ "env": {
106
+ "TRELLO_API_KEY": "your-api-key",
107
+ "TRELLO_TOKEN": "your-token"
108
+ }
109
+ }
110
+ }
111
+ }
66
112
  ```
67
113
 
68
- 2. Copy the environment template and fill in your Trello credentials:
114
+ Or if you're using mise:
115
+
116
+ ```json
117
+ {
118
+ "mcpServers": {
119
+ "trello": {
120
+ "command": "mise",
121
+ "args": ["x", "--", "pnpx", "@delorenj/mcp-server-trello"],
122
+ "env": {
123
+ "TRELLO_API_KEY": "your-api-key",
124
+ "TRELLO_TOKEN": "your-token"
125
+ }
126
+ }
127
+ }
128
+ }
129
+ ```
130
+
131
+ To connect a Trello workspace, you'll need to manually retrieve a `TRELLO_TOKEN` once per workspace. After setting up your Trello Power-Up, visit the following URL:
132
+
133
+ ```
134
+ https://trello.com/1/authorize?expiration=never&name=YOUR_APP_NAME&scope=read,write&response_type=token&key=YOUR_API_KEY
135
+ ```
136
+
137
+ Replace:
138
+
139
+ * `YOUR_APP_NAME` with a name for your application (e.g., "My Trello Integration"). This name is shown to the user on the Trello authorization screen.
140
+ * `YOUR_API_KEY` with the API key for your Trello Power-Up
141
+
142
+ This will generate the token required for integration.
143
+
144
+ > [!NOTE]
145
+ > The `expiration=never` parameter creates a token that does not expire. For enhanced security, consider using `expiration=30days` and renewing the token periodically if your setup allows for it.
146
+
147
+
148
+ #### Don't have pnpm?
149
+
150
+ The simplest way to get `pnpm` (and thus `pnpx`) is through [mise](https://mise.jdx.dev/):
151
+
69
152
  ```bash
70
- cp .env.template .env
153
+ # Install mise (if you don't have it)
154
+ curl https://mise.run | sh
155
+
156
+ # Install pnpm with mise
157
+ mise install pnpm
71
158
  ```
72
159
 
73
- 3. Build and run with Docker Compose:
160
+ ### Installing via npm
161
+
162
+ If you prefer using npm directly:
163
+
74
164
  ```bash
75
- docker compose up --build
165
+ npm install -g @delorenj/mcp-server-trello
76
166
  ```
77
167
 
168
+ Then use `mcp-server-trello` as the command in your MCP configuration.
169
+
78
170
  ### Installing via Smithery
79
171
 
80
172
  To install Trello Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@modelcontextprotocol/mcp-server-trello):
@@ -83,9 +175,27 @@ To install Trello Server for Claude Desktop automatically via [Smithery](https:/
83
175
  npx -y @smithery/cli install @modelcontextprotocol/mcp-server-trello --client claude
84
176
  ```
85
177
 
86
- ### Manual Installation
178
+ ### Docker Installation
179
+
180
+ For containerized environments:
181
+
182
+ 1. Clone the repository:
183
+
184
+ ```bash
185
+ git clone https://github.com/delorenj/mcp-server-trello
186
+ cd mcp-server-trello
187
+ ```
188
+
189
+ 2. Copy the environment template and fill in your Trello credentials:
190
+
191
+ ```bash
192
+ cp .env.template .env
193
+ ```
194
+
195
+ 3. Build and run with Docker Compose:
196
+
87
197
  ```bash
88
- npm install @delorenj/mcp-server-trello
198
+ docker compose up --build
89
199
  ```
90
200
 
91
201
  ## Configuration
@@ -99,7 +209,7 @@ The server can be configured using environment variables. Create a `.env` file i
99
209
  TRELLO_API_KEY=your-api-key
100
210
  TRELLO_TOKEN=your-token
101
211
 
102
- # Required: Initial board ID (can be changed later using set_active_board)
212
+ # Optional (Deprecated): Default board ID (can be changed later using set_active_board)
103
213
  TRELLO_BOARD_ID=your-board-id
104
214
 
105
215
  # Optional: Initial workspace ID (can be changed later using set_active_workspace)
@@ -107,25 +217,32 @@ TRELLO_WORKSPACE_ID=your-workspace-id
107
217
  ```
108
218
 
109
219
  You can get these values from:
110
- - API Key: https://trello.com/app-key
220
+
221
+ - API Key: <https://trello.com/app-key>
111
222
  - Token: Generate using your API key
112
- - Board ID: Found in the board URL (e.g., https://trello.com/b/BOARD_ID/board-name)
223
+ - Board ID (optional, deprecated): Found in the board URL (e.g., <https://trello.com/b/BOARD_ID/board-name>)
113
224
  - Workspace ID: Found in workspace settings or using `list_workspaces` tool
114
225
 
115
226
  ### Board and Workspace Management
116
227
 
117
- Starting with version 0.3.0, the MCP server supports dynamic board and workspace selection:
228
+ Starting with version 0.3.0, the MCP server supports multiple ways to work with boards:
118
229
 
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`
230
+ 1. **Multi-board support**: All methods now accept an optional `boardId` parameter
231
+ - Omit `TRELLO_BOARD_ID` and provide `boardId` in each API call
232
+ - Set `TRELLO_BOARD_ID` as default and optionally override with `boardId` parameter
123
233
 
124
- This allows you to work with multiple boards and workspaces without restarting the server or changing environment variables.
234
+ 2. **Dynamic board selection**: Use workspace management tools
235
+ - The `TRELLO_BOARD_ID` in your `.env` file is used as the initial/default board ID
236
+ - You can change the active board at any time using the `set_active_board` tool
237
+ - The selected board persists between server restarts (stored in `~/.trello-mcp/config.json`)
238
+ - Similarly, you can set and persist an active workspace using `set_active_workspace`
239
+
240
+ This allows you to work with multiple boards and workspaces without restarting the server.
125
241
 
126
242
  #### Example Workflow
127
243
 
128
244
  1. Start by listing available boards:
245
+
129
246
  ```typescript
130
247
  {
131
248
  name: 'list_boards',
@@ -134,6 +251,7 @@ This allows you to work with multiple boards and workspaces without restarting t
134
251
  ```
135
252
 
136
253
  2. Set your active board:
254
+
137
255
  ```typescript
138
256
  {
139
257
  name: 'set_active_board',
@@ -144,6 +262,7 @@ This allows you to work with multiple boards and workspaces without restarting t
144
262
  ```
145
263
 
146
264
  3. List workspaces if needed:
265
+
147
266
  ```typescript
148
267
  {
149
268
  name: 'list_workspaces',
@@ -152,6 +271,7 @@ This allows you to work with multiple boards and workspaces without restarting t
152
271
  ```
153
272
 
154
273
  4. Set active workspace if needed:
274
+
155
275
  ```typescript
156
276
  {
157
277
  name: 'set_active_workspace',
@@ -162,6 +282,7 @@ This allows you to work with multiple boards and workspaces without restarting t
162
282
  ```
163
283
 
164
284
  5. Check current active board info:
285
+
165
286
  ```typescript
166
287
  {
167
288
  name: 'get_active_board_info',
@@ -169,8 +290,41 @@ This allows you to work with multiple boards and workspaces without restarting t
169
290
  }
170
291
  ```
171
292
 
293
+ ## Date Format Guidelines
294
+
295
+ When working with dates in the Trello MCP server, please note the different format requirements:
296
+
297
+ - **Due Date (`dueDate`)**: Accepts full ISO 8601 format with time (e.g., `2023-12-31T12:00:00Z`)
298
+ - **Start Date (`start`)**: Accepts date only in YYYY-MM-DD format (e.g., `2025-08-05`)
299
+
300
+ This distinction follows Trello's API conventions where start dates are day-based markers while due dates can include specific times.
301
+
172
302
  ## Available Tools
173
303
 
304
+ ### get_card 🆕
305
+
306
+ Get comprehensive details of a specific Trello card with human-level parity.
307
+
308
+ ```typescript
309
+ {
310
+ name: 'get_card',
311
+ arguments: {
312
+ cardId: string, // ID of the Trello card (short ID like 'FdhbArbK' or full ID)
313
+ includeMarkdown?: boolean // Return formatted markdown instead of JSON (default: false)
314
+ }
315
+ }
316
+ ```
317
+
318
+ **Returns:** Complete card data including:
319
+ - ✅ Checklists with item states and assignments
320
+ - 📎 Attachments with previews and metadata
321
+ - 🏷️ Labels with names and colors
322
+ - 👥 Assigned members
323
+ - 💬 Comments and activity
324
+ - 📊 Statistics (badges)
325
+ - 🎨 Cover images
326
+ - 📍 Board and list context
327
+
174
328
  ### get_cards_by_list_id
175
329
 
176
330
  Fetch all cards from a specific list.
@@ -179,31 +333,35 @@ Fetch all cards from a specific list.
179
333
  {
180
334
  name: 'get_cards_by_list_id',
181
335
  arguments: {
182
- listId: string // ID of the Trello list
336
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
337
+ listId: string // ID of the Trello list
183
338
  }
184
339
  }
185
340
  ```
186
341
 
187
342
  ### get_lists
188
343
 
189
- Retrieve all lists from the currently active board.
344
+ Retrieve all lists from a board.
190
345
 
191
346
  ```typescript
192
347
  {
193
348
  name: 'get_lists',
194
- arguments: {}
349
+ arguments: {
350
+ boardId?: string // Optional: ID of the board (uses default if not provided)
351
+ }
195
352
  }
196
353
  ```
197
354
 
198
355
  ### get_recent_activity
199
356
 
200
- Fetch recent activity on the currently active board.
357
+ Fetch recent activity on a board.
201
358
 
202
359
  ```typescript
203
360
  {
204
361
  name: 'get_recent_activity',
205
362
  arguments: {
206
- limit?: number // Optional: Number of activities to fetch (default: 10)
363
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
364
+ limit?: number // Optional: Number of activities to fetch (default: 10)
207
365
  }
208
366
  }
209
367
  ```
@@ -216,11 +374,13 @@ Add a new card to a specified list.
216
374
  {
217
375
  name: 'add_card_to_list',
218
376
  arguments: {
377
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
219
378
  listId: string, // ID of the list to add the card to
220
379
  name: string, // Name of the card
221
380
  description?: string, // Optional: Description of the card
222
- dueDate?: string, // Optional: Due date (ISO 8601 format)
223
- labels?: string[] // Optional: Array of label IDs
381
+ dueDate?: string, // Optional: Due date (ISO 8601 format with time)
382
+ start?: string, // Optional: Start date (YYYY-MM-DD format, date only)
383
+ labels?: string[] // Optional: Array of label IDs
224
384
  }
225
385
  }
226
386
  ```
@@ -233,11 +393,14 @@ Update an existing card's details.
233
393
  {
234
394
  name: 'update_card_details',
235
395
  arguments: {
396
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
236
397
  cardId: string, // ID of the card to update
237
398
  name?: string, // Optional: New name for the card
238
399
  description?: string, // Optional: New description
239
- dueDate?: string, // Optional: New due date (ISO 8601 format)
240
- labels?: string[] // Optional: New array of label IDs
400
+ dueDate?: string, // Optional: New due date (ISO 8601 format with time)
401
+ start?: string, // Optional: New start date (YYYY-MM-DD format, date only)
402
+ dueComplete?: boolean,// Optional: Mark the due date as complete (true) or incomplete (false)
403
+ labels?: string[] // Optional: New array of label IDs
241
404
  }
242
405
  }
243
406
  ```
@@ -250,20 +413,22 @@ Send a card to the archive.
250
413
  {
251
414
  name: 'archive_card',
252
415
  arguments: {
253
- cardId: string // ID of the card to archive
416
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
417
+ cardId: string // ID of the card to archive
254
418
  }
255
419
  }
256
420
  ```
257
421
 
258
422
  ### add_list_to_board
259
423
 
260
- Add a new list to the currently active board.
424
+ Add a new list to a board.
261
425
 
262
426
  ```typescript
263
427
  {
264
428
  name: 'add_list_to_board',
265
429
  arguments: {
266
- name: string // Name of the new list
430
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
431
+ name: string // Name of the new list
267
432
  }
268
433
  }
269
434
  ```
@@ -276,7 +441,8 @@ Send a list to the archive.
276
441
  {
277
442
  name: 'archive_list',
278
443
  arguments: {
279
- listId: string // ID of the list to archive
444
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
445
+ listId: string // ID of the list to archive
280
446
  }
281
447
  }
282
448
  ```
@@ -300,8 +466,9 @@ Move a card to a different list.
300
466
  {
301
467
  name: 'move_card',
302
468
  arguments: {
303
- cardId: string, // ID of the card to move
304
- listId: string // ID of the target list
469
+ boardId?: string, // Optional: ID of the target board (uses default if not provided)
470
+ cardId: string, // ID of the card to move
471
+ listId: string // ID of the target list
305
472
  }
306
473
  }
307
474
  ```
@@ -314,9 +481,10 @@ Attach an image to a card directly from a URL.
314
481
  {
315
482
  name: 'attach_image_to_card',
316
483
  arguments: {
317
- cardId: string, // ID of the card to attach the image to
484
+ boardId?: string, // Optional: ID of the board (uses default if not provided)
485
+ cardId: string, // ID of the card to attach the image to
318
486
  imageUrl: string, // URL of the image to attach
319
- name?: string // Optional: Name for the attachment (defaults to "Image Attachment")
487
+ name?: string // Optional: Name for the attachment (defaults to "Image Attachment")
320
488
  }
321
489
  }
322
490
  ```
@@ -393,6 +561,70 @@ Get information about the currently active board.
393
561
  }
394
562
  ```
395
563
 
564
+ ## Integration Examples
565
+
566
+ ### 🎨 Pairing with Ideogram MCP Server
567
+
568
+ The Trello MCP server pairs beautifully with [@flowluap/ideogram-mcp-server](https://github.com/flowluap/ideogram-mcp-server) for AI-powered visual content creation. Generate images with Ideogram and attach them directly to your Trello cards!
569
+
570
+ ![Ideogram + Trello Integration Example](https://ss.delo.sh/hosted/20250717-0619.png)
571
+
572
+ #### Example Workflow
573
+
574
+ 1. **Generate an image with Ideogram:**
575
+ ```typescript
576
+ // Using ideogram-mcp-server
577
+ {
578
+ name: 'generate_image',
579
+ arguments: {
580
+ prompt: "A futuristic dashboard design with neon accents",
581
+ aspect_ratio: "16:9"
582
+ }
583
+ }
584
+ // Returns: { image_url: "https://..." }
585
+ ```
586
+
587
+ 2. **Attach the generated image to a Trello card:**
588
+ ```typescript
589
+ // Using trello-mcp-server
590
+ {
591
+ name: 'attach_image_to_card',
592
+ arguments: {
593
+ cardId: "your-card-id",
594
+ imageUrl: "https://...", // URL from Ideogram
595
+ name: "Dashboard Mockup v1"
596
+ }
597
+ }
598
+ ```
599
+
600
+ #### Setting up both servers
601
+
602
+ Add both servers to your Claude Desktop configuration:
603
+
604
+ ```json
605
+ {
606
+ "mcpServers": {
607
+ "trello": {
608
+ "command": "pnpx",
609
+ "args": ["@delorenj/mcp-server-trello"],
610
+ "env": {
611
+ "TRELLO_API_KEY": "your-trello-api-key",
612
+ "TRELLO_TOKEN": "your-trello-token"
613
+ }
614
+ },
615
+ "ideogram": {
616
+ "command": "pnpx",
617
+ "args": ["@flowluap/ideogram-mcp-server"],
618
+ "env": {
619
+ "IDEOGRAM_API_KEY": "your-ideogram-api-key"
620
+ }
621
+ }
622
+ }
623
+ }
624
+ ```
625
+
626
+ Now you can seamlessly create visual content and organize it in Trello, all within Claude!
627
+
396
628
  ## Rate Limiting
397
629
 
398
630
  The server implements a token bucket algorithm for rate limiting to comply with Trello's API limits:
@@ -440,7 +672,6 @@ npm install
440
672
  npm run build
441
673
  ```
442
674
 
443
-
444
675
  ## Running evals
445
676
 
446
677
  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).
@@ -448,6 +679,7 @@ The evals package loads an mcp client that then runs the index.ts file, so there
448
679
  ```bash
449
680
  OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
450
681
  ```
682
+
451
683
  ## Contributing
452
684
 
453
685
  Contributions are welcome!
@@ -1,5 +1,5 @@
1
1
  import { EvalConfig } from 'mcp-evals';
2
- import { EvalFunction } from "mcp-evals";
2
+ import { EvalFunction } from 'mcp-evals';
3
3
  declare const config: EvalConfig;
4
4
  export default config;
5
5
  export declare const evals: EvalFunction[];
@@ -1,50 +1,72 @@
1
1
  //evals.ts
2
- import { openai } from "@ai-sdk/openai";
3
- import { grade } from "mcp-evals";
2
+ import { openai } from '@ai-sdk/openai';
3
+ import { grade } from 'mcp-evals';
4
4
  const get_cards_by_list_idEval = {
5
5
  name: 'get_cards_by_list_id Tool Evaluation',
6
6
  description: 'Evaluates the get_cards_by_list_id tool functionality',
7
7
  run: async () => {
8
- const result = await grade(openai("gpt-4"), "Can you fetch all cards from the Trello list with ID abc123?");
8
+ const result = await grade(openai('gpt-4'), 'Can you fetch all cards from the Trello list with ID abc123?');
9
9
  return JSON.parse(result);
10
- }
10
+ },
11
11
  };
12
12
  const get_listsEval = {
13
13
  name: 'get_lists Tool Evaluation',
14
14
  description: 'Evaluates the get_lists tool by retrieving all lists from a specified board',
15
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.");
16
+ const result = await grade(openai('gpt-4'), 'Please retrieve all lists from the board with ID 12345 and provide their names.');
17
17
  return JSON.parse(result);
18
- }
18
+ },
19
19
  };
20
20
  const get_recent_activityEvalFunction = {
21
21
  name: 'get_recent_activity Tool Evaluation',
22
22
  description: 'Evaluates the ability to fetch recent activity on the Trello board',
23
23
  run: async () => {
24
- const result = await grade(openai("gpt-4"), "Fetch the recent activity on the Trello board, limit it to 5 items");
24
+ const result = await grade(openai('gpt-4'), 'Fetch the recent activity on the Trello board, limit it to 5 items');
25
25
  return JSON.parse(result);
26
- }
26
+ },
27
27
  };
28
28
  const add_card_to_listEval = {
29
29
  name: 'add_card_to_listEval',
30
30
  description: 'Evaluates the add_card_to_list tool',
31
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'.");
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', start date '2025-08-05', and a label 'priority'.");
33
33
  return JSON.parse(result);
34
- }
34
+ },
35
35
  };
36
36
  const update_card_detailsEval = {
37
37
  name: 'update_card_details Evaluation',
38
38
  description: 'Evaluates the update_card_details tool functionality',
39
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'].");
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', start date '2025-08-05', and labels ['priority','review'].");
41
41
  return JSON.parse(result);
42
- }
42
+ },
43
+ };
44
+ const mark_card_completeEval = {
45
+ name: 'mark_card_complete Evaluation',
46
+ description: 'Evaluates the ability to mark a card as complete using dueComplete',
47
+ run: async () => {
48
+ const result = await grade(openai('gpt-4'), "Please mark the card with ID 'xyz789' as complete by setting dueComplete to true.");
49
+ return JSON.parse(result);
50
+ },
43
51
  };
44
52
  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]
53
+ model: openai('gpt-4'),
54
+ evals: [
55
+ get_cards_by_list_idEval,
56
+ get_listsEval,
57
+ get_recent_activityEvalFunction,
58
+ add_card_to_listEval,
59
+ update_card_detailsEval,
60
+ mark_card_completeEval,
61
+ ],
47
62
  };
48
63
  export default config;
49
- export const evals = [get_cards_by_list_idEval, get_listsEval, get_recent_activityEvalFunction, add_card_to_listEval, update_card_detailsEval];
64
+ export const evals = [
65
+ get_cards_by_list_idEval,
66
+ get_listsEval,
67
+ get_recent_activityEvalFunction,
68
+ add_card_to_listEval,
69
+ update_card_detailsEval,
70
+ mark_card_completeEval,
71
+ ];
50
72
  //# sourceMappingURL=evals.js.map
@@ -1 +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"}
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;IAC7C,IAAI,EAAE,sCAAsC;IAC5C,WAAW,EAAE,uDAAuD;IACpE,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,OAAO,CAAC,EACf,8DAA8D,CAC/D,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAiB;IAClC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,6EAA6E;IAC1F,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,OAAO,CAAC,EACf,iFAAiF,CAClF,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,+BAA+B,GAAiB;IACpD,IAAI,EAAE,qCAAqC;IAC3C,WAAW,EAAE,oEAAoE;IACjF,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,OAAO,CAAC,EACf,oEAAoE,CACrE,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAiB;IACzC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,qCAAqC;IAClD,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,OAAO,CAAC,EACf,sMAAsM,CACvM,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,uBAAuB,GAAiB;IAC5C,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE,sDAAsD;IACnE,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,OAAO,CAAC,EACf,gOAAgO,CACjO,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,sBAAsB,GAAiB;IAC3C,IAAI,EAAE,+BAA+B;IACrC,WAAW,EAAE,oEAAoE;IACjF,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB,MAAM,CAAC,OAAO,CAAC,EACf,mFAAmF,CACpF,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,GAAe;IACzB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,KAAK,EAAE;QACL,wBAAwB;QACxB,aAAa;QACb,+BAA+B;QAC/B,oBAAoB;QACpB,uBAAuB;QACvB,sBAAsB;KACvB;CACF,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,wBAAwB;IACxB,aAAa;IACb,+BAA+B;IAC/B,oBAAoB;IACpB,uBAAuB;IACvB,sBAAsB;CACvB,CAAC"}