@delorenj/mcp-server-trello 1.2.0 → 1.5.1
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 +383 -373
- package/build/health/health-endpoints.d.ts +131 -0
- package/build/health/health-endpoints.js +476 -0
- package/build/health/health-endpoints.js.map +1 -0
- package/build/health/health-monitor.d.ts +136 -0
- package/build/health/health-monitor.js +507 -0
- package/build/health/health-monitor.js.map +1 -0
- package/build/index.js +756 -1
- package/build/index.js.map +1 -1
- package/build/trello-client.d.ts +14 -1
- package/build/trello-client.js +164 -68
- package/build/trello-client.js.map +1 -1
- package/build/types.d.ts +2 -2
- package/package.json +12 -27
package/README.md
CHANGED
|
@@ -1,156 +1,105 @@
|
|
|
1
1
|
# MCP Server Trello
|
|
2
2
|
|
|
3
3
|
[](https://mseep.ai/app/27359682-7632-4ba7-981d-7dfecadf1c4b)
|
|
4
|
+
[](https://registry.modelcontextprotocol.io/servers/io.github.delorenj/mcp-server-trello)
|
|
5
|
+
[](https://badge.fury.io/js/%40delorenj%2Fmcp-server-trello)
|
|
4
6
|
|
|
5
7
|
<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>
|
|
6
8
|
|
|
7
9
|
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
10
|
|
|
9
|
-
## 🎉 New in v1.
|
|
11
|
+
## 🎉 New in v1.5.0: Now Powered by Bun! ⚡
|
|
10
12
|
|
|
11
|
-
**
|
|
13
|
+
**This project is now powered by Bun!** 🚀 We've migrated the entire project to the Bun runtime, resulting in a 2.8-4.4x performance boost. All existing `npx`, `pnpx`, and `npm` commands will **continue to work perfectly**.
|
|
12
14
|
|
|
13
|
-
### ✨ New
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
- 📊 **`get_checklist_by_name`** - Get complete checklist with completion percentage
|
|
15
|
+
### ✨ New in This Release:
|
|
16
|
+
|
|
17
|
+
- 🚀 **Performance Boost**: Enjoy a faster, more responsive server.
|
|
18
|
+
- BUN **Bun-Powered**: The project now runs on the lightning-fast Bun runtime.
|
|
19
|
+
- 📖 **Comprehensive Examples**: A new `examples` directory with detailed implementations in JavaScript, Python, and TypeScript.
|
|
19
20
|
|
|
20
21
|
**Plus:** Modern MCP SDK architecture, enhanced type safety, and comprehensive documentation!
|
|
21
22
|
|
|
22
23
|
## Changelog
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
**🎊 Major Feature Release: Complete Checklist Management Suite**
|
|
27
|
-
|
|
28
|
-
- **5 New Checklist Tools** for comprehensive checklist management:
|
|
29
|
-
- `get_checklist_items(name)` - Retrieve all items from a checklist by name
|
|
30
|
-
- `add_checklist_item(text, checkListName)` - Add new items to existing checklists
|
|
31
|
-
- `find_checklist_items_by_description(description)` - Search checklist items by text content
|
|
32
|
-
- `get_acceptance_criteria()` - Convenience method for "Acceptance Criteria" checklists
|
|
33
|
-
- `get_checklist_by_name(name)` - Get complete checklist with completion percentage
|
|
34
|
-
- **Modern MCP SDK Architecture:** Refactored to use latest MCP TypeScript SDK patterns with `registerTool()` and Zod validation
|
|
35
|
-
- **Enhanced Type Safety:** Full TypeScript support with proper type conversions between Trello API and MCP types
|
|
36
|
-
- **New Data Types:** `CheckList` and `CheckListItem` interfaces for structured checklist data
|
|
37
|
-
- **Comprehensive Documentation:** Added `CHECKLIST_TOOLS.md` with examples and best practices
|
|
38
|
-
- **Improved Error Handling:** Consistent error responses with descriptive messages
|
|
39
|
-
- **Runtime Validation:** Zod schemas for all tool inputs with automatic validation
|
|
40
|
-
|
|
41
|
-
### 1.1.0
|
|
42
|
-
|
|
43
|
-
**🎊 Major Feature Release: Complete Card Data Extraction**
|
|
44
|
-
|
|
45
|
-
- Added powerful `get_card` tool for comprehensive single card data retrieval
|
|
46
|
-
- **Enhanced Data Extraction:**
|
|
47
|
-
- ✅ **Checklists** - Full checklist support with items, completion states, member assignments, and due dates
|
|
48
|
-
- 📎 **Attachments** - Complete attachment data including images, previews, file metadata, and inline image detection
|
|
49
|
-
- 🏷️ **Labels** - Full label details (names and colors, not just IDs)
|
|
50
|
-
- 👥 **Members** - Card member assignments with full profile information
|
|
51
|
-
- 💬 **Comments** - Card activity and comment history
|
|
52
|
-
- 📊 **Badges** - Statistics including checklist progress, comment counts, and attachment counts
|
|
53
|
-
- 🎨 **Cover Images** - Card cover image support
|
|
54
|
-
- 📍 **Context** - Board and list information for complete context
|
|
55
|
-
- 🔧 **Custom Fields** - Support for board-specific custom fields
|
|
56
|
-
- **Markdown Formatting:** New `includeMarkdown` parameter returns beautifully formatted, human-readable card data
|
|
57
|
-
- **Inline Image Parsing:** Automatically detects and extracts images embedded in card descriptions
|
|
58
|
-
- **Comprehensive API Integration:** Single API call fetches all card data efficiently using optimized query parameters
|
|
59
|
-
- **Type Safety:** Added new TypeScript interfaces for all enhanced data structures
|
|
60
|
-
- **Human Parity:** Achieves complete parity with Trello UI - see everything a human sees
|
|
61
|
-
|
|
62
|
-
### 1.0.0
|
|
63
|
-
|
|
64
|
-
- Fixed MCP protocol compatibility by removing all console output that interfered with JSON-RPC communication
|
|
65
|
-
- Improved pnpx support - now works seamlessly with `pnpx @delorenj/mcp-server-trello`
|
|
66
|
-
- Updated installation docs to feature pnpx as the primary installation method
|
|
67
|
-
- Added mise installation instructions for convenient tool management
|
|
68
|
-
- Production-ready release with stable API
|
|
69
|
-
|
|
70
|
-
### 0.3.0
|
|
71
|
-
|
|
72
|
-
- Added multi-board support - all methods now accept optional `boardId` parameter (thanks @blackoutnet!)
|
|
73
|
-
- `TRELLO_BOARD_ID` environment variable is now optional and serves as default board
|
|
74
|
-
- Added board and workspace management capabilities:
|
|
75
|
-
- `list_boards` - List all boards the user has access to
|
|
76
|
-
- `set_active_board` - Set the active board for future operations
|
|
77
|
-
- `list_workspaces` - List all workspaces the user has access to
|
|
78
|
-
- `set_active_workspace` - Set the active workspace for future operations
|
|
79
|
-
- `list_boards_in_workspace` - List all boards in a specific workspace
|
|
80
|
-
- `get_active_board_info` - Get information about the currently active board
|
|
81
|
-
- Added persistent configuration storage to remember active board/workspace
|
|
82
|
-
- Improved error handling with MCP-specific error types
|
|
83
|
-
- Full backward compatibility maintained
|
|
84
|
-
|
|
85
|
-
### 0.2.1
|
|
86
|
-
|
|
87
|
-
- Added detailed JSDoc comments to rate limiter functions
|
|
88
|
-
- Improved error handling for image attachment functionality
|
|
89
|
-
- Updated documentation for attach_image_to_card tool
|
|
90
|
-
|
|
91
|
-
### 0.2.0
|
|
92
|
-
|
|
93
|
-
- Added `attach_image_to_card` tool to attach images to cards from URLs
|
|
94
|
-
- Added Docker support with multi-stage build
|
|
95
|
-
- Improved security by moving environment variables to `.env`
|
|
96
|
-
- Added Docker Compose configuration
|
|
97
|
-
- Added `.env.template` for easier setup
|
|
98
|
-
|
|
99
|
-
### 0.1.1
|
|
100
|
-
|
|
101
|
-
- Added `move_card` tool to move cards between lists
|
|
102
|
-
- Improved documentation
|
|
103
|
-
|
|
104
|
-
### 0.1.0
|
|
105
|
-
|
|
106
|
-
- Initial release with basic Trello board management features
|
|
25
|
+
For a detailed list of changes, please refer to the [CHANGELOG.md](CHANGELOG.md) file.
|
|
107
26
|
|
|
108
27
|
## Features
|
|
109
28
|
|
|
110
|
-
- **Full Trello Board Integration**: Interact with cards, lists, and board activities
|
|
111
|
-
- **🆕 Complete Card Data Extraction**: Fetch all card details including checklists, attachments, labels, members, and comments
|
|
112
|
-
- **
|
|
113
|
-
- **
|
|
114
|
-
- **
|
|
115
|
-
- **
|
|
116
|
-
- **
|
|
117
|
-
- **
|
|
29
|
+
- **Full Trello Board Integration**: Interact with cards, lists, and board activities
|
|
30
|
+
- **🆕 Complete Card Data Extraction**: Fetch all card details including checklists, attachments, labels, members, and comments
|
|
31
|
+
- **File Attachments**: Attach any type of file to cards (PDFs, documents, videos, images, etc.) from URLs
|
|
32
|
+
- **Built-in Rate Limiting**: Respects Trello's API limits (300 requests/10s per API key, 100 requests/10s per token)
|
|
33
|
+
- **Type-Safe Implementation**: Written in TypeScript with comprehensive type definitions
|
|
34
|
+
- **Input Validation**: Robust validation for all API inputs
|
|
35
|
+
- **Error Handling**: Graceful error handling with informative messages
|
|
36
|
+
- **Dynamic Board Selection**: Switch between boards and workspaces without restarting
|
|
37
|
+
- **Markdown Formatting**: Export card data in human-readable markdown format
|
|
118
38
|
|
|
119
39
|
## Installation
|
|
120
40
|
|
|
121
|
-
###
|
|
41
|
+
### 🚀 Install from MCP Registry (Recommended)
|
|
42
|
+
|
|
43
|
+
The MCP Server Trello is now available in the official MCP Registry\! MCP clients can automatically discover and install this server.
|
|
44
|
+
|
|
45
|
+
For clients that support the MCP Registry:
|
|
46
|
+
|
|
47
|
+
1. Search for "mcp-server-trello" or "io.github.delorenj/mcp-server-trello"
|
|
48
|
+
2. Install directly from the registry
|
|
49
|
+
3. Configure with your Trello credentials
|
|
50
|
+
|
|
51
|
+
### 🚀 Quick Start with Bun (Fastest)
|
|
52
|
+
|
|
53
|
+
If you have [Bun](https://bun.sh) installed, using `bunx` is the fastest way to run the server:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"mcpServers": {
|
|
58
|
+
"trello": {
|
|
59
|
+
"command": "bunx",
|
|
60
|
+
"args": ["@delorenj/mcp-server-trello"],
|
|
61
|
+
"env": {
|
|
62
|
+
"TRELLO_API_KEY": "your-api-key",
|
|
63
|
+
"TRELLO_TOKEN": "your-token"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Quick Start with npx / pnpx / bunx
|
|
122
71
|
|
|
123
|
-
|
|
72
|
+
You can still use `npx` or `pnpx`. This doesn't require a global install and will work just fine, though `bunx` (above) is faster.
|
|
124
73
|
|
|
125
74
|
```json
|
|
126
75
|
{
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
76
|
+
"mcpServers": {
|
|
77
|
+
"trello": {
|
|
78
|
+
"command": "bunx",
|
|
79
|
+
"args": ["@delorenj/mcp-server-trello"],
|
|
80
|
+
"env": {
|
|
81
|
+
"TRELLO_API_KEY": "your-api-key",
|
|
82
|
+
"TRELLO_TOKEN": "your-token"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
137
86
|
}
|
|
138
87
|
```
|
|
139
88
|
|
|
140
|
-
Or if you're using mise
|
|
89
|
+
Or if you're using mise, you can explicitly execute `bunx` with `mise exec`:
|
|
141
90
|
|
|
142
91
|
```json
|
|
143
92
|
{
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
93
|
+
"mcpServers": {
|
|
94
|
+
"trello": {
|
|
95
|
+
"command": "mise",
|
|
96
|
+
"args": ["x", "--", "bunx", "@delorenj/mcp-server-trello"],
|
|
97
|
+
"env": {
|
|
98
|
+
"TRELLO_API_KEY": "your-api-key",
|
|
99
|
+
"TRELLO_TOKEN": "your-token"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
154
103
|
}
|
|
155
104
|
```
|
|
156
105
|
|
|
@@ -162,63 +111,78 @@ https://trello.com/1/authorize?expiration=never&name=YOUR_APP_NAME&scope=read,wr
|
|
|
162
111
|
|
|
163
112
|
Replace:
|
|
164
113
|
|
|
165
|
-
* `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.
|
|
166
|
-
* `YOUR_API_KEY` with the API key for your Trello Power-Up
|
|
114
|
+
* `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.
|
|
115
|
+
* `YOUR_API_KEY` with the API key for your Trello Power-Up
|
|
167
116
|
|
|
168
117
|
This will generate the token required for integration.
|
|
169
118
|
|
|
170
|
-
> [
|
|
119
|
+
> [\!NOTE]
|
|
171
120
|
> 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.
|
|
172
121
|
|
|
122
|
+
#### Don't have Bun?
|
|
173
123
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
The simplest way to get `pnpm` (and thus `pnpx`) is through [mise](https://mise.jdx.dev/):
|
|
124
|
+
The simplest way to get `bun` (and thus `bunx`) is through [mise](https://mise.jdx.dev/):
|
|
177
125
|
|
|
178
126
|
```bash
|
|
179
127
|
# Install mise (if you don't have it)
|
|
180
128
|
curl https://mise.run | sh
|
|
181
129
|
|
|
182
|
-
# Install
|
|
183
|
-
mise
|
|
130
|
+
# Install bun and make the @latest version your system default
|
|
131
|
+
mise use bun@latest -g
|
|
132
|
+
|
|
133
|
+
# Or just run `mise install` from the project directory to install Bun locally
|
|
134
|
+
cd /path/to/mcp-server-trello
|
|
135
|
+
mise install
|
|
184
136
|
```
|
|
185
137
|
|
|
186
138
|
### Installing via npm
|
|
187
139
|
|
|
188
|
-
If you prefer using npm directly:
|
|
140
|
+
If you prefer using `npm` directly:
|
|
189
141
|
|
|
190
142
|
```bash
|
|
191
143
|
npm install -g @delorenj/mcp-server-trello
|
|
192
144
|
```
|
|
193
145
|
|
|
194
|
-
|
|
146
|
+
*(A fast alternative is `bun add -g @delorenj/mcp-server-trello`)*
|
|
147
|
+
|
|
148
|
+
Then use `npx mcp-server-trello` as the command in your MCP configuration.
|
|
195
149
|
|
|
196
150
|
### Installing via Smithery
|
|
197
151
|
|
|
198
|
-
To install Trello Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@
|
|
152
|
+
To install Trello Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@delorenj/mcp-server-trello):
|
|
199
153
|
|
|
200
154
|
```bash
|
|
201
|
-
|
|
155
|
+
# Using bunx (recommended)
|
|
156
|
+
bunx -y @smithery/cli install @delorenj/mcp-server-trello --client claude
|
|
157
|
+
|
|
158
|
+
# Using npx
|
|
159
|
+
npx -y @smithery/cli install @delorenj/mcp-server-trello --client claude
|
|
202
160
|
```
|
|
203
161
|
|
|
204
162
|
### Docker Installation
|
|
205
163
|
|
|
206
164
|
For containerized environments:
|
|
207
165
|
|
|
208
|
-
1.
|
|
166
|
+
1. Clone the repository:
|
|
167
|
+
|
|
168
|
+
<!-- end list -->
|
|
209
169
|
|
|
210
170
|
```bash
|
|
211
171
|
git clone https://github.com/delorenj/mcp-server-trello
|
|
212
172
|
cd mcp-server-trello
|
|
213
173
|
```
|
|
214
174
|
|
|
215
|
-
2.
|
|
175
|
+
2. Copy the environment template and fill in your Trello credentials:
|
|
176
|
+
|
|
177
|
+
<!-- end list -->
|
|
216
178
|
|
|
217
179
|
```bash
|
|
218
180
|
cp .env.template .env
|
|
219
181
|
```
|
|
220
182
|
|
|
221
|
-
3.
|
|
183
|
+
3. Build and run with Docker Compose:
|
|
184
|
+
|
|
185
|
+
<!-- end list -->
|
|
222
186
|
|
|
223
187
|
```bash
|
|
224
188
|
docker compose up --build
|
|
@@ -244,75 +208,85 @@ TRELLO_WORKSPACE_ID=your-workspace-id
|
|
|
244
208
|
|
|
245
209
|
You can get these values from:
|
|
246
210
|
|
|
247
|
-
- API Key:
|
|
248
|
-
- Token: Generate using your API key
|
|
249
|
-
- Board ID (optional, deprecated): Found in the board URL (e.g.,
|
|
250
|
-
- Workspace ID: Found in workspace settings or using `list_workspaces` tool
|
|
211
|
+
- API Key: [https://trello.com/app-key](https://trello.com/app-key)
|
|
212
|
+
- Token: Generate using your API key
|
|
213
|
+
- Board ID (optional, deprecated): Found in the board URL (e.g., [suspicious link removed])
|
|
214
|
+
- Workspace ID: Found in workspace settings or using `list_workspaces` tool
|
|
251
215
|
|
|
252
216
|
### Board and Workspace Management
|
|
253
217
|
|
|
254
218
|
Starting with version 0.3.0, the MCP server supports multiple ways to work with boards:
|
|
255
219
|
|
|
256
|
-
1.
|
|
257
|
-
|
|
258
|
-
|
|
220
|
+
1. **Multi-board support**: All methods now accept an optional `boardId` parameter
|
|
221
|
+
- Omit `TRELLO_BOARD_ID` and provide `boardId` in each API call
|
|
222
|
+
- Set `TRELLO_BOARD_ID` as default and optionally override with `boardId` parameter
|
|
259
223
|
|
|
260
|
-
2.
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
224
|
+
2. **Dynamic board selection**: Use workspace management tools
|
|
225
|
+
- The `TRELLO_BOARD_ID` in your `.env` file is used as the initial/default board ID
|
|
226
|
+
- You can change the active board at any time using the `set_active_board` tool
|
|
227
|
+
- The selected board persists between server restarts (stored in `~/.trello-mcp/config.json`)
|
|
228
|
+
- Similarly, you can set and persist an active workspace using `set_active_workspace`
|
|
265
229
|
|
|
266
230
|
This allows you to work with multiple boards and workspaces without restarting the server.
|
|
267
231
|
|
|
268
232
|
#### Example Workflow
|
|
269
233
|
|
|
270
|
-
1.
|
|
234
|
+
1. Start by listing available boards:
|
|
235
|
+
|
|
236
|
+
<!-- end list -->
|
|
271
237
|
|
|
272
238
|
```typescript
|
|
273
239
|
{
|
|
274
|
-
|
|
275
|
-
|
|
240
|
+
name: 'list_boards',
|
|
241
|
+
arguments: {}
|
|
276
242
|
}
|
|
277
243
|
```
|
|
278
244
|
|
|
279
|
-
2.
|
|
245
|
+
2. Set your active board:
|
|
246
|
+
|
|
247
|
+
<!-- end list -->
|
|
280
248
|
|
|
281
249
|
```typescript
|
|
282
250
|
{
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
251
|
+
name: 'set_active_board',
|
|
252
|
+
arguments: {
|
|
253
|
+
boardId: "abc123" // ID from list_boards response
|
|
254
|
+
}
|
|
287
255
|
}
|
|
288
256
|
```
|
|
289
257
|
|
|
290
|
-
3.
|
|
258
|
+
3. List workspaces if needed:
|
|
259
|
+
|
|
260
|
+
<!-- end list -->
|
|
291
261
|
|
|
292
262
|
```typescript
|
|
293
263
|
{
|
|
294
|
-
|
|
295
|
-
|
|
264
|
+
name: 'list_workspaces',
|
|
265
|
+
arguments: {}
|
|
296
266
|
}
|
|
297
267
|
```
|
|
298
268
|
|
|
299
|
-
4.
|
|
269
|
+
4. Set active workspace if needed:
|
|
270
|
+
|
|
271
|
+
<!-- end list -->
|
|
300
272
|
|
|
301
273
|
```typescript
|
|
302
274
|
{
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
275
|
+
name: 'set_active_workspace',
|
|
276
|
+
arguments: {
|
|
277
|
+
workspaceId: "xyz789" // ID from list_workspaces response
|
|
278
|
+
}
|
|
307
279
|
}
|
|
308
280
|
```
|
|
309
281
|
|
|
310
|
-
5.
|
|
282
|
+
5. Check current active board info:
|
|
283
|
+
|
|
284
|
+
<!-- end list -->
|
|
311
285
|
|
|
312
286
|
```typescript
|
|
313
287
|
{
|
|
314
|
-
|
|
315
|
-
|
|
288
|
+
name: 'get_active_board_info',
|
|
289
|
+
arguments: {}
|
|
316
290
|
}
|
|
317
291
|
```
|
|
318
292
|
|
|
@@ -320,8 +294,8 @@ This allows you to work with multiple boards and workspaces without restarting t
|
|
|
320
294
|
|
|
321
295
|
When working with dates in the Trello MCP server, please note the different format requirements:
|
|
322
296
|
|
|
323
|
-
- **Due Date (`dueDate`)**: Accepts full ISO 8601 format with time (e.g., `2023-12-31T12:00:00Z`)
|
|
324
|
-
- **Start Date (`start`)**: Accepts date only in YYYY-MM-DD format (e.g., `2025-08-05`)
|
|
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`)
|
|
325
299
|
|
|
326
300
|
This distinction follows Trello's API conventions where start dates are day-based markers while due dates can include specific times.
|
|
327
301
|
|
|
@@ -329,339 +303,358 @@ This distinction follows Trello's API conventions where start dates are day-base
|
|
|
329
303
|
|
|
330
304
|
### Checklist Management Tools 🆕
|
|
331
305
|
|
|
332
|
-
####
|
|
306
|
+
#### get\_checklist\_items
|
|
333
307
|
|
|
334
308
|
Get all items from a checklist by name.
|
|
335
309
|
|
|
336
310
|
```typescript
|
|
337
311
|
{
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
312
|
+
name: 'get_checklist_items',
|
|
313
|
+
arguments: {
|
|
314
|
+
name: string, // Name of the checklist to retrieve items from
|
|
315
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
316
|
+
}
|
|
343
317
|
}
|
|
344
318
|
```
|
|
345
319
|
|
|
346
|
-
####
|
|
320
|
+
#### add\_checklist\_item
|
|
347
321
|
|
|
348
322
|
Add a new item to an existing checklist.
|
|
349
323
|
|
|
350
324
|
```typescript
|
|
351
325
|
{
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
326
|
+
name: 'add_checklist_item',
|
|
327
|
+
arguments: {
|
|
328
|
+
text: string, // Text content of the checklist item
|
|
329
|
+
checkListName: string, // Name of the checklist to add the item to
|
|
330
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
331
|
+
}
|
|
358
332
|
}
|
|
359
333
|
```
|
|
360
334
|
|
|
361
|
-
####
|
|
335
|
+
#### find\_checklist\_items\_by\_description
|
|
362
336
|
|
|
363
337
|
Search for checklist items containing specific text.
|
|
364
338
|
|
|
365
339
|
```typescript
|
|
366
340
|
{
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
341
|
+
nbsp; name: 'find_checklist_items_by_description',
|
|
342
|
+
arguments: {
|
|
343
|
+
description: string, // Text to search for in checklist item descriptions
|
|
344
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
345
|
+
nbsp; }
|
|
372
346
|
}
|
|
373
347
|
```
|
|
374
348
|
|
|
375
|
-
####
|
|
349
|
+
#### get\_acceptance\_criteria
|
|
376
350
|
|
|
377
351
|
Get all items from the "Acceptance Criteria" checklist.
|
|
378
352
|
|
|
379
353
|
```typescript
|
|
380
354
|
{
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
355
|
+
name: 'get_acceptance_criteria',
|
|
356
|
+
arguments: {
|
|
357
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
358
|
+
}
|
|
385
359
|
}
|
|
386
360
|
```
|
|
387
361
|
|
|
388
|
-
####
|
|
362
|
+
#### get\_checklist\_by\_name
|
|
389
363
|
|
|
390
364
|
Get a complete checklist with all items and completion percentage.
|
|
391
365
|
|
|
392
366
|
```typescript
|
|
393
367
|
{
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
368
|
+
name: 'get_checklist_by_name',
|
|
369
|
+
arguments: {
|
|
370
|
+
name: string, // Name of the checklist to retrieve
|
|
371
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
372
|
+
}
|
|
399
373
|
}
|
|
400
374
|
```
|
|
401
375
|
|
|
402
376
|
**Returns:** `CheckList` object with:
|
|
403
|
-
- `id`: Checklist identifier
|
|
404
|
-
- `name`: Checklist name
|
|
405
|
-
- `items`: Array of `CheckListItem` objects
|
|
406
|
-
- `percentComplete`: Completion percentage (0-100)
|
|
407
377
|
|
|
408
|
-
|
|
378
|
+
- `id`: Checklist identifier
|
|
379
|
+
- `name`: Checklist name
|
|
380
|
+
- `items`: Array of `CheckListItem` objects
|
|
381
|
+
- `percentComplete`: Completion percentage (0-100)
|
|
382
|
+
|
|
383
|
+
### get\_card 🆕
|
|
409
384
|
|
|
410
385
|
Get comprehensive details of a specific Trello card with human-level parity.
|
|
411
386
|
|
|
412
387
|
```typescript
|
|
413
388
|
{
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
389
|
+
name: 'get_card',
|
|
390
|
+
arguments: {
|
|
391
|
+
cardId: string, // ID of the Trello card (short ID like 'FdhbArbK' or full ID)
|
|
392
|
+
includeMarkdown?: boolean // Return formatted markdown instead of JSON (default: false)
|
|
393
|
+
}
|
|
419
394
|
}
|
|
420
395
|
```
|
|
421
396
|
|
|
422
397
|
**Returns:** Complete card data including:
|
|
423
|
-
- ✅ Checklists with item states and assignments
|
|
424
|
-
- 📎 Attachments with previews and metadata
|
|
425
|
-
- 🏷️ Labels with names and colors
|
|
426
|
-
- 👥 Assigned members
|
|
427
|
-
- 💬 Comments and activity
|
|
428
|
-
- 📊 Statistics (badges)
|
|
429
|
-
- 🎨 Cover images
|
|
430
|
-
- 📍 Board and list context
|
|
431
398
|
|
|
432
|
-
|
|
399
|
+
- ✅ Checklists with item states and assignments
|
|
400
|
+
- 📎 Attachments with previews and metadata
|
|
401
|
+
- 🏷️ Labels with names and colors
|
|
402
|
+
- 👥 Assigned members
|
|
403
|
+
- 💬 Comments and activity
|
|
404
|
+
- 📊 Statistics (badges)
|
|
405
|
+
- 🎨 Cover images
|
|
406
|
+
- 📍 Board and list context
|
|
407
|
+
|
|
408
|
+
### get\_cards\_by\_list\_id
|
|
433
409
|
|
|
434
410
|
Fetch all cards from a specific list.
|
|
435
411
|
|
|
436
412
|
```typescript
|
|
437
413
|
{
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
414
|
+
name: 'get_cards_by_list_id',
|
|
415
|
+
arguments: {
|
|
416
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
417
|
+
listId: string // ID of the Trello list
|
|
418
|
+
}
|
|
443
419
|
}
|
|
444
420
|
```
|
|
445
421
|
|
|
446
|
-
###
|
|
422
|
+
### get\_lists
|
|
447
423
|
|
|
448
424
|
Retrieve all lists from a board.
|
|
449
425
|
|
|
450
426
|
```typescript
|
|
451
427
|
{
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
428
|
+
name: 'get_lists',
|
|
429
|
+
arguments: {
|
|
430
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
431
|
+
}
|
|
456
432
|
}
|
|
457
433
|
```
|
|
458
434
|
|
|
459
|
-
###
|
|
435
|
+
### get\_recent\_activity
|
|
460
436
|
|
|
461
437
|
Fetch recent activity on a board.
|
|
462
438
|
|
|
463
439
|
```typescript
|
|
464
440
|
{
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
441
|
+
name: 'get_recent_activity',
|
|
442
|
+
arguments: {
|
|
443
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
444
|
+
limit?: number // Optional: Number of activities to fetch (default: 10)
|
|
445
|
+
}
|
|
470
446
|
}
|
|
471
447
|
```
|
|
472
448
|
|
|
473
|
-
###
|
|
449
|
+
### add\_card\_to\_list
|
|
474
450
|
|
|
475
451
|
Add a new card to a specified list.
|
|
476
452
|
|
|
477
453
|
```typescript
|
|
478
454
|
{
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
455
|
+
name: 'add_card_to_list',
|
|
456
|
+
arguments: {
|
|
457
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
458
|
+
listId: string, // ID of the list to add the card to
|
|
459
|
+
name: string, // Name of the card
|
|
460
|
+
description?: string, // Optional: Description of the card
|
|
461
|
+
mbs; dueDate?: string, // Optional: Due date (ISO 8601 format with time)
|
|
462
|
+
start?: string, // Optional: Start date (YYYY-MM-DD format, date only)
|
|
463
|
+
labels?: string[] // Optional: Array of label IDs
|
|
464
|
+
}
|
|
489
465
|
}
|
|
490
466
|
```
|
|
491
467
|
|
|
492
|
-
###
|
|
468
|
+
### update\_card\_details
|
|
493
469
|
|
|
494
470
|
Update an existing card's details.
|
|
495
471
|
|
|
496
472
|
```typescript
|
|
497
473
|
{
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
474
|
+
name: 'update_card_details',
|
|
475
|
+
arguments: {
|
|
476
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
477
|
+
cardId: string, // ID of the card to update
|
|
478
|
+
name?: string, // Optional: New name for the card
|
|
479
|
+
description?: string, // Optional: New description
|
|
480
|
+
dueDate?: string, // Optional: New due date (ISO 8601 format with time)
|
|
481
|
+
start?: string, // Optional: New start date (YYYY-MM-DD format, date only)
|
|
482
|
+
dueComplete?: boolean,// Optional: Mark the due date as complete (true) or incomplete (false)
|
|
483
|
+
labels?: string[] // Optional: New array of label IDs
|
|
484
|
+
}
|
|
509
485
|
}
|
|
510
486
|
```
|
|
511
487
|
|
|
512
|
-
###
|
|
488
|
+
### archive\_card
|
|
513
489
|
|
|
514
490
|
Send a card to the archive.
|
|
515
491
|
|
|
516
492
|
```typescript
|
|
517
493
|
{
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
494
|
+
name: 'archive_card',
|
|
495
|
+
arguments: {
|
|
496
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
497
|
+
cardId: string // ID of the card to archive
|
|
498
|
+
}
|
|
523
499
|
}
|
|
524
500
|
```
|
|
525
501
|
|
|
526
|
-
###
|
|
502
|
+
### add\_list\_to\_board
|
|
527
503
|
|
|
528
504
|
Add a new list to a board.
|
|
529
505
|
|
|
530
506
|
```typescript
|
|
531
507
|
{
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
508
|
+
nbsp; name: 'add_list_to_board',
|
|
509
|
+
arguments: {
|
|
510
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
511
|
+
name: string // Name of the new list
|
|
512
|
+
}
|
|
537
513
|
}
|
|
538
514
|
```
|
|
539
515
|
|
|
540
|
-
###
|
|
516
|
+
### archive\_list
|
|
541
517
|
|
|
542
518
|
Send a list to the archive.
|
|
543
519
|
|
|
544
520
|
```typescript
|
|
545
521
|
{
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
522
|
+
name: 'archive_list',
|
|
523
|
+
arguments: {
|
|
524
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
525
|
+
listId: string // ID of the list to archive
|
|
526
|
+
}
|
|
551
527
|
}
|
|
552
528
|
```
|
|
553
529
|
|
|
554
|
-
###
|
|
530
|
+
### get\_my\_cards
|
|
555
531
|
|
|
556
532
|
Fetch all cards assigned to the current user.
|
|
557
533
|
|
|
558
534
|
```typescript
|
|
559
535
|
{
|
|
560
|
-
|
|
561
|
-
|
|
536
|
+
name: 'get_my_cards',
|
|
537
|
+
arguments: {}
|
|
562
538
|
}
|
|
563
539
|
```
|
|
564
540
|
|
|
565
|
-
###
|
|
541
|
+
### move\_card
|
|
566
542
|
|
|
567
543
|
Move a card to a different list.
|
|
568
544
|
|
|
569
545
|
```typescript
|
|
570
546
|
{
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
547
|
+
name: 'move_card',
|
|
548
|
+
arguments: {
|
|
549
|
+
boardId?: string, // Optional: ID of the target board (uses default if not provided)
|
|
550
|
+
s; cardId: string, // ID of the card to move
|
|
551
|
+
listId: string // ID of the target list
|
|
552
|
+
}
|
|
577
553
|
}
|
|
578
554
|
```
|
|
579
555
|
|
|
580
|
-
###
|
|
556
|
+
### attach\_image\_to\_card
|
|
581
557
|
|
|
582
558
|
Attach an image to a card directly from a URL.
|
|
583
559
|
|
|
584
560
|
```typescript
|
|
585
561
|
{
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
562
|
+
name: 'attach_image_to_card',
|
|
563
|
+
arguments: {
|
|
564
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
565
|
+
cardId: string, nbsp; // ID of the card to attach the image to
|
|
566
|
+
imageUrl: string, // URL of the image to attach
|
|
567
|
+
name?: string // Optional: Name for the attachment (defaults to "Image Attachment")
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
### attach\_file\_to\_card
|
|
573
|
+
|
|
574
|
+
Attach any type of file to a card from a URL or a local file path (e.g., `file:///path/to/your/file.pdf`).
|
|
575
|
+
|
|
576
|
+
```typescript
|
|
577
|
+
{
|
|
578
|
+
name: 'attach_file_to_card',
|
|
579
|
+
nbsp; arguments: {
|
|
580
|
+
boardId?: string, // Optional: ID of the board (uses default if not provided)
|
|
581
|
+
cardId: string,s; // ID of the card to attach the file to
|
|
582
|
+
fileUrl: string, // URL or local file path (using the file:// protocol) of the file to attach
|
|
583
|
+
name?: string, // Optional: Name for the attachment (defaults to the file name for local files)
|
|
584
|
+
mimeType?: string // Optional: MIME type (e.g., "application/pdf", "text/plain", "video/mp4")
|
|
585
|
+
}
|
|
593
586
|
}
|
|
594
587
|
```
|
|
595
588
|
|
|
596
|
-
###
|
|
589
|
+
### list\_boards
|
|
597
590
|
|
|
598
591
|
List all boards the user has access to.
|
|
599
592
|
|
|
600
593
|
```typescript
|
|
601
594
|
{
|
|
602
|
-
|
|
603
|
-
|
|
595
|
+
name: 'list_boards',
|
|
596
|
+
arguments: {}
|
|
604
597
|
}
|
|
605
598
|
```
|
|
606
599
|
|
|
607
|
-
###
|
|
600
|
+
### set\_active\_board
|
|
608
601
|
|
|
609
602
|
Set the active board for future operations.
|
|
610
603
|
|
|
611
604
|
```typescript
|
|
612
605
|
{
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
606
|
+
name: 'set_active_board',
|
|
607
|
+
arguments: {
|
|
608
|
+
boardId: string // ID of the board to set as active
|
|
609
|
+
}
|
|
617
610
|
}
|
|
618
611
|
```
|
|
619
612
|
|
|
620
|
-
###
|
|
613
|
+
### list\_workspaces
|
|
621
614
|
|
|
622
615
|
List all workspaces the user has access to.
|
|
623
616
|
|
|
624
617
|
```typescript
|
|
625
618
|
{
|
|
626
|
-
|
|
627
|
-
|
|
619
|
+
s; name: 'list_workspaces',
|
|
620
|
+
arguments: {}
|
|
628
621
|
}
|
|
629
622
|
```
|
|
630
623
|
|
|
631
|
-
###
|
|
624
|
+
### set\_active\_workspace
|
|
632
625
|
|
|
633
626
|
Set the active workspace for future operations.
|
|
634
627
|
|
|
635
628
|
```typescript
|
|
636
629
|
{
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
630
|
+
name: 'set_active_workspace',
|
|
631
|
+
arguments: {
|
|
632
|
+
workspaceId: string // ID of the workspace to set as active
|
|
633
|
+
}
|
|
641
634
|
}
|
|
642
635
|
```
|
|
643
636
|
|
|
644
|
-
###
|
|
637
|
+
### list\_boards\_in\_workspace
|
|
645
638
|
|
|
646
639
|
List all boards in a specific workspace.
|
|
647
640
|
|
|
648
641
|
```typescript
|
|
649
642
|
{
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
643
|
+
name: 'list_boards_in_workspace',
|
|
644
|
+
arguments: {
|
|
645
|
+
workspaceId: string // ID of the workspace to list boards from
|
|
646
|
+
}
|
|
654
647
|
}
|
|
655
648
|
```
|
|
656
649
|
|
|
657
|
-
###
|
|
650
|
+
### get\_active\_board\_info
|
|
658
651
|
|
|
659
652
|
Get information about the currently active board.
|
|
660
653
|
|
|
661
654
|
```typescript
|
|
662
655
|
{
|
|
663
|
-
|
|
664
|
-
|
|
656
|
+
s; name: 'get_active_board_info',
|
|
657
|
+
arguments: {}
|
|
665
658
|
}
|
|
666
659
|
```
|
|
667
660
|
|
|
@@ -669,72 +662,76 @@ Get information about the currently active board.
|
|
|
669
662
|
|
|
670
663
|
### 🎨 Pairing with Ideogram MCP Server
|
|
671
664
|
|
|
672
|
-
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
|
|
673
|
-
|
|
674
|
-

|
|
665
|
+
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\!
|
|
675
666
|
|
|
676
667
|
#### Example Workflow
|
|
677
668
|
|
|
678
|
-
1.
|
|
669
|
+
1. **Generate an image with Ideogram:**
|
|
670
|
+
|
|
671
|
+
<!-- end list -->
|
|
672
|
+
|
|
679
673
|
```typescript
|
|
680
674
|
// Using ideogram-mcp-server
|
|
681
675
|
{
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
676
|
+
name: 'generate_image',
|
|
677
|
+
arguments: {
|
|
678
|
+
prompt: "A futuristic dashboard design with neon accents",
|
|
679
|
+
aspect_ratio: "16:9"
|
|
680
|
+
}
|
|
687
681
|
}
|
|
688
682
|
// Returns: { image_url: "https://..." }
|
|
689
683
|
```
|
|
690
684
|
|
|
691
|
-
2.
|
|
685
|
+
2. **Attach the generated image to a Trello card:**
|
|
686
|
+
|
|
687
|
+
<!-- end list -->
|
|
688
|
+
|
|
692
689
|
```typescript
|
|
693
690
|
// Using trello-mcp-server
|
|
694
691
|
{
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
692
|
+
name: 'attach_image_to_card',
|
|
693
|
+
arguments: {
|
|
694
|
+
cardId: "your-card-id",
|
|
695
|
+
imageUrl: "https://...", // URL from Ideogram
|
|
696
|
+
name: "Dashboard Mockup v1"
|
|
697
|
+
}
|
|
701
698
|
}
|
|
702
699
|
```
|
|
703
700
|
|
|
704
701
|
#### Setting up both servers
|
|
705
702
|
|
|
706
|
-
Add both servers to your Claude Desktop configuration
|
|
703
|
+
Add both servers to your Claude Desktop configuration. Use `bunx` for the fastest startup.
|
|
707
704
|
|
|
708
705
|
```json
|
|
709
706
|
{
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
707
|
+
"mcpServers": {
|
|
708
|
+
"trello": {
|
|
709
|
+
"command": "bunx",
|
|
710
|
+
"args": ["@delorenj/mcp-server-trello"],
|
|
711
|
+
nbsp; "env": {
|
|
712
|
+
"TRELLO_API_KEY": "your-trello-api-key",
|
|
713
|
+
"TRELLO_TOKEN": "your-trello-token"
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
"ideogram": {
|
|
717
|
+
"command": "bunx",
|
|
718
|
+
"args": ["@flowluap/ideogram-mcp-server"],
|
|
719
|
+
"env": {
|
|
720
|
+
"IDEOGRAM_API_KEY": "your-ideogram-api-key"
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
727
724
|
}
|
|
728
725
|
```
|
|
729
726
|
|
|
730
|
-
Now you can seamlessly create visual content and organize it in Trello, all within Claude
|
|
727
|
+
Now you can seamlessly create visual content and organize it in Trello, all within Claude\!
|
|
731
728
|
|
|
732
729
|
## Rate Limiting
|
|
733
730
|
|
|
734
731
|
The server implements a token bucket algorithm for rate limiting to comply with Trello's API limits:
|
|
735
732
|
|
|
736
|
-
- 300 requests per 10 seconds per API key
|
|
737
|
-
- 100 requests per 10 seconds per token
|
|
733
|
+
- 300 requests per 10 seconds per API key
|
|
734
|
+
- 100 requests per 10 seconds per token
|
|
738
735
|
|
|
739
736
|
Rate limiting is handled automatically, and requests will be queued if limits are reached.
|
|
740
737
|
|
|
@@ -742,57 +739,70 @@ Rate limiting is handled automatically, and requests will be queued if limits ar
|
|
|
742
739
|
|
|
743
740
|
The server provides detailed error messages for various scenarios:
|
|
744
741
|
|
|
745
|
-
- Invalid input parameters
|
|
746
|
-
- Rate limit exceeded
|
|
747
|
-
- API authentication errors
|
|
748
|
-
- Network issues
|
|
749
|
-
- Invalid board/list/card IDs
|
|
742
|
+
- Invalid input parameters
|
|
743
|
+
- Rate limit exceeded
|
|
744
|
+
- API authentication errors
|
|
745
|
+
- Network issues
|
|
746
|
+
- Invalid board/list/card IDs
|
|
750
747
|
|
|
751
748
|
## Development
|
|
752
749
|
|
|
753
750
|
### Prerequisites
|
|
754
751
|
|
|
755
|
-
-
|
|
756
|
-
- npm or yarn
|
|
752
|
+
- [Bun](https://bun.sh) (v1.0.0 or higher)
|
|
757
753
|
|
|
758
754
|
### Setup
|
|
759
755
|
|
|
760
|
-
1.
|
|
756
|
+
1. Clone the repository
|
|
757
|
+
|
|
758
|
+
<!-- end list -->
|
|
761
759
|
|
|
762
760
|
```bash
|
|
763
761
|
git clone https://github.com/delorenj/mcp-server-trello
|
|
764
762
|
cd mcp-server-trello
|
|
765
763
|
```
|
|
766
764
|
|
|
767
|
-
2.
|
|
765
|
+
2. Install dependencies
|
|
766
|
+
|
|
767
|
+
<!-- end list -->
|
|
768
768
|
|
|
769
769
|
```bash
|
|
770
|
-
|
|
770
|
+
bun install
|
|
771
771
|
```
|
|
772
772
|
|
|
773
|
-
3.
|
|
773
|
+
3. Build the project
|
|
774
|
+
|
|
775
|
+
<!-- end list -->
|
|
776
|
+
|
|
777
|
+
```bash
|
|
778
|
+
bun run build
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
## Running tests
|
|
782
|
+
|
|
783
|
+
To run the tests, run the following command:
|
|
774
784
|
|
|
775
785
|
```bash
|
|
776
|
-
|
|
786
|
+
bun test
|
|
777
787
|
```
|
|
778
788
|
|
|
779
789
|
## Running evals
|
|
780
790
|
|
|
781
|
-
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
|
|
791
|
+
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 `bunx` command. Full documentation can be found [here](https://www.mcpevals.io/docs).
|
|
782
792
|
|
|
783
793
|
```bash
|
|
784
|
-
OPENAI_API_KEY=your-key
|
|
794
|
+
OPENAI_API_KEY=your-key bunx mcp-eval src/evals/evals.ts src/index.ts
|
|
785
795
|
```
|
|
786
796
|
|
|
787
797
|
## Contributing
|
|
788
798
|
|
|
789
|
-
Contributions are welcome
|
|
799
|
+
Contributions are welcome\!
|
|
790
800
|
|
|
791
801
|
## License
|
|
792
802
|
|
|
793
|
-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
803
|
+
This project is licensed under the MIT License - see the [LICENSE](https://www.google.com/search?q=LICENSE) file for details.
|
|
794
804
|
|
|
795
805
|
## Acknowledgments
|
|
796
806
|
|
|
797
|
-
- Built with the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)
|
|
798
|
-
- Uses the [Trello REST API](https://developer.atlassian.com/cloud/trello/rest/)
|
|
807
|
+
- Built with the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)
|
|
808
|
+
- Uses the [Trello REST API](https://developer.atlassian.com/cloud/trello/rest/)
|