@neilinger/businessmap-mcp 1.6.0

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +563 -0
  3. package/dist/client/businessmap-client.d.ts +160 -0
  4. package/dist/client/businessmap-client.d.ts.map +1 -0
  5. package/dist/client/businessmap-client.js +325 -0
  6. package/dist/client/businessmap-client.js.map +1 -0
  7. package/dist/client/modules/base-client.d.ts +34 -0
  8. package/dist/client/modules/base-client.d.ts.map +1 -0
  9. package/dist/client/modules/base-client.js +20 -0
  10. package/dist/client/modules/base-client.js.map +1 -0
  11. package/dist/client/modules/board-client.d.ts +82 -0
  12. package/dist/client/modules/board-client.d.ts.map +1 -0
  13. package/dist/client/modules/board-client.js +137 -0
  14. package/dist/client/modules/board-client.js.map +1 -0
  15. package/dist/client/modules/card-client.d.ts +201 -0
  16. package/dist/client/modules/card-client.d.ts.map +1 -0
  17. package/dist/client/modules/card-client.js +251 -0
  18. package/dist/client/modules/card-client.js.map +1 -0
  19. package/dist/client/modules/custom-field-client.d.ts +62 -0
  20. package/dist/client/modules/custom-field-client.d.ts.map +1 -0
  21. package/dist/client/modules/custom-field-client.js +47 -0
  22. package/dist/client/modules/custom-field-client.js.map +1 -0
  23. package/dist/client/modules/index.d.ts +9 -0
  24. package/dist/client/modules/index.d.ts.map +1 -0
  25. package/dist/client/modules/index.js +9 -0
  26. package/dist/client/modules/index.js.map +1 -0
  27. package/dist/client/modules/user-client.d.ts +17 -0
  28. package/dist/client/modules/user-client.d.ts.map +1 -0
  29. package/dist/client/modules/user-client.js +25 -0
  30. package/dist/client/modules/user-client.js.map +1 -0
  31. package/dist/client/modules/utility-client.d.ts +12 -0
  32. package/dist/client/modules/utility-client.d.ts.map +1 -0
  33. package/dist/client/modules/utility-client.js +51 -0
  34. package/dist/client/modules/utility-client.js.map +1 -0
  35. package/dist/client/modules/workflow-client.d.ts +13 -0
  36. package/dist/client/modules/workflow-client.d.ts.map +1 -0
  37. package/dist/client/modules/workflow-client.js +18 -0
  38. package/dist/client/modules/workflow-client.js.map +1 -0
  39. package/dist/client/modules/workspace-client.d.ts +47 -0
  40. package/dist/client/modules/workspace-client.d.ts.map +1 -0
  41. package/dist/client/modules/workspace-client.js +88 -0
  42. package/dist/client/modules/workspace-client.js.map +1 -0
  43. package/dist/config/environment.d.ts +19 -0
  44. package/dist/config/environment.d.ts.map +1 -0
  45. package/dist/config/environment.js +65 -0
  46. package/dist/config/environment.js.map +1 -0
  47. package/dist/index.d.ts +3 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +84 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/schemas/board-schemas.d.ts +133 -0
  52. package/dist/schemas/board-schemas.d.ts.map +1 -0
  53. package/dist/schemas/board-schemas.js +95 -0
  54. package/dist/schemas/board-schemas.js.map +1 -0
  55. package/dist/schemas/bulk-schemas.d.ts +154 -0
  56. package/dist/schemas/bulk-schemas.d.ts.map +1 -0
  57. package/dist/schemas/bulk-schemas.js +69 -0
  58. package/dist/schemas/bulk-schemas.js.map +1 -0
  59. package/dist/schemas/card-schemas.d.ts +1309 -0
  60. package/dist/schemas/card-schemas.d.ts.map +1 -0
  61. package/dist/schemas/card-schemas.js +518 -0
  62. package/dist/schemas/card-schemas.js.map +1 -0
  63. package/dist/schemas/common-schemas.d.ts +47 -0
  64. package/dist/schemas/common-schemas.d.ts.map +1 -0
  65. package/dist/schemas/common-schemas.js +53 -0
  66. package/dist/schemas/common-schemas.js.map +1 -0
  67. package/dist/schemas/custom-field-schemas.d.ts +155 -0
  68. package/dist/schemas/custom-field-schemas.d.ts.map +1 -0
  69. package/dist/schemas/custom-field-schemas.js +78 -0
  70. package/dist/schemas/custom-field-schemas.js.map +1 -0
  71. package/dist/schemas/index.d.ts +9 -0
  72. package/dist/schemas/index.d.ts.map +1 -0
  73. package/dist/schemas/index.js +10 -0
  74. package/dist/schemas/index.js.map +1 -0
  75. package/dist/schemas/user-schemas.d.ts +11 -0
  76. package/dist/schemas/user-schemas.d.ts.map +1 -0
  77. package/dist/schemas/user-schemas.js +10 -0
  78. package/dist/schemas/user-schemas.js.map +1 -0
  79. package/dist/schemas/utility-schemas.d.ts +4 -0
  80. package/dist/schemas/utility-schemas.d.ts.map +1 -0
  81. package/dist/schemas/utility-schemas.js +6 -0
  82. package/dist/schemas/utility-schemas.js.map +1 -0
  83. package/dist/schemas/workflow-schemas.d.ts +22 -0
  84. package/dist/schemas/workflow-schemas.d.ts.map +1 -0
  85. package/dist/schemas/workflow-schemas.js +12 -0
  86. package/dist/schemas/workflow-schemas.js.map +1 -0
  87. package/dist/schemas/workspace-schemas.d.ts +40 -0
  88. package/dist/schemas/workspace-schemas.d.ts.map +1 -0
  89. package/dist/schemas/workspace-schemas.js +23 -0
  90. package/dist/schemas/workspace-schemas.js.map +1 -0
  91. package/dist/server/mcp-server.d.ts +14 -0
  92. package/dist/server/mcp-server.d.ts.map +1 -0
  93. package/dist/server/mcp-server.js +54 -0
  94. package/dist/server/mcp-server.js.map +1 -0
  95. package/dist/server/tools/base-tool.d.ts +34 -0
  96. package/dist/server/tools/base-tool.d.ts.map +1 -0
  97. package/dist/server/tools/base-tool.js +30 -0
  98. package/dist/server/tools/base-tool.js.map +1 -0
  99. package/dist/server/tools/board-tools.d.ts +25 -0
  100. package/dist/server/tools/board-tools.d.ts.map +1 -0
  101. package/dist/server/tools/board-tools.js +347 -0
  102. package/dist/server/tools/board-tools.js.map +1 -0
  103. package/dist/server/tools/card-tools.d.ts +33 -0
  104. package/dist/server/tools/card-tools.d.ts.map +1 -0
  105. package/dist/server/tools/card-tools.js +543 -0
  106. package/dist/server/tools/card-tools.js.map +1 -0
  107. package/dist/server/tools/custom-field-tools.d.ts +13 -0
  108. package/dist/server/tools/custom-field-tools.d.ts.map +1 -0
  109. package/dist/server/tools/custom-field-tools.js +181 -0
  110. package/dist/server/tools/custom-field-tools.js.map +1 -0
  111. package/dist/server/tools/index.d.ts +9 -0
  112. package/dist/server/tools/index.d.ts.map +1 -0
  113. package/dist/server/tools/index.js +9 -0
  114. package/dist/server/tools/index.js.map +1 -0
  115. package/dist/server/tools/user-tools.d.ts +10 -0
  116. package/dist/server/tools/user-tools.d.ts.map +1 -0
  117. package/dist/server/tools/user-tools.js +55 -0
  118. package/dist/server/tools/user-tools.js.map +1 -0
  119. package/dist/server/tools/utility-tools.d.ts +9 -0
  120. package/dist/server/tools/utility-tools.d.ts.map +1 -0
  121. package/dist/server/tools/utility-tools.js +46 -0
  122. package/dist/server/tools/utility-tools.js.map +1 -0
  123. package/dist/server/tools/workflow-tools.d.ts +9 -0
  124. package/dist/server/tools/workflow-tools.d.ts.map +1 -0
  125. package/dist/server/tools/workflow-tools.js +55 -0
  126. package/dist/server/tools/workflow-tools.js.map +1 -0
  127. package/dist/server/tools/workspace-tools.d.ts +14 -0
  128. package/dist/server/tools/workspace-tools.d.ts.map +1 -0
  129. package/dist/server/tools/workspace-tools.js +179 -0
  130. package/dist/server/tools/workspace-tools.js.map +1 -0
  131. package/dist/services/confirmation-builder.d.ts +60 -0
  132. package/dist/services/confirmation-builder.d.ts.map +1 -0
  133. package/dist/services/confirmation-builder.js +170 -0
  134. package/dist/services/confirmation-builder.js.map +1 -0
  135. package/dist/services/dependency-analyzer.d.ts +90 -0
  136. package/dist/services/dependency-analyzer.d.ts.map +1 -0
  137. package/dist/services/dependency-analyzer.js +220 -0
  138. package/dist/services/dependency-analyzer.js.map +1 -0
  139. package/dist/types/base.d.ts +22 -0
  140. package/dist/types/base.d.ts.map +1 -0
  141. package/dist/types/base.js +3 -0
  142. package/dist/types/base.js.map +1 -0
  143. package/dist/types/board.d.ts +129 -0
  144. package/dist/types/board.d.ts.map +1 -0
  145. package/dist/types/board.js +3 -0
  146. package/dist/types/board.js.map +1 -0
  147. package/dist/types/card.d.ts +414 -0
  148. package/dist/types/card.d.ts.map +1 -0
  149. package/dist/types/card.js +3 -0
  150. package/dist/types/card.js.map +1 -0
  151. package/dist/types/custom-field.d.ts +17 -0
  152. package/dist/types/custom-field.d.ts.map +1 -0
  153. package/dist/types/custom-field.js +3 -0
  154. package/dist/types/custom-field.js.map +1 -0
  155. package/dist/types/index.d.ts +9 -0
  156. package/dist/types/index.d.ts.map +1 -0
  157. package/dist/types/index.js +10 -0
  158. package/dist/types/index.js.map +1 -0
  159. package/dist/types/lane.d.ts +16 -0
  160. package/dist/types/lane.d.ts.map +1 -0
  161. package/dist/types/lane.js +3 -0
  162. package/dist/types/lane.js.map +1 -0
  163. package/dist/types/user.d.ts +32 -0
  164. package/dist/types/user.d.ts.map +1 -0
  165. package/dist/types/user.js +3 -0
  166. package/dist/types/user.js.map +1 -0
  167. package/dist/types/workflow.d.ts +8 -0
  168. package/dist/types/workflow.d.ts.map +1 -0
  169. package/dist/types/workflow.js +2 -0
  170. package/dist/types/workflow.js.map +1 -0
  171. package/dist/types/workspace.d.ts +11 -0
  172. package/dist/types/workspace.d.ts.map +1 -0
  173. package/dist/types/workspace.js +3 -0
  174. package/dist/types/workspace.js.map +1 -0
  175. package/package.json +84 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Edicarlos Lopes
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,563 @@
1
+ # BusinessMap MCP Server
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@edicarlos.lds/businessmap-mcp.svg)](https://www.npmjs.com/package/@edicarlos.lds/businessmap-mcp)
4
+ [![GitHub release](https://img.shields.io/github/v/release/edicarloslds/businessmap-mcp)](https://github.com/edicarloslds/businessmap-mcp/releases)
5
+ [![npm downloads](https://img.shields.io/npm/dm/@edicarlos.lds/businessmap-mcp)](https://www.npmjs.com/package/@edicarlos.lds/businessmap-mcp)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org/)
8
+ [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
9
+ [![MCP](https://img.shields.io/badge/Model%20Context%20Protocol-000000?logo=anthropic&logoColor=white)](https://modelcontextprotocol.io/)
10
+
11
+ Model Context Protocol server for BusinessMap (Kanbanize) integration. Provides comprehensive access to BusinessMap's project management features including workspaces, boards, cards, subtasks, parent-child relationships, outcomes, custom fields, and more.
12
+
13
+ ## Installation
14
+
15
+ ### Via NPX (Recommended)
16
+
17
+ You can run the BusinessMap MCP server directly using npx without installing it globally:
18
+
19
+ ```bash
20
+ npx @edicarlos.lds/businessmap-mcp
21
+ ```
22
+
23
+ ### Global Installation
24
+
25
+ ```bash
26
+ npm install -g @edicarlos.lds/businessmap-mcp
27
+ ```
28
+
29
+ ## Configuration
30
+
31
+ ### Environment Variables
32
+
33
+ The server requires the following environment variables:
34
+
35
+ - `BUSINESSMAP_API_TOKEN`: Your BusinessMap API token
36
+ - `BUSINESSMAP_API_URL`: Your BusinessMap API URL (e.g., `https://your-account.kanbanize.com/api/v2`)
37
+ - `BUSINESSMAP_READ_ONLY_MODE`: Set to `"true"` for read-only mode, `"false"` to allow modifications (optional, defaults to `"false"`)
38
+ - `BUSINESSMAP_DEFAULT_WORKSPACE_ID`: Set the BusinessMap workspace ID (optional)
39
+
40
+ #### Claude Desktop
41
+
42
+ Add the following configuration to your `claude_desktop_config.json` file:
43
+
44
+ ```json
45
+ {
46
+ "mcpServers": {
47
+ "Businessmap": {
48
+ "command": "npx",
49
+ "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
50
+ "env": {
51
+ "BUSINESSMAP_API_TOKEN": "your_token_here",
52
+ "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
53
+ "BUSINESSMAP_READ_ONLY_MODE": "false", // optional
54
+ "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1" // optional
55
+ }
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ #### Cursor
62
+
63
+ To use the BusinessMap MCP server with Cursor, add the following configuration to your Cursor settings:
64
+
65
+ 1. Open Cursor Settings (Cmd/Ctrl + ,)
66
+ 2. Click on "MCP & Integrations" and then "Add Custom MCP"
67
+ 3. Add a new MCP server with the following configuration:
68
+
69
+ ```json
70
+ {
71
+ "name": "BusinessMap",
72
+ "command": "npx",
73
+ "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
74
+ "env": {
75
+ "BUSINESSMAP_API_TOKEN": "your_token_here",
76
+ "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
77
+ "BUSINESSMAP_READ_ONLY_MODE": "false",
78
+ "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
79
+ }
80
+ }
81
+ ```
82
+
83
+ #### VSCode
84
+
85
+ To use the BusinessMap MCP server with VSCode, add the following configuration:
86
+
87
+ 1. Edit or create `.vscode/mcp.json` and add the MCP extension settings:
88
+
89
+ ```json
90
+ {
91
+ "servers": {
92
+ "businessmap": {
93
+ "command": "npx",
94
+ "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
95
+ "env": {
96
+ "BUSINESSMAP_API_TOKEN": "your_token_here",
97
+ "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
98
+ "BUSINESSMAP_READ_ONLY_MODE": "false",
99
+ "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
100
+ }
101
+ }
102
+ }
103
+ }
104
+ ```
105
+
106
+ #### Other MCP Clients
107
+
108
+ For other MCP clients, use the appropriate configuration format for your client, ensuring you specify:
109
+
110
+ - Command: `npx @edicarlos.lds/businessmap-mcp` (or `businessmap-mcp` if globally installed)
111
+ - Environment variables: `BUSINESSMAP_API_TOKEN`, `BUSINESSMAP_API_URL`, and optionally `BUSINESSMAP_READ_ONLY_MODE`, `BUSINESSMAP_DEFAULT_WORKSPACE_ID`
112
+
113
+ ### Manual Setup
114
+
115
+ 1. Clone this repository:
116
+
117
+ ```bash
118
+ git clone https://github.com/edicarloslds/businessmap-mcp.git
119
+ cd businessmap-mcp
120
+ ```
121
+
122
+ 2. Install dependencies:
123
+
124
+ ```bash
125
+ npm install
126
+ ```
127
+
128
+ 3. Create a `.env` file with your BusinessMap credentials (for development/testing):
129
+
130
+ ```env
131
+ BUSINESSMAP_API_TOKEN=your_token_here
132
+ BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2
133
+ BUSINESSMAP_READ_ONLY_MODE=false
134
+ BUSINESSMAP_DEFAULT_WORKSPACE_ID=1
135
+ ```
136
+
137
+ > **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.
138
+
139
+ 4. Build the project:
140
+
141
+ ```bash
142
+ npm run build
143
+ ```
144
+
145
+ 5. Start the server:
146
+
147
+ ```bash
148
+ npm start
149
+ ```
150
+
151
+ ## Usage
152
+
153
+ The BusinessMap MCP server provides the following tools:
154
+
155
+ ### Workspace Management
156
+
157
+ - `list_workspaces` - Get all workspaces
158
+ - `get_workspace` - Get workspace details
159
+ - `create_workspace` - Create new workspace
160
+ - `update_workspace` - Modify workspace name or description
161
+ - `archive_workspace` - Archive workspace (soft delete). Note: The API does not support permanent deletion (DELETE returns 405). Only archiving is available.
162
+
163
+ ### Board Management
164
+
165
+ - `list_boards` - List boards in workspace(s)
166
+ - `search_board` - Search for boards by ID or name
167
+ - `get_current_board_structure` - Get the complete current structure of a board including workflows, columns, lanes, and configurations
168
+ - `create_board` - Create new board (if not in read-only mode)
169
+ - `update_board` - Modify board name, description, or settings
170
+ - `delete_board` - Remove board (requires archive-first workflow: boards must be archived before deletion, automatically handled via archive_first parameter)
171
+ - `get_columns` - Get all columns for a board
172
+ - `get_lanes` - Get all lanes for a board
173
+ - `get_lane` - Get details of a specific lane/swimlane
174
+ - `create_lane` - Create new lane/swimlane (if not in read-only mode)
175
+
176
+ ### Card Management
177
+
178
+ #### Basic Card Operations
179
+
180
+ - `list_cards` - Get cards from a board with optional filters
181
+ - `get_card` - Get detailed card information
182
+ - `get_card_size` - Get the size/points of a specific card
183
+ - `create_card` - Create new card
184
+ - `move_card` - Move card to different column/swimlane
185
+ - `update_card` - Update card properties
186
+ - `set_card_size` - Set the size/points of a specific card
187
+ - `delete_card` - Remove card (with cascade confirmation if has children/comments/subtasks)
188
+
189
+ #### Card Comments
190
+
191
+ - `get_card_comments` - Get all comments for a specific card
192
+ - `get_card_comment` - Get details of a specific comment from a card
193
+ - `update_card_comment` - Update existing card comment text and formatting
194
+ - `delete_card_comment` - Remove comment from card
195
+
196
+ #### Card Custom Fields & Types
197
+
198
+ - `get_card_custom_fields` - Get all custom fields for a specific card
199
+ - `get_card_types` - Get all available card types
200
+
201
+ #### Card Outcomes & History
202
+
203
+ - `get_card_outcomes` - Get all outcomes for a specific card
204
+ - `get_card_history` - Get the history of a specific card outcome
205
+
206
+ #### Card Relationships
207
+
208
+ - `get_card_linked_cards` - Get all linked cards for a specific card
209
+
210
+ #### Card Subtasks
211
+
212
+ - `get_card_subtasks` - Get all subtasks for a specific card
213
+ - `get_card_subtask` - Get details of a specific subtask from a card
214
+ - `create_card_subtask` - Create a new subtask for a card
215
+ - `update_card_subtask` - Update subtask description, owner, or status
216
+ - `delete_card_subtask` - Remove subtask from card
217
+
218
+ #### Card Parent Relationships
219
+
220
+ - `get_card_parents` - Get a list of parent cards for a specific card
221
+ - `get_card_parent` - Check if a card is a parent of a given card
222
+ - `add_card_parent` - Make a card a parent of a given card
223
+ - `remove_card_parent` - Remove the link between a child card and a parent card
224
+ - `get_card_parent_graph` - Get a list of parent cards including their parent cards too
225
+ - `get_card_children` - Get a list of child cards of a specified parent card
226
+
227
+ ### Custom Field Management
228
+
229
+ - `list_custom_fields` - Get all custom field definitions across system
230
+ - `list_board_custom_fields` - Get custom field definitions for specific board
231
+ - `get_custom_field` - Get details of a specific custom field by ID
232
+ - `create_custom_field` - Define new custom field with type and options
233
+ - `update_custom_field` - Modify custom field label, type, or constraints
234
+ - `delete_custom_field` - Remove custom field definition (cascades to all card values)
235
+
236
+ ### Workflow & Cycle Time Analysis
237
+
238
+ - `get_workflow_cycle_time_columns` - Get workflow's cycle time columns
239
+ - `get_workflow_effective_cycle_time_columns` - Get workflow's effective cycle time columns
240
+
241
+ ### Bulk Operations
242
+
243
+ - `bulk_archive_workspaces` - Archive multiple workspaces with consolidated confirmation (soft delete only)
244
+ - `bulk_update_workspaces` - Update multiple workspaces in single transaction
245
+ - `bulk_delete_boards` - Delete multiple boards with consolidated confirmation (automatically archives boards before deletion)
246
+ - `bulk_update_boards` - Update multiple boards in single transaction
247
+ - `bulk_delete_cards` - Delete multiple cards with consolidated confirmation
248
+ - `bulk_update_cards` - Update multiple cards in single transaction
249
+
250
+ ### User Management
251
+
252
+ - `list_users` - Get all users
253
+ - `get_user` - Get user details
254
+ - `get_current_user` - Get current logged user details
255
+
256
+ ### System
257
+
258
+ - `health_check` - Check API connection
259
+ - `get_api_info` - Get API information
260
+
261
+ ## Tool Summary
262
+
263
+ The BusinessMap MCP server provides **65 tools** across 9 categories:
264
+
265
+ - **Workspace Management**: 5 tools
266
+ - **Board Management**: 11 tools
267
+ - **Card Management**: 25 tools (organized in 6 subcategories)
268
+ - **Custom Field Management**: 7 tools
269
+ - **Workflow & Cycle Time Analysis**: 2 tools
270
+ - **Bulk Operations**: 6 tools
271
+ - **User Management**: 3 tools
272
+ - **System**: 2 tools
273
+
274
+ ## Key Features
275
+
276
+ ### Advanced Card Management
277
+
278
+ - **Complete CRUD operations** for cards, subtasks, and relationships
279
+ - **Parent-child card hierarchies** with full graph traversal
280
+ - **Outcome tracking and history** for detailed progress monitoring
281
+ - **Linked cards management** for cross-project dependencies
282
+ - **Custom fields and types** support for flexible workflows
283
+
284
+ ### Comprehensive Board Operations
285
+
286
+ - **Multi-workspace board management** with search capabilities
287
+ - **Column and lane (swimlane) operations** for workflow customization
288
+ - **Board structure analysis** with detailed metadata
289
+
290
+ ### Workflow Intelligence
291
+
292
+ - **Cycle time analysis** with configurable column sets
293
+ - **Effective cycle time tracking** for performance optimization
294
+ - **Custom field integration** for enhanced reporting
295
+
296
+ ### Enterprise Features
297
+
298
+ - **Read-only mode** for safe data exploration
299
+ - **Robust error handling** with detailed error messages
300
+ - **Automatic connection verification** with retry logic
301
+ - **Docker support** for containerized deployments
302
+ - **Bulk operations** with dependency analysis and consolidated confirmations
303
+ - **Cascade delete protection** with impact previews
304
+
305
+ ### DELETE Behavior by Resource Type
306
+
307
+ The API enforces different deletion workflows depending on resource type:
308
+
309
+ - **Workspaces**: Cannot be permanently deleted via API (DELETE returns 405). Only archiving is supported using `archive_workspace` or `bulk_archive_workspaces`.
310
+ - **Boards**: Require archive-first workflow. Boards must be archived (PATCH with `is_archived=1`) before DELETE succeeds. Attempting to DELETE an active board returns 400 "BS05 - The board has not been archived". The `delete_board` and `bulk_delete_boards` tools handle this automatically via the `archive_first` parameter (defaults to true).
311
+ - **Cards**: Support direct deletion with cascade confirmation for dependent resources (children, comments, subtasks).
312
+
313
+ ## Error Handling
314
+
315
+ All tools follow consistent error handling patterns with specific failure causes, transient/permanent indicators, and actionable remediation steps.
316
+
317
+ ### Common Error Scenarios
318
+
319
+ #### Insufficient Permissions (Permanent)
320
+
321
+ **Affects**: `archive_workspace`, `delete_board`, `delete_custom_field`, all bulk archive/delete operations
322
+
323
+ - **Cause**: User lacks required admin role for the operation
324
+ - **Message**: "Insufficient permissions. [Operation] requires [role] role."
325
+ - **Remediation**: Contact workspace/board administrator to request elevated permissions or have admin perform the operation
326
+
327
+ **Example**:
328
+ ```
329
+ Error: Insufficient permissions. Workspace archiving requires workspace admin role.
330
+ Remediation: Contact workspace administrator to request elevated permissions.
331
+ ```
332
+
333
+ #### Resource Not Found (Permanent)
334
+
335
+ **Affects**: All update and delete operations
336
+
337
+ - **Cause**: Resource ID does not exist or was already deleted
338
+ - **Message**: "[Resource] not found. Verify resource exists."
339
+ - **Remediation**: Use corresponding list/get tool to verify resource ID before retry
340
+
341
+ **Example**:
342
+ ```
343
+ Error: Board not found. Verify resource exists.
344
+ Remediation: Use list_boards to retrieve current board IDs.
345
+ ```
346
+
347
+ #### Rate Limit Exceeded (Transient)
348
+
349
+ **Affects**: All operations (30 requests/minute, 600 requests/hour limit)
350
+
351
+ - **Cause**: API rate limit exceeded
352
+ - **Message**: "Rate limit exceeded. Retry after [N] seconds."
353
+ - **Remediation**: Wait indicated time and retry. Consider batching operations using bulk tools.
354
+
355
+ **Example**:
356
+ ```
357
+ Error: Rate limit exceeded. Retry after 60 seconds.
358
+ Remediation: Wait 60 seconds and retry. For multiple operations, use bulk_update_cards instead of individual updates.
359
+ ```
360
+
361
+ #### Validation Error (Permanent)
362
+
363
+ **Affects**: All create and update operations
364
+
365
+ - **Cause**: Invalid parameter values or constraint violations
366
+ - **Message**: "Validation failed: [specific constraint]"
367
+ - **Remediation**: Review parameter requirements and adjust input
368
+
369
+ **Example**:
370
+ ```
371
+ Error: Validation failed: Custom field name must be unique within board.
372
+ Remediation: Use list_board_custom_fields to check existing names, then choose a unique name.
373
+ ```
374
+
375
+ #### Cascade Archive/Delete Confirmation Required (User Action Required)
376
+
377
+ **Affects**: `archive_workspace`, `delete_board`, `delete_card`, all bulk archive/delete operations
378
+
379
+ - **Cause**: Resource has dependent resources that will be archived/deleted
380
+ - **Message**: Displays dependency tree and impact summary
381
+ - **Remediation**: Review dependencies and confirm operation or cancel
382
+
383
+ **Example**:
384
+ ```
385
+ ⚠️ Delete Confirmation Required
386
+
387
+ Workspace "Marketing Team" (ID: 123)
388
+ └─ 3 boards will be deleted:
389
+ • "Q1 Campaign" (ID: 456) → 12 cards
390
+ • "Content Calendar" (ID: 457) → 8 cards
391
+
392
+ Total impact: 1 workspace, 3 boards, 20 cards
393
+
394
+ Proceed with deletion? (yes/no):
395
+ ```
396
+
397
+ #### Network/Server Error (Transient)
398
+
399
+ **Affects**: All operations
400
+
401
+ - **Cause**: Temporary network issue or server unavailability
402
+ - **Message**: "Connection failed: [details]"
403
+ - **Remediation**: Check network connection and retry. If persists, check BusinessMap status.
404
+
405
+ **Example**:
406
+ ```
407
+ Error: Connection failed: ECONNREFUSED
408
+ Remediation: Verify BUSINESSMAP_API_URL is correct and BusinessMap service is accessible. Retry after verifying connection.
409
+ ```
410
+
411
+ ### Error Handling by Tool Category
412
+
413
+ #### Workspace Operations
414
+ - `update_workspace`, `archive_workspace`: Permissions, NotFound, RateLimit
415
+ - `bulk_archive_workspaces`, `bulk_update_workspaces`: All above + CascadeConfirmation for workspaces with boards
416
+
417
+ #### Board Operations
418
+ - `update_board`, `delete_board`: Permissions, NotFound, RateLimit
419
+ - `bulk_delete_boards`, `bulk_update_boards`: All above + CascadeConfirmation for boards with cards
420
+
421
+ #### Card Operations
422
+ - `delete_card`: NotFound, RateLimit, CascadeConfirmation (if has children/comments/subtasks)
423
+ - `update_card_comment`, `delete_card_comment`: NotFound, RateLimit, Permissions
424
+ - `update_card_subtask`, `delete_card_subtask`: NotFound, RateLimit
425
+ - `bulk_delete_cards`, `bulk_update_cards`: All above + CascadeConfirmation
426
+
427
+ #### Custom Field Operations
428
+ - `create_custom_field`, `update_custom_field`: Validation (name uniqueness, type constraints), RateLimit
429
+ - `delete_custom_field`: Permissions, NotFound, CascadeConfirmation (shows affected boards/cards)
430
+
431
+ ## Development
432
+
433
+ ### Setup Development Environment
434
+
435
+ ```bash
436
+ # Install dependencies
437
+ npm install
438
+
439
+ # Run in development mode
440
+ npm run dev
441
+
442
+ # Watch for changes
443
+ npm run watch
444
+
445
+ # Build for production
446
+ npm run build
447
+
448
+ # Run tests
449
+ npm test
450
+
451
+ # Lint code
452
+ npm run lint
453
+ ```
454
+
455
+ ### Docker Support
456
+
457
+ ```bash
458
+ # Build Docker image
459
+ npm run docker:build
460
+
461
+ # Run with Docker Compose
462
+ npm run docker:up
463
+
464
+ # View logs
465
+ npm run docker:logs
466
+
467
+ # Stop containers
468
+ npm run docker:down
469
+ ```
470
+
471
+ ## Troubleshooting
472
+
473
+ ### Connection Issues
474
+
475
+ The server now includes automatic connection verification during startup. If you encounter connection issues:
476
+
477
+ 1. **Check your environment variables**:
478
+
479
+ ```bash
480
+ echo $BUSINESSMAP_API_URL
481
+ echo $BUSINESSMAP_API_TOKEN
482
+ ```
483
+
484
+ 2. **Test the connection manually**:
485
+
486
+ ```bash
487
+ chmod +x scripts/test-connection.sh
488
+ ./scripts/test-connection.sh
489
+ ```
490
+
491
+ 3. **Common issues**:
492
+ - **Invalid API URL**: Ensure your URL follows the format `https://your-account.kanbanize.com/api/v2`
493
+ - **Invalid API Token**: Verify your token has the necessary permissions
494
+
495
+ ### Startup Process
496
+
497
+ The server now performs the following steps during initialization:
498
+
499
+ 1. **Configuration validation** - Checks all required environment variables
500
+ 2. **API connection verification** - Tests connectivity with up to 3 retry attempts
501
+ 3. **Authentication check** - Verifies API token permissions
502
+ 4. **Server startup** - Starts the MCP server only after successful connection
503
+
504
+ If the connection fails, the server will display detailed error messages and retry automatically.
505
+
506
+ ### Release Process
507
+
508
+ This project uses an automated release process. See [RELEASE_PROCESS.md](docs/RELEASE_PROCESS.md) for detailed documentation.
509
+
510
+ **Quick Start:**
511
+
512
+ ```bash
513
+ # Preview release notes
514
+ npm run preview:release
515
+
516
+ # Publish new version (interactive)
517
+ npm run publish
518
+ ```
519
+
520
+ The release process automatically:
521
+
522
+ - Bumps version (patch/minor/major)
523
+ - Generates release notes from commits
524
+ - Creates GitHub tags and releases
525
+ - Publishes to NPM
526
+
527
+ ### Contributing
528
+
529
+ 1. Follow conventional commit format for better release notes:
530
+
531
+ ```bash
532
+ feat: add new feature
533
+ fix: resolve bug
534
+ docs: update documentation
535
+ refactor: improve code structure
536
+ ```
537
+
538
+ 2. Ensure all tests pass before submitting PR:
539
+
540
+ ```bash
541
+ npm test
542
+ npm run test:npx
543
+ ```
544
+
545
+ ## License
546
+
547
+ MIT
548
+
549
+ ## Support
550
+
551
+ For issues and questions:
552
+
553
+ 1. Check the [Issues](../../issues) page
554
+ 2. Review BusinessMap API documentation
555
+ 3. Verify your environment configuration
556
+ 4. Submit a new issue with detailed information
557
+
558
+ ## Related Projects
559
+
560
+ - [Model Context Protocol](https://modelcontextprotocol.io/) - Official MCP documentation
561
+ - [BusinessMap API Documentation](https://businessmap.io/api) - Official API reference
562
+ - [BusinessMap Demo API](https://demo.kanbanize.com/openapi#/) - Interactive API documentation and testing environment
563
+ - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) - Official MCP SDK