@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.
- package/LICENSE +21 -0
- package/README.md +563 -0
- package/dist/client/businessmap-client.d.ts +160 -0
- package/dist/client/businessmap-client.d.ts.map +1 -0
- package/dist/client/businessmap-client.js +325 -0
- package/dist/client/businessmap-client.js.map +1 -0
- package/dist/client/modules/base-client.d.ts +34 -0
- package/dist/client/modules/base-client.d.ts.map +1 -0
- package/dist/client/modules/base-client.js +20 -0
- package/dist/client/modules/base-client.js.map +1 -0
- package/dist/client/modules/board-client.d.ts +82 -0
- package/dist/client/modules/board-client.d.ts.map +1 -0
- package/dist/client/modules/board-client.js +137 -0
- package/dist/client/modules/board-client.js.map +1 -0
- package/dist/client/modules/card-client.d.ts +201 -0
- package/dist/client/modules/card-client.d.ts.map +1 -0
- package/dist/client/modules/card-client.js +251 -0
- package/dist/client/modules/card-client.js.map +1 -0
- package/dist/client/modules/custom-field-client.d.ts +62 -0
- package/dist/client/modules/custom-field-client.d.ts.map +1 -0
- package/dist/client/modules/custom-field-client.js +47 -0
- package/dist/client/modules/custom-field-client.js.map +1 -0
- package/dist/client/modules/index.d.ts +9 -0
- package/dist/client/modules/index.d.ts.map +1 -0
- package/dist/client/modules/index.js +9 -0
- package/dist/client/modules/index.js.map +1 -0
- package/dist/client/modules/user-client.d.ts +17 -0
- package/dist/client/modules/user-client.d.ts.map +1 -0
- package/dist/client/modules/user-client.js +25 -0
- package/dist/client/modules/user-client.js.map +1 -0
- package/dist/client/modules/utility-client.d.ts +12 -0
- package/dist/client/modules/utility-client.d.ts.map +1 -0
- package/dist/client/modules/utility-client.js +51 -0
- package/dist/client/modules/utility-client.js.map +1 -0
- package/dist/client/modules/workflow-client.d.ts +13 -0
- package/dist/client/modules/workflow-client.d.ts.map +1 -0
- package/dist/client/modules/workflow-client.js +18 -0
- package/dist/client/modules/workflow-client.js.map +1 -0
- package/dist/client/modules/workspace-client.d.ts +47 -0
- package/dist/client/modules/workspace-client.d.ts.map +1 -0
- package/dist/client/modules/workspace-client.js +88 -0
- package/dist/client/modules/workspace-client.js.map +1 -0
- package/dist/config/environment.d.ts +19 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +65 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/board-schemas.d.ts +133 -0
- package/dist/schemas/board-schemas.d.ts.map +1 -0
- package/dist/schemas/board-schemas.js +95 -0
- package/dist/schemas/board-schemas.js.map +1 -0
- package/dist/schemas/bulk-schemas.d.ts +154 -0
- package/dist/schemas/bulk-schemas.d.ts.map +1 -0
- package/dist/schemas/bulk-schemas.js +69 -0
- package/dist/schemas/bulk-schemas.js.map +1 -0
- package/dist/schemas/card-schemas.d.ts +1309 -0
- package/dist/schemas/card-schemas.d.ts.map +1 -0
- package/dist/schemas/card-schemas.js +518 -0
- package/dist/schemas/card-schemas.js.map +1 -0
- package/dist/schemas/common-schemas.d.ts +47 -0
- package/dist/schemas/common-schemas.d.ts.map +1 -0
- package/dist/schemas/common-schemas.js +53 -0
- package/dist/schemas/common-schemas.js.map +1 -0
- package/dist/schemas/custom-field-schemas.d.ts +155 -0
- package/dist/schemas/custom-field-schemas.d.ts.map +1 -0
- package/dist/schemas/custom-field-schemas.js +78 -0
- package/dist/schemas/custom-field-schemas.js.map +1 -0
- package/dist/schemas/index.d.ts +9 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +10 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/user-schemas.d.ts +11 -0
- package/dist/schemas/user-schemas.d.ts.map +1 -0
- package/dist/schemas/user-schemas.js +10 -0
- package/dist/schemas/user-schemas.js.map +1 -0
- package/dist/schemas/utility-schemas.d.ts +4 -0
- package/dist/schemas/utility-schemas.d.ts.map +1 -0
- package/dist/schemas/utility-schemas.js +6 -0
- package/dist/schemas/utility-schemas.js.map +1 -0
- package/dist/schemas/workflow-schemas.d.ts +22 -0
- package/dist/schemas/workflow-schemas.d.ts.map +1 -0
- package/dist/schemas/workflow-schemas.js +12 -0
- package/dist/schemas/workflow-schemas.js.map +1 -0
- package/dist/schemas/workspace-schemas.d.ts +40 -0
- package/dist/schemas/workspace-schemas.d.ts.map +1 -0
- package/dist/schemas/workspace-schemas.js +23 -0
- package/dist/schemas/workspace-schemas.js.map +1 -0
- package/dist/server/mcp-server.d.ts +14 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/mcp-server.js +54 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/server/tools/base-tool.d.ts +34 -0
- package/dist/server/tools/base-tool.d.ts.map +1 -0
- package/dist/server/tools/base-tool.js +30 -0
- package/dist/server/tools/base-tool.js.map +1 -0
- package/dist/server/tools/board-tools.d.ts +25 -0
- package/dist/server/tools/board-tools.d.ts.map +1 -0
- package/dist/server/tools/board-tools.js +347 -0
- package/dist/server/tools/board-tools.js.map +1 -0
- package/dist/server/tools/card-tools.d.ts +33 -0
- package/dist/server/tools/card-tools.d.ts.map +1 -0
- package/dist/server/tools/card-tools.js +543 -0
- package/dist/server/tools/card-tools.js.map +1 -0
- package/dist/server/tools/custom-field-tools.d.ts +13 -0
- package/dist/server/tools/custom-field-tools.d.ts.map +1 -0
- package/dist/server/tools/custom-field-tools.js +181 -0
- package/dist/server/tools/custom-field-tools.js.map +1 -0
- package/dist/server/tools/index.d.ts +9 -0
- package/dist/server/tools/index.d.ts.map +1 -0
- package/dist/server/tools/index.js +9 -0
- package/dist/server/tools/index.js.map +1 -0
- package/dist/server/tools/user-tools.d.ts +10 -0
- package/dist/server/tools/user-tools.d.ts.map +1 -0
- package/dist/server/tools/user-tools.js +55 -0
- package/dist/server/tools/user-tools.js.map +1 -0
- package/dist/server/tools/utility-tools.d.ts +9 -0
- package/dist/server/tools/utility-tools.d.ts.map +1 -0
- package/dist/server/tools/utility-tools.js +46 -0
- package/dist/server/tools/utility-tools.js.map +1 -0
- package/dist/server/tools/workflow-tools.d.ts +9 -0
- package/dist/server/tools/workflow-tools.d.ts.map +1 -0
- package/dist/server/tools/workflow-tools.js +55 -0
- package/dist/server/tools/workflow-tools.js.map +1 -0
- package/dist/server/tools/workspace-tools.d.ts +14 -0
- package/dist/server/tools/workspace-tools.d.ts.map +1 -0
- package/dist/server/tools/workspace-tools.js +179 -0
- package/dist/server/tools/workspace-tools.js.map +1 -0
- package/dist/services/confirmation-builder.d.ts +60 -0
- package/dist/services/confirmation-builder.d.ts.map +1 -0
- package/dist/services/confirmation-builder.js +170 -0
- package/dist/services/confirmation-builder.js.map +1 -0
- package/dist/services/dependency-analyzer.d.ts +90 -0
- package/dist/services/dependency-analyzer.d.ts.map +1 -0
- package/dist/services/dependency-analyzer.js +220 -0
- package/dist/services/dependency-analyzer.js.map +1 -0
- package/dist/types/base.d.ts +22 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +3 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/board.d.ts +129 -0
- package/dist/types/board.d.ts.map +1 -0
- package/dist/types/board.js +3 -0
- package/dist/types/board.js.map +1 -0
- package/dist/types/card.d.ts +414 -0
- package/dist/types/card.d.ts.map +1 -0
- package/dist/types/card.js +3 -0
- package/dist/types/card.js.map +1 -0
- package/dist/types/custom-field.d.ts +17 -0
- package/dist/types/custom-field.d.ts.map +1 -0
- package/dist/types/custom-field.js +3 -0
- package/dist/types/custom-field.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lane.d.ts +16 -0
- package/dist/types/lane.d.ts.map +1 -0
- package/dist/types/lane.js +3 -0
- package/dist/types/lane.js.map +1 -0
- package/dist/types/user.d.ts +32 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +3 -0
- package/dist/types/user.js.map +1 -0
- package/dist/types/workflow.d.ts +8 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +2 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/types/workspace.d.ts +11 -0
- package/dist/types/workspace.d.ts.map +1 -0
- package/dist/types/workspace.js +3 -0
- package/dist/types/workspace.js.map +1 -0
- 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
|
+
[](https://www.npmjs.com/package/@edicarlos.lds/businessmap-mcp)
|
|
4
|
+
[](https://github.com/edicarloslds/businessmap-mcp/releases)
|
|
5
|
+
[](https://www.npmjs.com/package/@edicarlos.lds/businessmap-mcp)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](https://www.typescriptlang.org/)
|
|
9
|
+
[](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
|