trello-mcp 1.0.1 → 1.0.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 +4 -13
- package/dist/index.js +5 -57
- package/dist/index.js.map +1 -1
- package/package.json +1 -3
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@ A comprehensive [Model Context Protocol (MCP)](https://modelcontextprotocol.io)
|
|
|
4
4
|
|
|
5
5
|
**Works with:** Claude Code, Codex, OpenCode, Cursor, Windsurf, and any other MCP client.
|
|
6
6
|
|
|
7
|
+
> ⚠️ **SECURITY WARNING**: Your Trello credentials provide full access to your boards. Never share your API key or token. Protect your MCP config files with proper permissions (`chmod 600`) and never commit them to version control.
|
|
8
|
+
|
|
7
9
|
## Features
|
|
8
10
|
|
|
9
11
|
- **Board Management**: Create, list, update, and archive boards
|
|
@@ -331,18 +333,6 @@ Example: `@me due:week is:open #urgent`
|
|
|
331
333
|
|
|
332
334
|
---
|
|
333
335
|
|
|
334
|
-
## HTTP Server Mode
|
|
335
|
-
|
|
336
|
-
For web integrations or remote access:
|
|
337
|
-
|
|
338
|
-
```bash
|
|
339
|
-
TRELLO_API_KEY=x TRELLO_TOKEN=y TRANSPORT=http PORT=3000 trello-mcp
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
Server available at `http://localhost:3000/mcp`
|
|
343
|
-
|
|
344
|
-
---
|
|
345
|
-
|
|
346
336
|
## Development
|
|
347
337
|
|
|
348
338
|
```bash
|
|
@@ -380,8 +370,9 @@ You can revoke your token anytime at https://trello.com/your/account
|
|
|
380
370
|
### Security best practices
|
|
381
371
|
|
|
382
372
|
- **Never share your token** - it provides full access to your Trello account
|
|
383
|
-
- **Don't commit config files** with credentials to git
|
|
373
|
+
- **Don't commit config files** with credentials to git (add them to `.gitignore`)
|
|
384
374
|
- **Revoke and regenerate** if you accidentally expose your token
|
|
375
|
+
- **Don't screenshot** your terminal/config files with credentials visible
|
|
385
376
|
- The token has `read,write` scope - it can read and modify your boards
|
|
386
377
|
|
|
387
378
|
---
|
package/dist/index.js
CHANGED
|
@@ -161,7 +161,8 @@ function validateEnvironment() {
|
|
|
161
161
|
}
|
|
162
162
|
if (!token) {
|
|
163
163
|
console.error("ERROR: TRELLO_TOKEN environment variable is required");
|
|
164
|
-
console.error(
|
|
164
|
+
console.error("Generate a token from: https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&key=YOUR_API_KEY");
|
|
165
|
+
console.error("(Replace YOUR_API_KEY with your actual Trello API key)");
|
|
165
166
|
process.exit(1);
|
|
166
167
|
}
|
|
167
168
|
// Initialize the client (validates credentials format)
|
|
@@ -174,68 +175,15 @@ function validateEnvironment() {
|
|
|
174
175
|
}
|
|
175
176
|
}
|
|
176
177
|
/**
|
|
177
|
-
*
|
|
178
|
+
* Main entry point
|
|
178
179
|
*/
|
|
179
|
-
async function
|
|
180
|
+
async function main() {
|
|
181
|
+
validateEnvironment();
|
|
180
182
|
const server = createServer();
|
|
181
183
|
const transport = new StdioServerTransport();
|
|
182
184
|
await server.connect(transport);
|
|
183
185
|
console.error("Trello MCP server running on stdio");
|
|
184
186
|
}
|
|
185
|
-
/**
|
|
186
|
-
* Run with HTTP transport
|
|
187
|
-
*/
|
|
188
|
-
async function runHttp() {
|
|
189
|
-
// Dynamic import for HTTP dependencies
|
|
190
|
-
const { default: express } = await import("express");
|
|
191
|
-
const { StreamableHTTPServerTransport } = await import("@modelcontextprotocol/sdk/server/streamableHttp.js");
|
|
192
|
-
const app = express();
|
|
193
|
-
app.use(express.json());
|
|
194
|
-
// Health check endpoint
|
|
195
|
-
app.get("/health", (_req, res) => {
|
|
196
|
-
res.json({ status: "ok", service: "trello-mcp" });
|
|
197
|
-
});
|
|
198
|
-
// MCP endpoint
|
|
199
|
-
app.post("/mcp", async (req, res) => {
|
|
200
|
-
try {
|
|
201
|
-
const server = createServer();
|
|
202
|
-
const transport = new StreamableHTTPServerTransport({
|
|
203
|
-
sessionIdGenerator: undefined,
|
|
204
|
-
enableJsonResponse: true,
|
|
205
|
-
});
|
|
206
|
-
res.on("close", () => {
|
|
207
|
-
transport.close();
|
|
208
|
-
});
|
|
209
|
-
await server.connect(transport);
|
|
210
|
-
await transport.handleRequest(req, res, req.body);
|
|
211
|
-
}
|
|
212
|
-
catch (error) {
|
|
213
|
-
console.error("MCP request error:", error);
|
|
214
|
-
res.status(500).json({
|
|
215
|
-
jsonrpc: "2.0",
|
|
216
|
-
id: null,
|
|
217
|
-
error: { code: -32603, message: String(error) },
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
const port = parseInt(process.env.PORT || "3000");
|
|
222
|
-
app.listen(port, () => {
|
|
223
|
-
console.error(`Trello MCP server running on http://localhost:${port}/mcp`);
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Main entry point
|
|
228
|
-
*/
|
|
229
|
-
async function main() {
|
|
230
|
-
validateEnvironment();
|
|
231
|
-
const transport = process.env.TRANSPORT || "stdio";
|
|
232
|
-
if (transport === "http") {
|
|
233
|
-
await runHttp();
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
await runStdio();
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
187
|
main().catch((error) => {
|
|
240
188
|
console.error("Fatal error:", error);
|
|
241
189
|
process.exit(1);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,+BAA+B;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEtE,IAAI,QAAQ,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuFb,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,2BAA2B;IAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CACX,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trello-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "A comprehensive MCP server for Trello - manage boards, lists, cards, checklists, labels, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,11 +29,9 @@
|
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@modelcontextprotocol/sdk": "^1.6.1",
|
|
32
|
-
"express": "^5.0.1",
|
|
33
32
|
"zod": "^3.23.8"
|
|
34
33
|
},
|
|
35
34
|
"devDependencies": {
|
|
36
|
-
"@types/express": "^5.0.0",
|
|
37
35
|
"@types/node": "^22.10.0",
|
|
38
36
|
"tsx": "^4.19.2",
|
|
39
37
|
"typescript": "^5.7.2"
|