@delorenj/mcp-server-trello 1.3.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +376 -389
- 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 +13 -1
- package/build/trello-client.js +35 -3
- package/build/trello-client.js.map +1 -1
- package/build/types.d.ts +2 -2
- package/package.json +11 -27
package/README.md
CHANGED
|
@@ -1,163 +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.1
|
|
92
|
-
|
|
93
|
-
- Added `attach_file_to_card` tool to attach any type of file (PDFs, documents, videos, etc.) to cards from URLs
|
|
94
|
-
- Enhanced attachment support beyond just images
|
|
95
|
-
- Kept `attach_image_to_card` for backward compatibility
|
|
96
|
-
|
|
97
|
-
### 0.2.0
|
|
98
|
-
|
|
99
|
-
- Added `attach_image_to_card` tool to attach images to cards from URLs
|
|
100
|
-
- Added Docker support with multi-stage build
|
|
101
|
-
- Improved security by moving environment variables to `.env`
|
|
102
|
-
- Added Docker Compose configuration
|
|
103
|
-
- Added `.env.template` for easier setup
|
|
104
|
-
|
|
105
|
-
### 0.1.1
|
|
106
|
-
|
|
107
|
-
- Added `move_card` tool to move cards between lists
|
|
108
|
-
- Improved documentation
|
|
109
|
-
|
|
110
|
-
### 0.1.0
|
|
111
|
-
|
|
112
|
-
- Initial release with basic Trello board management features
|
|
25
|
+
For a detailed list of changes, please refer to the [CHANGELOG.md](CHANGELOG.md) file.
|
|
113
26
|
|
|
114
27
|
## Features
|
|
115
28
|
|
|
116
|
-
- **Full Trello Board Integration**: Interact with cards, lists, and board activities
|
|
117
|
-
- **🆕 Complete Card Data Extraction**: Fetch all card details including checklists, attachments, labels, members, and comments
|
|
118
|
-
- **File Attachments**: Attach any type of file to cards (PDFs, documents, videos, images, etc.) from URLs
|
|
119
|
-
- **Built-in Rate Limiting**: Respects Trello's API limits (300 requests/10s per API key, 100 requests/10s per token)
|
|
120
|
-
- **Type-Safe Implementation**: Written in TypeScript with comprehensive type definitions
|
|
121
|
-
- **Input Validation**: Robust validation for all API inputs
|
|
122
|
-
- **Error Handling**: Graceful error handling with informative messages
|
|
123
|
-
- **Dynamic Board Selection**: Switch between boards and workspaces without restarting
|
|
124
|
-
- **Markdown Formatting**: Export card data in human-readable markdown format
|
|
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
|
|
125
38
|
|
|
126
39
|
## Installation
|
|
127
40
|
|
|
128
|
-
###
|
|
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
|
|
129
71
|
|
|
130
|
-
|
|
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.
|
|
131
73
|
|
|
132
74
|
```json
|
|
133
75
|
{
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
+
}
|
|
144
86
|
}
|
|
145
87
|
```
|
|
146
88
|
|
|
147
|
-
Or if you're using mise
|
|
89
|
+
Or if you're using mise, you can explicitly execute `bunx` with `mise exec`:
|
|
148
90
|
|
|
149
91
|
```json
|
|
150
92
|
{
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
|
+
}
|
|
161
103
|
}
|
|
162
104
|
```
|
|
163
105
|
|
|
@@ -169,63 +111,78 @@ https://trello.com/1/authorize?expiration=never&name=YOUR_APP_NAME&scope=read,wr
|
|
|
169
111
|
|
|
170
112
|
Replace:
|
|
171
113
|
|
|
172
|
-
* `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.
|
|
173
|
-
* `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
|
|
174
116
|
|
|
175
117
|
This will generate the token required for integration.
|
|
176
118
|
|
|
177
|
-
> [
|
|
119
|
+
> [\!NOTE]
|
|
178
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.
|
|
179
121
|
|
|
122
|
+
#### Don't have Bun?
|
|
180
123
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
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/):
|
|
184
125
|
|
|
185
126
|
```bash
|
|
186
127
|
# Install mise (if you don't have it)
|
|
187
128
|
curl https://mise.run | sh
|
|
188
129
|
|
|
189
|
-
# Install
|
|
190
|
-
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
|
|
191
136
|
```
|
|
192
137
|
|
|
193
138
|
### Installing via npm
|
|
194
139
|
|
|
195
|
-
If you prefer using npm directly:
|
|
140
|
+
If you prefer using `npm` directly:
|
|
196
141
|
|
|
197
142
|
```bash
|
|
198
143
|
npm install -g @delorenj/mcp-server-trello
|
|
199
144
|
```
|
|
200
145
|
|
|
201
|
-
|
|
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.
|
|
202
149
|
|
|
203
150
|
### Installing via Smithery
|
|
204
151
|
|
|
205
|
-
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):
|
|
206
153
|
|
|
207
154
|
```bash
|
|
208
|
-
|
|
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
|
|
209
160
|
```
|
|
210
161
|
|
|
211
162
|
### Docker Installation
|
|
212
163
|
|
|
213
164
|
For containerized environments:
|
|
214
165
|
|
|
215
|
-
1.
|
|
166
|
+
1. Clone the repository:
|
|
167
|
+
|
|
168
|
+
<!-- end list -->
|
|
216
169
|
|
|
217
170
|
```bash
|
|
218
171
|
git clone https://github.com/delorenj/mcp-server-trello
|
|
219
172
|
cd mcp-server-trello
|
|
220
173
|
```
|
|
221
174
|
|
|
222
|
-
2.
|
|
175
|
+
2. Copy the environment template and fill in your Trello credentials:
|
|
176
|
+
|
|
177
|
+
<!-- end list -->
|
|
223
178
|
|
|
224
179
|
```bash
|
|
225
180
|
cp .env.template .env
|
|
226
181
|
```
|
|
227
182
|
|
|
228
|
-
3.
|
|
183
|
+
3. Build and run with Docker Compose:
|
|
184
|
+
|
|
185
|
+
<!-- end list -->
|
|
229
186
|
|
|
230
187
|
```bash
|
|
231
188
|
docker compose up --build
|
|
@@ -251,75 +208,85 @@ TRELLO_WORKSPACE_ID=your-workspace-id
|
|
|
251
208
|
|
|
252
209
|
You can get these values from:
|
|
253
210
|
|
|
254
|
-
- API Key:
|
|
255
|
-
- Token: Generate using your API key
|
|
256
|
-
- Board ID (optional, deprecated): Found in the board URL (e.g.,
|
|
257
|
-
- 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
|
|
258
215
|
|
|
259
216
|
### Board and Workspace Management
|
|
260
217
|
|
|
261
218
|
Starting with version 0.3.0, the MCP server supports multiple ways to work with boards:
|
|
262
219
|
|
|
263
|
-
1.
|
|
264
|
-
|
|
265
|
-
|
|
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
|
|
266
223
|
|
|
267
|
-
2.
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
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`
|
|
272
229
|
|
|
273
230
|
This allows you to work with multiple boards and workspaces without restarting the server.
|
|
274
231
|
|
|
275
232
|
#### Example Workflow
|
|
276
233
|
|
|
277
|
-
1.
|
|
234
|
+
1. Start by listing available boards:
|
|
235
|
+
|
|
236
|
+
<!-- end list -->
|
|
278
237
|
|
|
279
238
|
```typescript
|
|
280
239
|
{
|
|
281
|
-
|
|
282
|
-
|
|
240
|
+
name: 'list_boards',
|
|
241
|
+
arguments: {}
|
|
283
242
|
}
|
|
284
243
|
```
|
|
285
244
|
|
|
286
|
-
2.
|
|
245
|
+
2. Set your active board:
|
|
246
|
+
|
|
247
|
+
<!-- end list -->
|
|
287
248
|
|
|
288
249
|
```typescript
|
|
289
250
|
{
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
251
|
+
name: 'set_active_board',
|
|
252
|
+
arguments: {
|
|
253
|
+
boardId: "abc123" // ID from list_boards response
|
|
254
|
+
}
|
|
294
255
|
}
|
|
295
256
|
```
|
|
296
257
|
|
|
297
|
-
3.
|
|
258
|
+
3. List workspaces if needed:
|
|
259
|
+
|
|
260
|
+
<!-- end list -->
|
|
298
261
|
|
|
299
262
|
```typescript
|
|
300
263
|
{
|
|
301
|
-
|
|
302
|
-
|
|
264
|
+
name: 'list_workspaces',
|
|
265
|
+
arguments: {}
|
|
303
266
|
}
|
|
304
267
|
```
|
|
305
268
|
|
|
306
|
-
4.
|
|
269
|
+
4. Set active workspace if needed:
|
|
270
|
+
|
|
271
|
+
<!-- end list -->
|
|
307
272
|
|
|
308
273
|
```typescript
|
|
309
274
|
{
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
275
|
+
name: 'set_active_workspace',
|
|
276
|
+
arguments: {
|
|
277
|
+
workspaceId: "xyz789" // ID from list_workspaces response
|
|
278
|
+
}
|
|
314
279
|
}
|
|
315
280
|
```
|
|
316
281
|
|
|
317
|
-
5.
|
|
282
|
+
5. Check current active board info:
|
|
283
|
+
|
|
284
|
+
<!-- end list -->
|
|
318
285
|
|
|
319
286
|
```typescript
|
|
320
287
|
{
|
|
321
|
-
|
|
322
|
-
|
|
288
|
+
name: 'get_active_board_info',
|
|
289
|
+
arguments: {}
|
|
323
290
|
}
|
|
324
291
|
```
|
|
325
292
|
|
|
@@ -327,8 +294,8 @@ This allows you to work with multiple boards and workspaces without restarting t
|
|
|
327
294
|
|
|
328
295
|
When working with dates in the Trello MCP server, please note the different format requirements:
|
|
329
296
|
|
|
330
|
-
- **Due Date (`dueDate`)**: Accepts full ISO 8601 format with time (e.g., `2023-12-31T12:00:00Z`)
|
|
331
|
-
- **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`)
|
|
332
299
|
|
|
333
300
|
This distinction follows Trello's API conventions where start dates are day-based markers while due dates can include specific times.
|
|
334
301
|
|
|
@@ -336,355 +303,358 @@ This distinction follows Trello's API conventions where start dates are day-base
|
|
|
336
303
|
|
|
337
304
|
### Checklist Management Tools 🆕
|
|
338
305
|
|
|
339
|
-
####
|
|
306
|
+
#### get\_checklist\_items
|
|
340
307
|
|
|
341
308
|
Get all items from a checklist by name.
|
|
342
309
|
|
|
343
310
|
```typescript
|
|
344
311
|
{
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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
|
+
}
|
|
350
317
|
}
|
|
351
318
|
```
|
|
352
319
|
|
|
353
|
-
####
|
|
320
|
+
#### add\_checklist\_item
|
|
354
321
|
|
|
355
322
|
Add a new item to an existing checklist.
|
|
356
323
|
|
|
357
324
|
```typescript
|
|
358
325
|
{
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
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
|
+
}
|
|
365
332
|
}
|
|
366
333
|
```
|
|
367
334
|
|
|
368
|
-
####
|
|
335
|
+
#### find\_checklist\_items\_by\_description
|
|
369
336
|
|
|
370
337
|
Search for checklist items containing specific text.
|
|
371
338
|
|
|
372
339
|
```typescript
|
|
373
340
|
{
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
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; }
|
|
379
346
|
}
|
|
380
347
|
```
|
|
381
348
|
|
|
382
|
-
####
|
|
349
|
+
#### get\_acceptance\_criteria
|
|
383
350
|
|
|
384
351
|
Get all items from the "Acceptance Criteria" checklist.
|
|
385
352
|
|
|
386
353
|
```typescript
|
|
387
354
|
{
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
355
|
+
name: 'get_acceptance_criteria',
|
|
356
|
+
arguments: {
|
|
357
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
358
|
+
}
|
|
392
359
|
}
|
|
393
360
|
```
|
|
394
361
|
|
|
395
|
-
####
|
|
362
|
+
#### get\_checklist\_by\_name
|
|
396
363
|
|
|
397
364
|
Get a complete checklist with all items and completion percentage.
|
|
398
365
|
|
|
399
366
|
```typescript
|
|
400
367
|
{
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
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
|
+
}
|
|
406
373
|
}
|
|
407
374
|
```
|
|
408
375
|
|
|
409
376
|
**Returns:** `CheckList` object with:
|
|
410
|
-
- `id`: Checklist identifier
|
|
411
|
-
- `name`: Checklist name
|
|
412
|
-
- `items`: Array of `CheckListItem` objects
|
|
413
|
-
- `percentComplete`: Completion percentage (0-100)
|
|
414
377
|
|
|
415
|
-
|
|
378
|
+
- `id`: Checklist identifier
|
|
379
|
+
- `name`: Checklist name
|
|
380
|
+
- `items`: Array of `CheckListItem` objects
|
|
381
|
+
- `percentComplete`: Completion percentage (0-100)
|
|
382
|
+
|
|
383
|
+
### get\_card 🆕
|
|
416
384
|
|
|
417
385
|
Get comprehensive details of a specific Trello card with human-level parity.
|
|
418
386
|
|
|
419
387
|
```typescript
|
|
420
388
|
{
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
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
|
+
}
|
|
426
394
|
}
|
|
427
395
|
```
|
|
428
396
|
|
|
429
397
|
**Returns:** Complete card data including:
|
|
430
|
-
- ✅ Checklists with item states and assignments
|
|
431
|
-
- 📎 Attachments with previews and metadata
|
|
432
|
-
- 🏷️ Labels with names and colors
|
|
433
|
-
- 👥 Assigned members
|
|
434
|
-
- 💬 Comments and activity
|
|
435
|
-
- 📊 Statistics (badges)
|
|
436
|
-
- 🎨 Cover images
|
|
437
|
-
- 📍 Board and list context
|
|
438
398
|
|
|
439
|
-
|
|
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
|
|
440
409
|
|
|
441
410
|
Fetch all cards from a specific list.
|
|
442
411
|
|
|
443
412
|
```typescript
|
|
444
413
|
{
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
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
|
+
}
|
|
450
419
|
}
|
|
451
420
|
```
|
|
452
421
|
|
|
453
|
-
###
|
|
422
|
+
### get\_lists
|
|
454
423
|
|
|
455
424
|
Retrieve all lists from a board.
|
|
456
425
|
|
|
457
426
|
```typescript
|
|
458
427
|
{
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
428
|
+
name: 'get_lists',
|
|
429
|
+
arguments: {
|
|
430
|
+
boardId?: string // Optional: ID of the board (uses default if not provided)
|
|
431
|
+
}
|
|
463
432
|
}
|
|
464
433
|
```
|
|
465
434
|
|
|
466
|
-
###
|
|
435
|
+
### get\_recent\_activity
|
|
467
436
|
|
|
468
437
|
Fetch recent activity on a board.
|
|
469
438
|
|
|
470
439
|
```typescript
|
|
471
440
|
{
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
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
|
+
}
|
|
477
446
|
}
|
|
478
447
|
```
|
|
479
448
|
|
|
480
|
-
###
|
|
449
|
+
### add\_card\_to\_list
|
|
481
450
|
|
|
482
451
|
Add a new card to a specified list.
|
|
483
452
|
|
|
484
453
|
```typescript
|
|
485
454
|
{
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
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
|
+
}
|
|
496
465
|
}
|
|
497
466
|
```
|
|
498
467
|
|
|
499
|
-
###
|
|
468
|
+
### update\_card\_details
|
|
500
469
|
|
|
501
470
|
Update an existing card's details.
|
|
502
471
|
|
|
503
472
|
```typescript
|
|
504
473
|
{
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
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
|
+
}
|
|
516
485
|
}
|
|
517
486
|
```
|
|
518
487
|
|
|
519
|
-
###
|
|
488
|
+
### archive\_card
|
|
520
489
|
|
|
521
490
|
Send a card to the archive.
|
|
522
491
|
|
|
523
492
|
```typescript
|
|
524
493
|
{
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
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
|
+
}
|
|
530
499
|
}
|
|
531
500
|
```
|
|
532
501
|
|
|
533
|
-
###
|
|
502
|
+
### add\_list\_to\_board
|
|
534
503
|
|
|
535
504
|
Add a new list to a board.
|
|
536
505
|
|
|
537
506
|
```typescript
|
|
538
507
|
{
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
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
|
+
}
|
|
544
513
|
}
|
|
545
514
|
```
|
|
546
515
|
|
|
547
|
-
###
|
|
516
|
+
### archive\_list
|
|
548
517
|
|
|
549
518
|
Send a list to the archive.
|
|
550
519
|
|
|
551
520
|
```typescript
|
|
552
521
|
{
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
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
|
+
}
|
|
558
527
|
}
|
|
559
528
|
```
|
|
560
529
|
|
|
561
|
-
###
|
|
530
|
+
### get\_my\_cards
|
|
562
531
|
|
|
563
532
|
Fetch all cards assigned to the current user.
|
|
564
533
|
|
|
565
534
|
```typescript
|
|
566
535
|
{
|
|
567
|
-
|
|
568
|
-
|
|
536
|
+
name: 'get_my_cards',
|
|
537
|
+
arguments: {}
|
|
569
538
|
}
|
|
570
539
|
```
|
|
571
540
|
|
|
572
|
-
###
|
|
541
|
+
### move\_card
|
|
573
542
|
|
|
574
543
|
Move a card to a different list.
|
|
575
544
|
|
|
576
545
|
```typescript
|
|
577
546
|
{
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
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
|
+
}
|
|
584
553
|
}
|
|
585
554
|
```
|
|
586
555
|
|
|
587
|
-
###
|
|
556
|
+
### attach\_image\_to\_card
|
|
588
557
|
|
|
589
558
|
Attach an image to a card directly from a URL.
|
|
590
559
|
|
|
591
560
|
```typescript
|
|
592
561
|
{
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
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
|
+
}
|
|
600
569
|
}
|
|
601
570
|
```
|
|
602
571
|
|
|
603
|
-
###
|
|
572
|
+
### attach\_file\_to\_card
|
|
604
573
|
|
|
605
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`).
|
|
606
575
|
|
|
607
576
|
```typescript
|
|
608
577
|
{
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
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
|
+
}
|
|
617
586
|
}
|
|
587
|
+
```
|
|
618
588
|
|
|
619
|
-
###
|
|
589
|
+
### list\_boards
|
|
620
590
|
|
|
621
591
|
List all boards the user has access to.
|
|
622
592
|
|
|
623
593
|
```typescript
|
|
624
594
|
{
|
|
625
|
-
|
|
626
|
-
|
|
595
|
+
name: 'list_boards',
|
|
596
|
+
arguments: {}
|
|
627
597
|
}
|
|
628
598
|
```
|
|
629
599
|
|
|
630
|
-
###
|
|
600
|
+
### set\_active\_board
|
|
631
601
|
|
|
632
602
|
Set the active board for future operations.
|
|
633
603
|
|
|
634
604
|
```typescript
|
|
635
605
|
{
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
606
|
+
name: 'set_active_board',
|
|
607
|
+
arguments: {
|
|
608
|
+
boardId: string // ID of the board to set as active
|
|
609
|
+
}
|
|
640
610
|
}
|
|
641
611
|
```
|
|
642
612
|
|
|
643
|
-
###
|
|
613
|
+
### list\_workspaces
|
|
644
614
|
|
|
645
615
|
List all workspaces the user has access to.
|
|
646
616
|
|
|
647
617
|
```typescript
|
|
648
618
|
{
|
|
649
|
-
|
|
650
|
-
|
|
619
|
+
s; name: 'list_workspaces',
|
|
620
|
+
arguments: {}
|
|
651
621
|
}
|
|
652
622
|
```
|
|
653
623
|
|
|
654
|
-
###
|
|
624
|
+
### set\_active\_workspace
|
|
655
625
|
|
|
656
626
|
Set the active workspace for future operations.
|
|
657
627
|
|
|
658
628
|
```typescript
|
|
659
629
|
{
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
630
|
+
name: 'set_active_workspace',
|
|
631
|
+
arguments: {
|
|
632
|
+
workspaceId: string // ID of the workspace to set as active
|
|
633
|
+
}
|
|
664
634
|
}
|
|
665
635
|
```
|
|
666
636
|
|
|
667
|
-
###
|
|
637
|
+
### list\_boards\_in\_workspace
|
|
668
638
|
|
|
669
639
|
List all boards in a specific workspace.
|
|
670
640
|
|
|
671
641
|
```typescript
|
|
672
642
|
{
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
643
|
+
name: 'list_boards_in_workspace',
|
|
644
|
+
arguments: {
|
|
645
|
+
workspaceId: string // ID of the workspace to list boards from
|
|
646
|
+
}
|
|
677
647
|
}
|
|
678
648
|
```
|
|
679
649
|
|
|
680
|
-
###
|
|
650
|
+
### get\_active\_board\_info
|
|
681
651
|
|
|
682
652
|
Get information about the currently active board.
|
|
683
653
|
|
|
684
654
|
```typescript
|
|
685
655
|
{
|
|
686
|
-
|
|
687
|
-
|
|
656
|
+
s; name: 'get_active_board_info',
|
|
657
|
+
arguments: {}
|
|
688
658
|
}
|
|
689
659
|
```
|
|
690
660
|
|
|
@@ -692,72 +662,76 @@ Get information about the currently active board.
|
|
|
692
662
|
|
|
693
663
|
### 🎨 Pairing with Ideogram MCP Server
|
|
694
664
|
|
|
695
|
-
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
|
|
696
|
-
|
|
697
|
-

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