@edicarlos.lds/businessmap-mcp 2.2.0 → 2.2.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.
Files changed (35) hide show
  1. package/README.md +111 -575
  2. package/dist/client/modules/card-client.d.ts +1 -0
  3. package/dist/client/modules/card-client.d.ts.map +1 -1
  4. package/dist/client/modules/card-client.js.map +1 -1
  5. package/dist/schemas/card-schemas.d.ts +3 -0
  6. package/dist/schemas/card-schemas.d.ts.map +1 -1
  7. package/dist/schemas/card-schemas.js +5 -0
  8. package/dist/schemas/card-schemas.js.map +1 -1
  9. package/dist/server/http.d.ts.map +1 -1
  10. package/dist/server/http.js +6 -2
  11. package/dist/server/http.js.map +1 -1
  12. package/dist/server/resources/board-resources.d.ts.map +1 -1
  13. package/dist/server/resources/board-resources.js +3 -3
  14. package/dist/server/resources/board-resources.js.map +1 -1
  15. package/dist/server/resources/card-resources.d.ts.map +1 -1
  16. package/dist/server/resources/card-resources.js +6 -6
  17. package/dist/server/resources/card-resources.js.map +1 -1
  18. package/dist/server/resources/workspace-resources.d.ts.map +1 -1
  19. package/dist/server/resources/workspace-resources.js.map +1 -1
  20. package/dist/server/tools/board-tools.d.ts.map +1 -1
  21. package/dist/server/tools/board-tools.js +3 -3
  22. package/dist/server/tools/board-tools.js.map +1 -1
  23. package/dist/server/tools/card-tools.d.ts.map +1 -1
  24. package/dist/server/tools/card-tools.js +2 -2
  25. package/dist/server/tools/card-tools.js.map +1 -1
  26. package/dist/server/tools/utility-tools.d.ts +1 -1
  27. package/dist/server/tools/utility-tools.d.ts.map +1 -1
  28. package/dist/server/tools/utility-tools.js +1 -1
  29. package/dist/server/tools/utility-tools.js.map +1 -1
  30. package/dist/server/tools/workflow-tools.d.ts.map +1 -1
  31. package/dist/server/tools/workflow-tools.js +2 -2
  32. package/dist/server/tools/workflow-tools.js.map +1 -1
  33. package/docs/MCP_CLIENTS.md +215 -0
  34. package/docs/TOOLS.md +12 -1
  35. package/package.json +5 -1
