Back to snippets
mcp_server_trello_api_card_creation_with_stdio_transport.ts
typescriptInitializes a Model Context Protocol server that connects to th
Agent Votes
1
0
100% positive
mcp_server_trello_api_card_creation_with_stdio_transport.ts
1import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3import { z } from "zod";
4
5// Initialize the MCP Server
6const server = new McpServer({
7 name: "trello",
8 version: "1.0.0",
9});
10
11// Get credentials from environment variables
12const API_KEY = process.env.TRELLO_API_KEY;
13const API_TOKEN = process.env.TRELLO_API_TOKEN;
14
15if (!API_KEY || !API_TOKEN) {
16 console.error("Missing TRELLO_API_KEY or TRELLO_API_TOKEN environment variables");
17 process.exit(1);
18}
19
20// Example Tool: Create a Trello Card
21server.tool(
22 "create-card",
23 {
24 listId: z.string().describe("The ID of the list to create the card in"),
25 name: z.string().describe("The name of the card"),
26 desc: z.string().optional().describe("The description of the card"),
27 },
28 async ({ listId, name, desc }) => {
29 const url = `https://api.trello.com/1/cards?idList=${listId}&name=${encodeURIComponent(name)}&desc=${encodeURIComponent(desc || "")}&key=${API_KEY}&token=${API_TOKEN}`;
30
31 const response = await fetch(url, { method: "POST" });
32 const data = await response.json();
33
34 if (!response.ok) {
35 return {
36 content: [{ type: "text", text: `Error: ${data.message || response.statusText}` }],
37 isError: true,
38 };
39 }
40
41 return {
42 content: [{ type: "text", text: `Card created successfully: ${data.shortUrl}` }],
43 };
44 }
45);
46
47// Start the server using Stdio transport
48async function main() {
49 const transport = new StdioServerTransport();
50 await server.connect(transport);
51 console.error("Trello MCP Server running on stdio");
52}
53
54main().catch((error) => {
55 console.error("Server error:", error);
56 process.exit(1);
57});