@edicarlos.lds/businessmap-mcp 2.1.1 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -558
- package/dist/client/modules/card-client.d.ts +1 -0
- package/dist/client/modules/card-client.d.ts.map +1 -1
- package/dist/client/modules/card-client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -16
- package/dist/index.js.map +1 -1
- package/dist/schemas/card-schemas.d.ts +3 -0
- package/dist/schemas/card-schemas.d.ts.map +1 -1
- package/dist/schemas/card-schemas.js +5 -0
- package/dist/schemas/card-schemas.js.map +1 -1
- package/dist/server/http.d.ts +6 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +73 -56
- package/dist/server/http.js.map +1 -1
- package/docs/LOGGING.md +169 -0
- package/docs/MCP_CLIENTS.md +215 -0
- package/docs/MIDDLEWARE.md +141 -0
- package/docs/RELEASE_PROCESS.md +146 -0
- package/docs/TOOLS.md +292 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -9,123 +9,60 @@
|
|
|
9
9
|
[](https://modelcontextprotocol.io/)
|
|
10
10
|
[](https://github.com/sponsors/edicarloslds)
|
|
11
11
|
|
|
12
|
-
Model Context Protocol server for BusinessMap
|
|
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
|
-
##
|
|
14
|
+
## What You Get
|
|
15
15
|
|
|
16
|
-
|
|
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
|
-
|
|
23
|
+
See the full catalog in [docs/TOOLS.md](docs/TOOLS.md).
|
|
19
24
|
|
|
20
|
-
|
|
21
|
-
npx @edicarlos.lds/businessmap-mcp
|
|
22
|
-
```
|
|
25
|
+
## Quick Start
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
Run directly with `npx`:
|
|
25
28
|
|
|
26
29
|
```bash
|
|
27
|
-
|
|
30
|
+
npx -y @edicarlos.lds/businessmap-mcp
|
|
28
31
|
```
|
|
29
32
|
|
|
30
|
-
|
|
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
|
-
|
|
52
|
-
|
|
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
|
-
|
|
40
|
+
The server requires Node.js 18 or newer.
|
|
60
41
|
|
|
61
|
-
|
|
62
|
-
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
63
|
-
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
42
|
+
## Required Configuration
|
|
64
43
|
|
|
65
|
-
|
|
44
|
+
Set these environment variables in your MCP client, shell, deployment platform, or local `.env` file:
|
|
66
45
|
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
#### Claude Code
|
|
51
|
+
Optional settings:
|
|
87
52
|
|
|
88
|
-
|
|
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. |
|
|
89
62
|
|
|
90
|
-
|
|
91
|
-
# Add globally (available across all projects)
|
|
92
|
-
claude mcp add --transport stdio --scope user businessmap -- npx -y @edicarlos.lds/businessmap-mcp
|
|
63
|
+
## MCP Client Setup
|
|
93
64
|
|
|
94
|
-
|
|
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,527 +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
|
-
|
|
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
|
-
|
|
84
|
+
## HTTP Mode
|
|
150
85
|
|
|
151
|
-
|
|
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
|
-
```
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
#### Windsurf
|
|
96
|
+
Configure your MCP client with:
|
|
184
97
|
|
|
185
|
-
|
|
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
|
-
|
|
205
|
-
|
|
206
|
-
#### Zed
|
|
102
|
+
For custom authentication, authorization, logging, or rate limiting, see [docs/MIDDLEWARE.md](docs/MIDDLEWARE.md).
|
|
207
103
|
|
|
208
|
-
|
|
104
|
+
## Local Development
|
|
209
105
|
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
-
|
|
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:**
|
|
243
|
-
|
|
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
|
-
2. **Connect your client:**
|
|
253
|
-
|
|
254
|
-
Configure your MCP client to connect to the Streamable HTTP endpoint:
|
|
255
|
-
- **URL**: `http://your-server:3000/mcp`
|
|
256
|
-
|
|
257
|
-
### Manual Setup
|
|
258
|
-
|
|
259
|
-
1. Clone this repository:
|
|
260
|
-
|
|
261
|
-
```bash
|
|
262
|
-
git clone https://github.com/edicarloslds/businessmap-mcp.git
|
|
263
|
-
cd businessmap-mcp
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
2. Install dependencies:
|
|
267
|
-
|
|
268
|
-
```bash
|
|
269
|
-
npm install
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
3. Create a `.env` file with your BusinessMap credentials (for development/testing):
|
|
273
|
-
|
|
274
|
-
```env
|
|
275
|
-
BUSINESSMAP_API_TOKEN=your_token_here
|
|
276
|
-
BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2
|
|
277
|
-
BUSINESSMAP_READ_ONLY_MODE=false
|
|
278
|
-
BUSINESSMAP_DEFAULT_WORKSPACE_ID=1
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
> **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.
|
|
282
|
-
|
|
283
|
-
4. Build the project:
|
|
284
|
-
|
|
285
|
-
```bash
|
|
286
|
-
npm run build
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
5. Start the server:
|
|
290
|
-
|
|
291
|
-
```bash
|
|
292
|
-
npm start
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
## Usage
|
|
296
|
-
|
|
297
|
-
The BusinessMap MCP server provides tools, resources, and prompts for comprehensive project management integration.
|
|
298
|
-
|
|
299
|
-
### Tools
|
|
112
|
+
Create a local `.env` file:
|
|
300
113
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
#### Board Management
|
|
308
|
-
|
|
309
|
-
- `list_boards` - List boards in workspace(s)
|
|
310
|
-
- `search_board` - Search for boards by ID or name
|
|
311
|
-
- `get_current_board_structure` - Get the complete current structure of a board including workflows, columns, lanes, and configurations
|
|
312
|
-
- `create_board` - Create new board (if not in read-only mode)
|
|
313
|
-
- `get_columns` - Get all columns for a board
|
|
314
|
-
- `get_lanes` - Get all lanes for a board
|
|
315
|
-
- `get_lane` - Get details of a specific lane/swimlane
|
|
316
|
-
- `create_lane` - Create new lane/swimlane (if not in read-only mode)
|
|
317
|
-
- `create_column` - Create a new column on a board (supports main columns and sub-columns)
|
|
318
|
-
- `update_column` - Update the details of a specific column on a board
|
|
319
|
-
- `delete_column` - Delete a column from a board
|
|
320
|
-
|
|
321
|
-
#### Card Management
|
|
322
|
-
|
|
323
|
-
##### Basic Card Operations
|
|
324
|
-
|
|
325
|
-
- `list_cards` - Get cards from a board with optional filters
|
|
326
|
-
- `get_card` - Get detailed card information
|
|
327
|
-
- `get_card_size` - Get the size/points of a specific card
|
|
328
|
-
- `get_card_types` - Get all available card types
|
|
329
|
-
- `create_card` - Create new card
|
|
330
|
-
- `move_card` - Move card to different column/swimlane
|
|
331
|
-
- `update_card` - Update card properties
|
|
332
|
-
- `set_card_size` - Set the size/points of a specific card
|
|
333
|
-
- `delete_card` - Permanently delete a card (irreversible)
|
|
334
|
-
|
|
335
|
-
##### Card Comments
|
|
336
|
-
|
|
337
|
-
- `get_card_comments` - Get all comments for a specific card
|
|
338
|
-
- `get_card_comment` - Get details of a specific comment from a card
|
|
339
|
-
- `create_comment` - Add a new comment to a card
|
|
340
|
-
- `update_comment` - Update the text of an existing comment on a card
|
|
341
|
-
- `delete_comment` - Delete a comment from a card
|
|
342
|
-
|
|
343
|
-
##### Card Custom Fields
|
|
344
|
-
|
|
345
|
-
- `get_card_custom_fields` - Get all custom fields for a specific card
|
|
346
|
-
|
|
347
|
-
##### Card Outcomes & History
|
|
348
|
-
|
|
349
|
-
- `get_card_outcomes` - Get all outcomes for a specific card
|
|
350
|
-
- `get_card_history` - Get the history of a specific card outcome
|
|
351
|
-
|
|
352
|
-
##### Card Relationships
|
|
353
|
-
|
|
354
|
-
- `get_card_linked_cards` - Get all linked cards for a specific card
|
|
355
|
-
|
|
356
|
-
##### Card Subtasks
|
|
357
|
-
|
|
358
|
-
- `get_card_subtasks` - Get all subtasks for a specific card
|
|
359
|
-
- `get_card_subtask` - Get details of a specific subtask from a card
|
|
360
|
-
- `create_card_subtask` - Create a new subtask for a card
|
|
361
|
-
|
|
362
|
-
##### Card Parent Relationships
|
|
363
|
-
|
|
364
|
-
- `get_card_parents` - Get a list of parent cards for a specific card
|
|
365
|
-
- `get_card_parent` - Check if a card is a parent of a given card
|
|
366
|
-
- `add_card_parent` - Make a card a parent of a given card
|
|
367
|
-
- `remove_card_parent` - Remove the link between a child card and a parent card
|
|
368
|
-
- `get_card_parent_graph` - Get a list of parent cards including their parent cards too
|
|
369
|
-
- `get_card_children` - Get a list of child cards of a specified parent card
|
|
370
|
-
|
|
371
|
-
##### Card Blocking
|
|
372
|
-
|
|
373
|
-
- `block_card` - Block a card and set a reason/comment explaining why it is blocked
|
|
374
|
-
- `unblock_card` - Unblock a card by removing its block reason
|
|
375
|
-
|
|
376
|
-
##### Card Tags
|
|
377
|
-
|
|
378
|
-
- `create_tag` - Create a new tag in the workspace
|
|
379
|
-
- `add_tag_to_card` - Add an existing tag to a card
|
|
380
|
-
- `remove_tag_from_card` - Remove a tag from a card
|
|
381
|
-
|
|
382
|
-
##### Card Stickers
|
|
383
|
-
|
|
384
|
-
- `add_sticker_to_card` - Add a sticker to a card
|
|
385
|
-
- `remove_sticker_from_card` - Remove a sticker from a card using the sticker-card association ID
|
|
386
|
-
|
|
387
|
-
##### Card Predecessors
|
|
388
|
-
|
|
389
|
-
- `add_predecessor` - Establish or update a predecessor-successor relationship between two cards
|
|
390
|
-
- `remove_predecessor` - Remove the predecessor-successor relationship between two cards
|
|
391
|
-
|
|
392
|
-
#### Custom Field Management
|
|
393
|
-
|
|
394
|
-
- `get_custom_field` - Get details of a specific custom field by ID
|
|
395
|
-
|
|
396
|
-
#### Workflow & Cycle Time Analysis
|
|
397
|
-
|
|
398
|
-
- `get_workflow_cycle_time_columns` - Get workflow's cycle time columns
|
|
399
|
-
- `get_workflow_effective_cycle_time_columns` - Get workflow's effective cycle time columns
|
|
400
|
-
|
|
401
|
-
#### User Management
|
|
402
|
-
|
|
403
|
-
- `list_users` - Get all users
|
|
404
|
-
- `get_user` - Get user details
|
|
405
|
-
- `get_current_user` - Get current logged user details
|
|
406
|
-
- `invite_user` - Add and invite a new user by email
|
|
407
|
-
|
|
408
|
-
#### System
|
|
409
|
-
|
|
410
|
-
- `health_check` - Check API connection
|
|
411
|
-
- `get_api_info` - Get API information
|
|
412
|
-
|
|
413
|
-
### Resources
|
|
414
|
-
|
|
415
|
-
The server exposes structured data resources accessible via URI:
|
|
416
|
-
|
|
417
|
-
| URI | Description |
|
|
418
|
-
|-----|-------------|
|
|
419
|
-
| `businessmap://workspaces` | List all workspaces |
|
|
420
|
-
| `businessmap://boards` | List all boards |
|
|
421
|
-
| `businessmap://boards/{board_id}` | Get details of a specific board |
|
|
422
|
-
| `businessmap://boards/{board_id}/cards` | List all cards for a specific board |
|
|
423
|
-
| `businessmap://cards/{card_id}` | Get details of a specific card |
|
|
424
|
-
|
|
425
|
-
### Prompts
|
|
426
|
-
|
|
427
|
-
The server provides guided prompts for common AI-assisted workflows:
|
|
428
|
-
|
|
429
|
-
| Prompt | Description |
|
|
430
|
-
|--------|-------------|
|
|
431
|
-
| `analyze-board-performance` | Analyze a board's performance: flow efficiency, bottlenecks, cycle time, and workload distribution |
|
|
432
|
-
| `generate-board-report` | Generate a comprehensive status report for a board, including cards summary and highlights |
|
|
433
|
-
| `create-card-from-description` | Guide the creation of a well-structured card from a natural language description |
|
|
434
|
-
| `workspace-status-overview` | Generate a high-level status overview of a workspace, including all boards and their key metrics |
|
|
435
|
-
|
|
436
|
-
## Tool Summary
|
|
437
|
-
|
|
438
|
-
The BusinessMap MCP server provides **56 tools**, **5 resources**, and **4 prompts**:
|
|
439
|
-
|
|
440
|
-
### Tools by Category
|
|
441
|
-
|
|
442
|
-
- **Workspace Management**: 3 tools
|
|
443
|
-
- **Board Management**: 11 tools
|
|
444
|
-
- **Card Management**: 36 tools (organized in 9 subcategories)
|
|
445
|
-
- **Custom Field Management**: 1 tool
|
|
446
|
-
- **Workflow & Cycle Time Analysis**: 2 tools
|
|
447
|
-
- **User Management**: 4 tools
|
|
448
|
-
- **System**: 2 tools (1 utility tool)
|
|
449
|
-
|
|
450
|
-
## Key Features
|
|
451
|
-
|
|
452
|
-
### Advanced Card Management
|
|
453
|
-
|
|
454
|
-
- **Complete CRUD operations** for cards, subtasks, and relationships
|
|
455
|
-
- **Parent-child card hierarchies** with full graph traversal
|
|
456
|
-
- **Outcome tracking and history** for detailed progress monitoring
|
|
457
|
-
- **Linked cards management** for cross-project dependencies
|
|
458
|
-
- **Custom fields and types** support for flexible workflows
|
|
459
|
-
- **Card blocking/unblocking** with reason tracking
|
|
460
|
-
- **Tags and stickers** for visual card organization
|
|
461
|
-
- **Predecessor-successor relationships** for dependency management
|
|
462
|
-
- **Comment management** (create, update, delete) for collaboration
|
|
463
|
-
|
|
464
|
-
### Comprehensive Board Operations
|
|
465
|
-
|
|
466
|
-
- **Multi-workspace board management** with search capabilities
|
|
467
|
-
- **Full column management** (create, update, delete) with section and sub-column support
|
|
468
|
-
- **Lane (swimlane) operations** for workflow customization
|
|
469
|
-
- **Board structure analysis** with detailed metadata
|
|
470
|
-
|
|
471
|
-
### Resources & Prompts
|
|
472
|
-
|
|
473
|
-
- **5 structured data resources** for direct URI-based data access
|
|
474
|
-
- **4 guided prompts** for common AI-assisted workflows (board analysis, reporting, card creation, workspace overview)
|
|
475
|
-
|
|
476
|
-
### Workflow Intelligence
|
|
477
|
-
|
|
478
|
-
- **Cycle time analysis** with configurable column sets
|
|
479
|
-
- **Effective cycle time tracking** for performance optimization
|
|
480
|
-
- **Custom field integration** for enhanced reporting
|
|
481
|
-
|
|
482
|
-
### Enterprise Features
|
|
483
|
-
|
|
484
|
-
- **Read-only mode** for safe data exploration
|
|
485
|
-
- **Robust error handling** with detailed error messages
|
|
486
|
-
- **Automatic connection verification** with retry logic
|
|
487
|
-
- **Docker support** for containerized deployments
|
|
488
|
-
- **Structured logging** with multiple log levels (DEBUG, INFO, WARN, ERROR)
|
|
489
|
-
|
|
490
|
-
## Logging
|
|
491
|
-
|
|
492
|
-
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:
|
|
493
|
-
|
|
494
|
-
- `0` (DEBUG): All messages including detailed debugging information
|
|
495
|
-
- `1` (INFO): Informational messages, warnings, and errors (default)
|
|
496
|
-
- `2` (WARN): Only warnings and errors
|
|
497
|
-
- `3` (ERROR): Only error messages
|
|
498
|
-
- `4` (NONE): Disable all logging
|
|
499
|
-
|
|
500
|
-
Example configuration with custom log level:
|
|
501
|
-
|
|
502
|
-
```json
|
|
503
|
-
{
|
|
504
|
-
"mcpServers": {
|
|
505
|
-
"Businessmap": {
|
|
506
|
-
"command": "npx",
|
|
507
|
-
"args": ["-y", "@edicarlos.lds/businessmap-mcp"],
|
|
508
|
-
"env": {
|
|
509
|
-
"BUSINESSMAP_API_TOKEN": "your_token_here",
|
|
510
|
-
"BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
|
|
511
|
-
"LOG_LEVEL": "0"
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
}
|
|
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
|
|
516
119
|
```
|
|
517
120
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
## Development
|
|
521
|
-
|
|
522
|
-
### Setup Development Environment
|
|
121
|
+
Useful commands:
|
|
523
122
|
|
|
524
123
|
```bash
|
|
525
|
-
#
|
|
526
|
-
npm
|
|
527
|
-
|
|
528
|
-
# Run
|
|
529
|
-
npm run
|
|
530
|
-
|
|
531
|
-
# Watch for changes
|
|
532
|
-
npm run watch
|
|
533
|
-
|
|
534
|
-
# Build for production
|
|
535
|
-
npm run build
|
|
536
|
-
|
|
537
|
-
# Run tests
|
|
538
|
-
npm test
|
|
539
|
-
|
|
540
|
-
# Lint code
|
|
541
|
-
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
|
|
542
130
|
```
|
|
543
131
|
|
|
544
|
-
|
|
132
|
+
## Docker
|
|
545
133
|
|
|
546
134
|
```bash
|
|
547
|
-
# Build Docker image
|
|
548
135
|
npm run docker:build
|
|
549
|
-
|
|
550
|
-
# Run with Docker Compose
|
|
551
136
|
npm run docker:up
|
|
552
|
-
|
|
553
|
-
# View logs
|
|
554
137
|
npm run docker:logs
|
|
555
|
-
|
|
556
|
-
# Stop containers
|
|
557
138
|
npm run docker:down
|
|
558
139
|
```
|
|
559
140
|
|
|
560
141
|
## Troubleshooting
|
|
561
142
|
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
The server now includes automatic connection verification during startup. If you encounter connection issues:
|
|
565
|
-
|
|
566
|
-
1. **Check your environment variables**:
|
|
567
|
-
|
|
568
|
-
```bash
|
|
569
|
-
echo $BUSINESSMAP_API_URL
|
|
570
|
-
echo $BUSINESSMAP_API_TOKEN
|
|
571
|
-
```
|
|
143
|
+
If startup fails, check the two required environment variables first:
|
|
572
144
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
./scripts/test-connection.sh
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
3. **Common issues**:
|
|
581
|
-
- **Invalid API URL**: Ensure your URL follows the format `https://your-account.kanbanize.com/api/v2`
|
|
582
|
-
- **Invalid API Token**: Verify your token has the necessary permissions
|
|
145
|
+
```bash
|
|
146
|
+
echo $BUSINESSMAP_API_URL
|
|
147
|
+
echo $BUSINESSMAP_API_TOKEN
|
|
148
|
+
```
|
|
583
149
|
|
|
584
|
-
|
|
150
|
+
Then test the BusinessMap connection:
|
|
585
151
|
|
|
586
|
-
|
|
152
|
+
```bash
|
|
153
|
+
chmod +x scripts/test-connection.sh
|
|
154
|
+
./scripts/test-connection.sh
|
|
155
|
+
```
|
|
587
156
|
|
|
588
|
-
|
|
589
|
-
2. **API connection verification** - Tests connectivity with up to 3 retry attempts
|
|
590
|
-
3. **Authentication check** - Verifies API token permissions
|
|
591
|
-
4. **Server startup** - Starts the MCP server only after successful connection
|
|
157
|
+
Common causes:
|
|
592
158
|
|
|
593
|
-
|
|
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
|
|
594
162
|
|
|
595
|
-
|
|
163
|
+
Logging details are documented in [docs/LOGGING.md](docs/LOGGING.md).
|
|
596
164
|
|
|
597
|
-
|
|
165
|
+
## Project Docs
|
|
598
166
|
|
|
599
|
-
|
|
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)
|
|
600
173
|
|
|
601
|
-
|
|
174
|
+
## Contributing
|
|
602
175
|
|
|
603
|
-
|
|
176
|
+
Use conventional commits when possible:
|
|
604
177
|
|
|
605
178
|
```bash
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
# Publish to NPM and create GitHub release (interactive flows)
|
|
611
|
-
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
|
|
612
183
|
```
|
|
613
184
|
|
|
614
|
-
|
|
185
|
+
Before opening a pull request:
|
|
615
186
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
187
|
+
```bash
|
|
188
|
+
npm test
|
|
189
|
+
npm run test:npx
|
|
190
|
+
```
|
|
620
191
|
|
|
621
|
-
|
|
192
|
+
## Support
|
|
622
193
|
|
|
623
|
-
|
|
194
|
+
For issues and questions:
|
|
624
195
|
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
refactor: improve code structure
|
|
630
|
-
```
|
|
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
|
|
631
200
|
|
|
632
|
-
|
|
201
|
+
## Related Projects
|
|
633
202
|
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
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)
|
|
638
207
|
|
|
639
208
|
## Sponsors
|
|
640
209
|
|
|
641
|
-
If
|
|
210
|
+
If this project helps you, consider supporting it through [GitHub Sponsors](https://github.com/sponsors/edicarloslds).
|
|
642
211
|
|
|
643
212
|
## License
|
|
644
213
|
|
|
645
214
|
MIT
|
|
646
|
-
|
|
647
|
-
## Support
|
|
648
|
-
|
|
649
|
-
For issues and questions:
|
|
650
|
-
|
|
651
|
-
1. Check the [Issues](../../issues) page
|
|
652
|
-
2. Review BusinessMap API documentation
|
|
653
|
-
3. Verify your environment configuration
|
|
654
|
-
4. Submit a new issue with detailed information
|
|
655
|
-
|
|
656
|
-
## Related Projects
|
|
657
|
-
|
|
658
|
-
- [Model Context Protocol](https://modelcontextprotocol.io/) - Official MCP documentation
|
|
659
|
-
- [BusinessMap API Documentation](https://businessmap.io/api) - Official API reference
|
|
660
|
-
- [BusinessMap Demo API](https://demo.kanbanize.com/openapi#/) - Interactive API documentation and testing environment
|
|
661
|
-
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) - Official MCP SDK
|