package/README.md CHANGED
@@ -9,123 +9,60 @@
9
9
  [![MCP](https://img.shields.io/badge/Model%20Context%20Protocol-000000?logo=anthropic&logoColor=white)](https://modelcontextprotocol.io/)
10
10
  [![GitHub Sponsors](https://img.shields.io/github/sponsors/edicarloslds)](https://github.com/sponsors/edicarloslds)
11
11
 
12
- Model Context Protocol server for BusinessMap (Kanbanize) integration. Provides comprehensive access to BusinessMap's project management features through **56 tools**, **5 resources**, and **4 guided prompts** — covering workspaces, boards, cards, subtasks, parent-child relationships, outcomes, comments, tags, stickers, predecessors, custom fields, and more.
12
+ Model Context Protocol (MCP) server for BusinessMap/Kanbanize. It gives AI clients access to BusinessMap workspaces, boards, cards, users, custom fields, workflow cycle-time data, resources, and guided prompts.
13
13
 
14
- ## Installation
14
+ ## What You Get
15
15
 
16
- ### Via NPX (Recommended)
16
+ - 59 MCP tools for workspaces, boards, cards, users, custom fields, workflow analysis, and health checks
17
+ - 5 MCP resources for direct workspace, board, and card reads
18
+ - 4 guided prompts for board analysis, reporting, card creation, and workspace summaries
19
+ - Optional read-only mode for safer exploration
20
+ - `stdio` transport for local MCP clients and HTTP transport for remote usage
21
+ - Docker, structured logging, and programmatic middleware support
17
22
 
18
- You can run the BusinessMap MCP server directly using npx without installing it globally:
23
+ See the full catalog in [docs/TOOLS.md](docs/TOOLS.md).
19
24
 
20
- ```bash
21
- npx @edicarlos.lds/businessmap-mcp
22
- ```
25
+ ## Quick Start
23
26
 
24
- ### Global Installation
27
+ Run directly with `npx`:
25
28
 
26
29
  ```bash
27
- npm install -g @edicarlos.lds/businessmap-mcp
30
+ npx -y @edicarlos.lds/businessmap-mcp
28
31
  ```
29
32
 
30
- ## Configuration
31
-
32
- ### Environment Variables
33
-
34
- The server requires the following environment variables:
35
-
36
- - `BUSINESSMAP_API_TOKEN`: Your BusinessMap API token
37
- - `BUSINESSMAP_API_URL`: Your BusinessMap API URL (e.g., `https://your-account.kanbanize.com/api/v2`)
38
- - `BUSINESSMAP_READ_ONLY_MODE`: Set to `"true"` for read-only mode, `"false"` to allow modifications (optional, defaults to `"false"`)
39
- - `BUSINESSMAP_DEFAULT_WORKSPACE_ID`: Set the BusinessMap workspace ID (optional)
40
- - `LOG_LEVEL`: Set logging verbosity - `0` (DEBUG), `1` (INFO), `2` (WARN), `3` (ERROR), `4` (NONE) (optional, defaults to `1`)
41
- - `PORT`: Server port for HTTP mode (optional, defaults to `3000`)
42
- - `TRANSPORT`: Set to `stdio` (default) or `http`
43
- - `ALLOWED_ORIGINS`: Comma-separated CORS origin allowlist for HTTP mode (optional, defaults to `http://localhost`)
44
- - `ALLOWED_HOSTS`: Comma-separated Host header allowlist for HTTP mode DNS rebinding protection (optional)
45
-
46
- ### Local Usage with .env
47
-
48
- When running locally (e.g., via `npx` or `npm start`), the server will automatically look for a `.env` file in your current working directory.
33
+ Or install globally:
49
34
 
50
35
  ```bash
51
- # Create a .env file
52
- echo "BUSINESSMAP_API_TOKEN=your_token" > .env
53
- echo "BUSINESSMAP_API_URL=https://..." >> .env
54
-
55
- # Run the server
56
- npx @edicarlos.lds/businessmap-mcp
36
+ npm install -g @edicarlos.lds/businessmap-mcp
37
+ businessmap-mcp
57
38
  ```
58
39
 
59
- #### Claude Desktop
40
+ The server requires Node.js 18 or newer.
60
41
 
61
- Config file location:
62
- - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
63
- - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
42
+ ## Required Configuration
64
43
 
65
- Open it via **Settings Developer Edit Config**, then add:
44
+ Set these environment variables in your MCP client, shell, deployment platform, or local `.env` file:
66
45
 
67
- ```json
68
- {
69
- "mcpServers": {
70
- "businessmap": {
71
- "command": "npx",
72
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
73
- "env": {
74
- "BUSINESSMAP_API_TOKEN": "your_token_here",
75
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
76
- "BUSINESSMAP_READ_ONLY_MODE": "false",
77
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
78
- }
79
- }
80
- }
81
- }
46
+ ```env
47
+ BUSINESSMAP_API_TOKEN=your_token_here
48
+ BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2
82
49
  ```
83
50
 
84
- > **Note**: Fully quit and restart Claude Desktop after editing (on macOS, quit from the Dock; on Windows, exit from the system tray). JSON does not support comments — remove any before saving.
51
+ Optional settings:
85
52
 
86
- #### Claude Code
53
+ | Variable | Default | Description |
54
+ | --- | --- | --- |
55
+ | `BUSINESSMAP_READ_ONLY_MODE` | `false` | Use `true` to register only read-only tools. |
56
+ | `BUSINESSMAP_DEFAULT_WORKSPACE_ID` | unset | Default workspace ID for tools that can use one. |
57
+ | `LOG_LEVEL` | `1` | `0` debug, `1` info, `2` warn, `3` error, `4` none. |
58
+ | `TRANSPORT` | `stdio` | Use `stdio` or `http`. |
59
+ | `PORT` | `3000` | HTTP server port. |
60
+ | `ALLOWED_ORIGINS` | `http://localhost` | CORS allowlist for HTTP mode. |
61
+ | `ALLOWED_HOSTS` | unset | Host header allowlist for HTTP mode. |
87
62
 
88
- Run the following command to add the server globally or per-project:
63
+ ## MCP Client Setup
89
64
 
90
- ```bash
91
- # Add globally (available across all projects)
92
- claude mcp add --transport stdio --scope user businessmap -- npx -y @edicarlos.lds/businessmap-mcp
93
-
94
- # Add to current project only (stored in ~/.claude.json)
95
- claude mcp add --transport stdio businessmap -- npx -y @edicarlos.lds/businessmap-mcp
96
- ```
97
-
98
- To pass environment variables:
99
-
100
- ```bash
101
- claude mcp add --transport stdio \
102
- --env BUSINESSMAP_API_TOKEN=your_token_here \
103
- --env BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2 \
104
- businessmap -- npx -y @edicarlos.lds/businessmap-mcp
105
- ```
106
-
107
- Alternatively, commit a `.mcp.json` file to your project root to share it with your team:
108
-
109
- ```json
110
- {
111
- "mcpServers": {
112
- "businessmap": {
113
- "command": "npx",
114
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
115
- "env": {
116
- "BUSINESSMAP_API_TOKEN": "${BUSINESSMAP_API_TOKEN}",
117
- "BUSINESSMAP_API_URL": "${BUSINESSMAP_API_URL}"
118
- }
119
- }
120
- }
121
- }
122
- ```
123
-
124
- > **Tip**: Use environment variable expansion (`${VAR}`) in `.mcp.json` to avoid hardcoding secrets in source control.
125
-
126
- #### Cursor
127
-
128
- Create or edit `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` at the project root (project-specific):
65
+ Most MCP clients need the same command and environment variables:
129
66
 
130
67
  ```json
131
68
  {
@@ -135,544 +72,143 @@ Create or edit `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` at the projec
135
72
  "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
136
73
  "env": {
137
74
  "BUSINESSMAP_API_TOKEN": "your_token_here",
138
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
139
- "BUSINESSMAP_READ_ONLY_MODE": "false",
140
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
75
+ "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2"
141
76
  }
142
77
  }
143
78
  }
144
79
  }
145
80
  ```
146
81
 
147
- You can also manage servers via **Settings Features MCP** in the Cursor UI.
82
+ Client-specific examples for Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Zed, and other MCP clients are in [docs/MCP_CLIENTS.md](docs/MCP_CLIENTS.md).
148
83
 
149
- #### VS Code
84
+ ## HTTP Mode
150
85
 
151
- VS Code uses `"servers"` as the top-level key (not `"mcpServers"`). Create or edit `.vscode/mcp.json` in your project root (workspace-scoped, safe to commit), or the user-level config at:
152
- - **macOS**: `~/Library/Application Support/Code/User/mcp.json`
153
- - **Windows**: `%APPDATA%\Code\User\mcp.json`
86
+ Use HTTP mode when deploying the server remotely or when your client supports Streamable HTTP:
154
87
 
155
- ```json
156
- {
157
- "inputs": [
158
- {
159
- "type": "promptString",
160
- "id": "businessmap-token",
161
- "description": "BusinessMap API Token",
162
- "password": true
163
- }
164
- ],
165
- "servers": {
166
- "businessmap": {
167
- "type": "stdio",
168
- "command": "npx",
169
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
170
- "env": {
171
- "BUSINESSMAP_API_TOKEN": "${input:businessmap-token}",
172
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
173
- "BUSINESSMAP_READ_ONLY_MODE": "false",
174
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
175
- }
176
- }
177
- }
178
- }
88
+ ```bash
89
+ TRANSPORT=http \
90
+ PORT=3000 \
91
+ ALLOWED_ORIGINS=https://your-client.example.com \
92
+ ALLOWED_HOSTS=your-server.example.com \
93
+ npm start
179
94
  ```
180
95
 
181
- > **Note**: The `inputs` block lets VS Code prompt you for secrets at runtime instead of hardcoding them. Requires the GitHub Copilot Chat extension. Add via Command Palette: `MCP: Add Server`.
182
-
183
- #### Windsurf
96
+ Configure your MCP client with:
184
97
 
185
- Edit `~/.codeium/windsurf/mcp_config.json` (open from the Cascade panel's MCPs icon → **Configure**):
186
-
187
- ```json
188
- {
189
- "mcpServers": {
190
- "businessmap": {
191
- "command": "npx",
192
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
193
- "env": {
194
- "BUSINESSMAP_API_TOKEN": "your_token_here",
195
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
196
- "BUSINESSMAP_READ_ONLY_MODE": "false",
197
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
198
- }
199
- }
200
- }
201
- }
98
+ ```text
99
+ http://your-server:3000/mcp
202
100
  ```
203
101
 
204
- > **Tip**: Windsurf supports `${env:VARIABLE_NAME}` syntax inside `env` values to reference host environment variables.
205
-
206
- #### Zed
102
+ For custom authentication, authorization, logging, or rate limiting, see [docs/MIDDLEWARE.md](docs/MIDDLEWARE.md).
207
103
 
208
- MCP servers are configured inside Zed's main settings file (`~/.config/zed/settings.json`) under the `context_servers` key. Open it via **Zed → Settings** or `Cmd+,`:
104
+ ## Local Development
209
105
 
210
- ```json
211
- {
212
- "context_servers": {
213
- "businessmap": {
214
- "source": "custom",
215
- "command": "npx",
216
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
217
- "env": {
218
- "BUSINESSMAP_API_TOKEN": "your_token_here",
219
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
220
- "BUSINESSMAP_READ_ONLY_MODE": "false",
221
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
222
- }
223
- }
224
- }
225
- }
106
+ ```bash
107
+ git clone https://github.com/edicarloslds/businessmap-mcp.git
108
+ cd businessmap-mcp
109
+ npm install
226
110
  ```
227
111
 
228
- You can also add servers via the Agent Panel's Settings view (**Add Custom Server**). A green indicator dot in the Agent Panel confirms the server is running.
229
-
230
- #### Other MCP Clients
231
-
232
- For any other MCP-compatible client, configure a `stdio` server with:
233
-
234
- - **Command**: `npx -y @edicarlos.lds/businessmap-mcp`
235
- - **Required env vars**: `BUSINESSMAP_API_TOKEN`, `BUSINESSMAP_API_URL`
236
- - **Optional env vars**: `BUSINESSMAP_READ_ONLY_MODE`, `BUSINESSMAP_DEFAULT_WORKSPACE_ID`, `LOG_LEVEL`
237
-
238
- ### Remote Usage (Streamable HTTP)
239
-
240
- You can run the server as a remote MCP endpoint over Streamable HTTP. This is useful for deploying to cloud providers or using clients that support remote MCP connections.
241
-
242
- 1. **Start the server in HTTP mode:**
112
+ Create a local `.env` file:
243
113
 
244
- ```bash
245
- export TRANSPORT=http
246
- export PORT=3000
247
- export ALLOWED_ORIGINS=https://your-client.example.com
248
- export ALLOWED_HOSTS=your-server.example.com
249
- npm start
250
- ```
251
-
252
- Configure your MCP client to connect to the Streamable HTTP endpoint:
253
- - **URL**: `http://your-server:3000/mcp`
254
-
255
- ### Programmatic & Middleware Usage
256
-
257
- If you import this package programmatically or want to add authentication/security (like rate-limiting) to your HTTP endpoint, you can inject custom Express middlewares:
258
-
259
- ```typescript
260
- import { startHttpServer } from '@edicarlos.lds/businessmap-mcp';
261
-
262
- await startHttpServer({
263
- middlewares: [
264
- (req, res, next) => {
265
- // Your custom authentication/authorization logic here
266
- next();
267
- }
268
- ]
269
- });
114
+ ```env
115
+ BUSINESSMAP_API_TOKEN=your_token_here
116
+ BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2
117
+ BUSINESSMAP_READ_ONLY_MODE=false
118
+ BUSINESSMAP_DEFAULT_WORKSPACE_ID=1
270
119
  ```
271
120
 
272
- For detailed examples (including static API Keys, JWT verification, and rate limiting), see the [Programmatic Middleware Guide](docs/MIDDLEWARE.md).
273
-
274
- ### Manual Setup
275
-
276
- 1. Clone this repository:
277
-
278
- ```bash
279
- git clone https://github.com/edicarloslds/businessmap-mcp.git
280
- cd businessmap-mcp
281
- ```
282
-
283
- 2. Install dependencies:
284
-
285
- ```bash
286
- npm install
287
- ```
288
-
289
- 3. Create a `.env` file with your BusinessMap credentials (for development/testing):
290
-
291
- ```env
292
- BUSINESSMAP_API_TOKEN=your_token_here
293
- BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2
294
- BUSINESSMAP_READ_ONLY_MODE=false
295
- BUSINESSMAP_DEFAULT_WORKSPACE_ID=1
296
- ```
297
-
298
- > **Note**: When using as an MCP server with Claude Desktop, you don't need a `.env` file. Configure the environment variables directly in your MCP client configuration instead.
299
-
300
- 4. Build the project:
301
-
302
- ```bash
303
- npm run build
304
- ```
305
-
306
- 5. Start the server:
307
-
308
- ```bash
309
- npm start
310
- ```
311
-
312
- ## Usage
313
-
314
- The BusinessMap MCP server provides tools, resources, and prompts for comprehensive project management integration.
315
-
316
- ### Tools
317
-
318
- #### Workspace Management
319
-
320
- - `list_workspaces` - Get all workspaces
321
- - `get_workspace` - Get workspace details
322
- - `create_workspace` - Create new workspace
323
-
324
- #### Board Management
325
-
326
- - `list_boards` - List boards in workspace(s)
327
- - `search_board` - Search for boards by ID or name
328
- - `get_current_board_structure` - Get the complete current structure of a board including workflows, columns, lanes, and configurations
329
- - `create_board` - Create new board (if not in read-only mode)
330
- - `get_columns` - Get all columns for a board
331
- - `get_lanes` - Get all lanes for a board
332
- - `get_lane` - Get details of a specific lane/swimlane
333
- - `create_lane` - Create new lane/swimlane (if not in read-only mode)
334
- - `create_column` - Create a new column on a board (supports main columns and sub-columns)
335
- - `update_column` - Update the details of a specific column on a board
336
- - `delete_column` - Delete a column from a board
337
-
338
- #### Card Management
339
-
340
- ##### Basic Card Operations
341
-
342
- - `list_cards` - Get cards from a board with optional filters
343
- - `get_card` - Get detailed card information
344
- - `get_card_size` - Get the size/points of a specific card
345
- - `get_card_types` - Get all available card types
346
- - `create_card` - Create new card
347
- - `move_card` - Move card to different column/swimlane
348
- - `update_card` - Update card properties
349
- - `set_card_size` - Set the size/points of a specific card
350
- - `delete_card` - Permanently delete a card (irreversible)
351
-
352
- ##### Card Comments
353
-
354
- - `get_card_comments` - Get all comments for a specific card
355
- - `get_card_comment` - Get details of a specific comment from a card
356
- - `create_comment` - Add a new comment to a card
357
- - `update_comment` - Update the text of an existing comment on a card
358
- - `delete_comment` - Delete a comment from a card
359
-
360
- ##### Card Custom Fields
361
-
362
- - `get_card_custom_fields` - Get all custom fields for a specific card
363
-
364
- ##### Card Outcomes & History
365
-
366
- - `get_card_outcomes` - Get all outcomes for a specific card
367
- - `get_card_history` - Get the history of a specific card outcome
368
-
369
- ##### Card Relationships
370
-
371
- - `get_card_linked_cards` - Get all linked cards for a specific card
372
-
373
- ##### Card Subtasks
374
-
375
- - `get_card_subtasks` - Get all subtasks for a specific card
376
- - `get_card_subtask` - Get details of a specific subtask from a card
377
- - `create_card_subtask` - Create a new subtask for a card
378
-
379
- ##### Card Parent Relationships
380
-
381
- - `get_card_parents` - Get a list of parent cards for a specific card
382
- - `get_card_parent` - Check if a card is a parent of a given card
383
- - `add_card_parent` - Make a card a parent of a given card
384
- - `remove_card_parent` - Remove the link between a child card and a parent card
385
- - `get_card_parent_graph` - Get a list of parent cards including their parent cards too
386
- - `get_card_children` - Get a list of child cards of a specified parent card
387
-
388
- ##### Card Blocking
389
-
390
- - `block_card` - Block a card and set a reason/comment explaining why it is blocked
391
- - `unblock_card` - Unblock a card by removing its block reason
392
-
393
- ##### Card Tags
394
-
395
- - `create_tag` - Create a new tag in the workspace
396
- - `add_tag_to_card` - Add an existing tag to a card
397
- - `remove_tag_from_card` - Remove a tag from a card
398
-
399
- ##### Card Stickers
400
-
401
- - `add_sticker_to_card` - Add a sticker to a card
402
- - `remove_sticker_from_card` - Remove a sticker from a card using the sticker-card association ID
403
-
404
- ##### Card Predecessors
405
-
406
- - `add_predecessor` - Establish or update a predecessor-successor relationship between two cards
407
- - `remove_predecessor` - Remove the predecessor-successor relationship between two cards
408
-
409
- #### Custom Field Management
410
-
411
- - `get_custom_field` - Get details of a specific custom field by ID
412
-
413
- #### Workflow & Cycle Time Analysis
414
-
415
- - `get_workflow_cycle_time_columns` - Get workflow's cycle time columns
416
- - `get_workflow_effective_cycle_time_columns` - Get workflow's effective cycle time columns
417
-
418
- #### User Management
419
-
420
- - `list_users` - Get all users
421
- - `get_user` - Get user details
422
- - `get_current_user` - Get current logged user details
423
- - `invite_user` - Add and invite a new user by email
424
-
425
- #### System
426
-
427
- - `health_check` - Check API connection
428
- - `get_api_info` - Get API information
429
-
430
- ### Resources
431
-
432
- The server exposes structured data resources accessible via URI:
433
-
434
- | URI | Description |
435
- |-----|-------------|
436
- | `businessmap://workspaces` | List all workspaces |
437
- | `businessmap://boards` | List all boards |
438
- | `businessmap://boards/{board_id}` | Get details of a specific board |
439
- | `businessmap://boards/{board_id}/cards` | List all cards for a specific board |
440
- | `businessmap://cards/{card_id}` | Get details of a specific card |
441
-
442
- ### Prompts
443
-
444
- The server provides guided prompts for common AI-assisted workflows:
445
-
446
- | Prompt | Description |
447
- |--------|-------------|
448
- | `analyze-board-performance` | Analyze a board's performance: flow efficiency, bottlenecks, cycle time, and workload distribution |
449
- | `generate-board-report` | Generate a comprehensive status report for a board, including cards summary and highlights |
450
- | `create-card-from-description` | Guide the creation of a well-structured card from a natural language description |
451
- | `workspace-status-overview` | Generate a high-level status overview of a workspace, including all boards and their key metrics |
452
-
453
- ## Tool Summary
454
-
455
- The BusinessMap MCP server provides **56 tools**, **5 resources**, and **4 prompts**:
456
-
457
- ### Tools by Category
458
-
459
- - **Workspace Management**: 3 tools
460
- - **Board Management**: 11 tools
461
- - **Card Management**: 36 tools (organized in 9 subcategories)
462
- - **Custom Field Management**: 1 tool
463
- - **Workflow & Cycle Time Analysis**: 2 tools
464
- - **User Management**: 4 tools
465
- - **System**: 2 tools (1 utility tool)
466
-
467
- ## Key Features
468
-
469
- ### Advanced Card Management
470
-
471
- - **Complete CRUD operations** for cards, subtasks, and relationships
472
- - **Parent-child card hierarchies** with full graph traversal
473
- - **Outcome tracking and history** for detailed progress monitoring
474
- - **Linked cards management** for cross-project dependencies
475
- - **Custom fields and types** support for flexible workflows
476
- - **Card blocking/unblocking** with reason tracking
477
- - **Tags and stickers** for visual card organization
478
- - **Predecessor-successor relationships** for dependency management
479
- - **Comment management** (create, update, delete) for collaboration
480
-
481
- ### Comprehensive Board Operations
482
-
483
- - **Multi-workspace board management** with search capabilities
484
- - **Full column management** (create, update, delete) with section and sub-column support
485
- - **Lane (swimlane) operations** for workflow customization
486
- - **Board structure analysis** with detailed metadata
487
-
488
- ### Resources & Prompts
489
-
490
- - **5 structured data resources** for direct URI-based data access
491
- - **4 guided prompts** for common AI-assisted workflows (board analysis, reporting, card creation, workspace overview)
492
-
493
- ### Workflow Intelligence
494
-
495
- - **Cycle time analysis** with configurable column sets
496
- - **Effective cycle time tracking** for performance optimization
497
- - **Custom field integration** for enhanced reporting
498
-
499
- ### Enterprise Features
500
-
501
- - **Read-only mode** for safe data exploration
502
- - **Robust error handling** with detailed error messages
503
- - **Automatic connection verification** with retry logic
504
- - **Docker support** for containerized deployments
505
- - **Structured logging** with multiple log levels (DEBUG, INFO, WARN, ERROR)
506
-
507
- ## Logging
508
-
509
- The server uses a structured logging system that outputs to STDERR (required for MCP protocol compatibility). You can control the verbosity using the `LOG_LEVEL` environment variable:
510
-
511
- - `0` (DEBUG): All messages including detailed debugging information
512
- - `1` (INFO): Informational messages, warnings, and errors (default)
513
- - `2` (WARN): Only warnings and errors
514
- - `3` (ERROR): Only error messages
515
- - `4` (NONE): Disable all logging
516
-
517
- Example configuration with custom log level:
518
-
519
- ```json
520
- {
521
- "mcpServers": {
522
- "Businessmap": {
523
- "command": "npx",
524
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
525
- "env": {
526
- "BUSINESSMAP_API_TOKEN": "your_token_here",
527
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
528
- "LOG_LEVEL": "0"
529
- }
530
- }
531
- }
532
- }
533
- ```
534
-
535
- **Note**: All logging uses STDERR to maintain compatibility with the MCP JSON-RPC protocol, which requires STDOUT to be reserved exclusively for protocol communication.
536
-
537
- ## Development
538
-
539
- ### Setup Development Environment
121
+ Useful commands:
540
122
 
541
123
  ```bash
542
- # Install dependencies
543
- npm install
544
-
545
- # Run in development mode
546
- npm run dev
547
-
548
- # Watch for changes
549
- npm run watch
550
-
551
- # Build for production
552
- npm run build
553
-
554
- # Run tests
555
- npm test
556
-
557
- # Lint code
558
- npm run lint
124
+ npm run dev # Run from TypeScript source
125
+ npm run watch # Run and reload on changes
126
+ npm run build # Build dist/
127
+ npm test # Run tests
128
+ npm run lint # Run ESLint
129
+ npm run test:npx # Test package execution through npx
559
130
  ```
560
131
 
561
- ### Docker Support
132
+ ## Docker
562
133
 
563
134
  ```bash
564
- # Build Docker image
565
135
  npm run docker:build
566
-
567
- # Run with Docker Compose
568
136
  npm run docker:up
569
-
570
- # View logs
571
137
  npm run docker:logs
572
-
573
- # Stop containers
574
138
  npm run docker:down
575
139
  ```
576
140
 
577
141
  ## Troubleshooting
578
142
 
579
- ### Connection Issues
580
-
581
- The server now includes automatic connection verification during startup. If you encounter connection issues:
582
-
583
- 1. **Check your environment variables**:
584
-
585
- ```bash
586
- echo $BUSINESSMAP_API_URL
587
- echo $BUSINESSMAP_API_TOKEN
588
- ```
589
-
590
- 2. **Test the connection manually**:
591
-
592
- ```bash
593
- chmod +x scripts/test-connection.sh
594
- ./scripts/test-connection.sh
595
- ```
143
+ If startup fails, check the two required environment variables first:
596
144
 
597
- 3. **Common issues**:
598
- - **Invalid API URL**: Ensure your URL follows the format `https://your-account.kanbanize.com/api/v2`
599
- - **Invalid API Token**: Verify your token has the necessary permissions
145
+ ```bash
146
+ echo $BUSINESSMAP_API_URL
147
+ echo $BUSINESSMAP_API_TOKEN
148
+ ```
600
149
 
601
- ### Startup Process
150
+ Then test the BusinessMap connection:
602
151
 
603
- The server now performs the following steps during initialization:
152
+ ```bash
153
+ chmod +x scripts/test-connection.sh
154
+ ./scripts/test-connection.sh
155
+ ```
604
156
 
605
- 1. **Configuration validation** - Checks all required environment variables
606
- 2. **API connection verification** - Tests connectivity with up to 3 retry attempts
607
- 3. **Authentication check** - Verifies API token permissions
608
- 4. **Server startup** - Starts the MCP server only after successful connection
157
+ Common causes:
609
158
 
610
- If the connection fails, the server will display detailed error messages and retry automatically.
159
+ - `BUSINESSMAP_API_URL` is not in the expected format: `https://your-account.kanbanize.com/api/v2`
160
+ - `BUSINESSMAP_API_TOKEN` is missing, expired, or lacks the needed permissions
161
+ - The selected MCP client has not been fully restarted after editing its config
611
162
 
612
- ### Release Process
163
+ Logging details are documented in [docs/LOGGING.md](docs/LOGGING.md).
613
164
 
614
- This project uses an automated release process. See [RELEASE_PROCESS.md](docs/RELEASE_PROCESS.md) for detailed documentation.
165
+ ## Project Docs
615
166
 
616
- ### Full Tools Reference
167
+ - [Tools, resources, and prompts](docs/TOOLS.md)
168
+ - [MCP client configuration](docs/MCP_CLIENTS.md)
169
+ - [Logging](docs/LOGGING.md)
170
+ - [Programmatic middleware](docs/MIDDLEWARE.md)
171
+ - [Release process](docs/RELEASE_PROCESS.md)
172
+ - [Scripts](scripts/README.md)
617
173
 
618
- For the complete list of all tools, resources, and prompts with detailed parameter descriptions, see [TOOLS.md](docs/TOOLS.md).
174
+ ## Contributing
619
175
 
620
- **Quick Start:**
176
+ Use conventional commits when possible:
621
177
 
622
178
  ```bash
623
- # Preview release notes
624
- npm run preview:release
625
-
626
- # Publish new version (interactive)
627
- # Publish to NPM and create GitHub release (interactive flows)
628
- npm run publish:npm && npm run publish:github
179
+ feat: add new feature
180
+ fix: resolve bug
181
+ docs: update documentation
182
+ refactor: improve code structure
629
183
  ```
630
184
 
631
- The release process automatically:
185
+ Before opening a pull request:
632
186
 
633
- - Bumps version (patch/minor/major)
634
- - Generates release notes from commits
635
- - Creates GitHub tags and releases
636
- - Publishes to NPM
187
+ ```bash
188
+ npm test
189
+ npm run test:npx
190
+ ```
637
191
 
638
- ### Contributing
192
+ ## Support
639
193
 
640
- 1. Follow conventional commit format for better release notes:
194
+ For issues and questions:
641
195
 
642
- ```bash
643
- feat: add new feature
644
- fix: resolve bug
645
- docs: update documentation
646
- refactor: improve code structure
647
- ```
196
+ 1. Check existing [GitHub issues](../../issues)
197
+ 2. Review the [BusinessMap API documentation](https://businessmap.io/api)
198
+ 3. Verify your environment configuration
199
+ 4. Open a new issue with the error message, runtime command, and relevant MCP client configuration
648
200
 
649
- 2. Ensure all tests pass before submitting PR:
201
+ ## Related Projects
650
202
 
651
- ```bash
652
- npm test
653
- npm run test:npx
654
- ```
203
+ - [Model Context Protocol](https://modelcontextprotocol.io/)
204
+ - [BusinessMap API Documentation](https://businessmap.io/api)
205
+ - [BusinessMap Demo API](https://demo.kanbanize.com/openapi#/)
206
+ - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
655
207
 
656
208
  ## Sponsors
657
209
 
658
- If you find this project helpful and would like to support its development, please consider becoming a sponsor through [GitHub Sponsors](https://github.com/sponsors/edicarloslds).
210
+ If this project helps you, consider supporting it through [GitHub Sponsors](https://github.com/sponsors/edicarloslds).
659
211
 
660
212
  ## License
661
213
 
662
214
  MIT
663
-
664
- ## Support
665
-
666
- For issues and questions:
667
-
668
- 1. Check the [Issues](../../issues) page
669
- 2. Review BusinessMap API documentation
670
- 3. Verify your environment configuration
671
- 4. Submit a new issue with detailed information
672
-
673
- ## Related Projects
674
-
675
- - [Model Context Protocol](https://modelcontextprotocol.io/) - Official MCP documentation
676
- - [BusinessMap API Documentation](https://businessmap.io/api) - Official API reference
677
- - [BusinessMap Demo API](https://demo.kanbanize.com/openapi#/) - Interactive API documentation and testing environment
678
- - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) - Official MCP SDK