@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 CHANGED
@@ -9,123 +9,60 @@
9
9
  [![MCP](https://img.shields.io/badge/Model%20Context%20Protocol-000000?logo=anthropic&logoColor=white)](https://modelcontextprotocol.io/)
10
10
  [![GitHub Sponsors](https://img.shields.io/github/sponsors/edicarloslds)](https://github.com/sponsors/edicarloslds)
11
11
 
12
- Model Context Protocol server for BusinessMap (Kanbanize) integration. Provides comprehensive access to BusinessMap's project management features through **56 tools**, **5 resources**, and **4 guided prompts** — covering workspaces, boards, cards, subtasks, parent-child relationships, outcomes, comments, tags, stickers, predecessors, custom fields, and more.
12
+ Model Context Protocol (MCP) server for BusinessMap/Kanbanize. It gives AI clients access to BusinessMap workspaces, boards, cards, users, custom fields, workflow cycle-time data, resources, and guided prompts.
13
13
 
14
- ## Installation
14
+ ## What You Get
15
15
 
16
- ### Via NPX (Recommended)
16
+ - 59 MCP tools for workspaces, boards, cards, users, custom fields, workflow analysis, and health checks
17
+ - 5 MCP resources for direct workspace, board, and card reads
18
+ - 4 guided prompts for board analysis, reporting, card creation, and workspace summaries
19
+ - Optional read-only mode for safer exploration
20
+ - `stdio` transport for local MCP clients and HTTP transport for remote usage
21
+ - Docker, structured logging, and programmatic middleware support
17
22
 
18
- You can run the BusinessMap MCP server directly using npx without installing it globally:
23
+ See the full catalog in [docs/TOOLS.md](docs/TOOLS.md).
19
24
 
20
- ```bash
21
- npx @edicarlos.lds/businessmap-mcp
22
- ```
25
+ ## Quick Start
23
26
 
24
- ### Global Installation
27
+ Run directly with `npx`:
25
28
 
26
29
  ```bash
27
- npm install -g @edicarlos.lds/businessmap-mcp
30
+ npx -y @edicarlos.lds/businessmap-mcp
28
31
  ```
29
32
 
30
- ## Configuration
31
-
32
- ### Environment Variables
33
-
34
- The server requires the following environment variables:
35
-
36
- - `BUSINESSMAP_API_TOKEN`: Your BusinessMap API token
37
- - `BUSINESSMAP_API_URL`: Your BusinessMap API URL (e.g., `https://your-account.kanbanize.com/api/v2`)
38
- - `BUSINESSMAP_READ_ONLY_MODE`: Set to `"true"` for read-only mode, `"false"` to allow modifications (optional, defaults to `"false"`)
39
- - `BUSINESSMAP_DEFAULT_WORKSPACE_ID`: Set the BusinessMap workspace ID (optional)
40
- - `LOG_LEVEL`: Set logging verbosity - `0` (DEBUG), `1` (INFO), `2` (WARN), `3` (ERROR), `4` (NONE) (optional, defaults to `1`)
41
- - `PORT`: Server port for HTTP mode (optional, defaults to `3000`)
42
- - `TRANSPORT`: Set to `stdio` (default) or `http`
43
- - `ALLOWED_ORIGINS`: Comma-separated CORS origin allowlist for HTTP mode (optional, defaults to `http://localhost`)
44
- - `ALLOWED_HOSTS`: Comma-separated Host header allowlist for HTTP mode DNS rebinding protection (optional)
45
-
46
- ### Local Usage with .env
47
-
48
- When running locally (e.g., via `npx` or `npm start`), the server will automatically look for a `.env` file in your current working directory.
33
+ Or install globally:
49
34
 
50
35
  ```bash
51
- # Create a .env file
52
- echo "BUSINESSMAP_API_TOKEN=your_token" > .env
53
- echo "BUSINESSMAP_API_URL=https://..." >> .env
54
-
55
- # Run the server
56
- npx @edicarlos.lds/businessmap-mcp
36
+ npm install -g @edicarlos.lds/businessmap-mcp
37
+ businessmap-mcp
57
38
  ```
58
39
 
59
- #### Claude Desktop
40
+ The server requires Node.js 18 or newer.
60
41
 
61
- Config file location:
62
- - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
63
- - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
42
+ ## Required Configuration
64
43
 
65
- Open it via **Settings Developer Edit Config**, then add:
44
+ Set these environment variables in your MCP client, shell, deployment platform, or local `.env` file:
66
45
 
67
- ```json
68
- {
69
- "mcpServers": {
70
- "businessmap": {
71
- "command": "npx",
72
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
73
- "env": {
74
- "BUSINESSMAP_API_TOKEN": "your_token_here",
75
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
76
- "BUSINESSMAP_READ_ONLY_MODE": "false",
77
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
78
- }
79
- }
80
- }
81
- }
46
+ ```env
47
+ BUSINESSMAP_API_TOKEN=your_token_here
48
+ BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2
82
49
  ```
83
50
 
84
- > **Note**: Fully quit and restart Claude Desktop after editing (on macOS, quit from the Dock; on Windows, exit from the system tray). JSON does not support comments — remove any before saving.
85
-
86
- #### Claude Code
51
+ Optional settings:
87
52
 
88
- Run the following command to add the server globally or per-project:
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
- ```bash
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
- # Add to current project only (stored in ~/.claude.json)
95
- claude mcp add --transport stdio businessmap -- npx -y @edicarlos.lds/businessmap-mcp
96
- ```
97
-
98
- To pass environment variables:
99
-
100
- ```bash
101
- claude mcp add --transport stdio \
102
- --env BUSINESSMAP_API_TOKEN=your_token_here \
103
- --env BUSINESSMAP_API_URL=https://your-account.kanbanize.com/api/v2 \
104
- businessmap -- npx -y @edicarlos.lds/businessmap-mcp
105
- ```
106
-
107
- Alternatively, commit a `.mcp.json` file to your project root to share it with your team:
108
-
109
- ```json
110
- {
111
- "mcpServers": {
112
- "businessmap": {
113
- "command": "npx",
114
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
115
- "env": {
116
- "BUSINESSMAP_API_TOKEN": "${BUSINESSMAP_API_TOKEN}",
117
- "BUSINESSMAP_API_URL": "${BUSINESSMAP_API_URL}"
118
- }
119
- }
120
- }
121
- }
122
- ```
123
-
124
- > **Tip**: Use environment variable expansion (`${VAR}`) in `.mcp.json` to avoid hardcoding secrets in source control.
125
-
126
- #### Cursor
127
-
128
- Create or edit `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` at the project root (project-specific):
65
+ Most MCP clients need the same command and environment variables:
129
66
 
130
67
  ```json
131
68
  {
@@ -135,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
- You can also manage servers via **Settings Features MCP** in the Cursor UI.
82
+ Client-specific examples for Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Zed, and other MCP clients are in [docs/MCP_CLIENTS.md](docs/MCP_CLIENTS.md).
148
83
 
149
- #### VS Code
84
+ ## HTTP Mode
150
85
 
151
- VS Code uses `"servers"` as the top-level key (not `"mcpServers"`). Create or edit `.vscode/mcp.json` in your project root (workspace-scoped, safe to commit), or the user-level config at:
152
- - **macOS**: `~/Library/Application Support/Code/User/mcp.json`
153
- - **Windows**: `%APPDATA%\Code\User\mcp.json`
86
+ Use HTTP mode when deploying the server remotely or when your client supports Streamable HTTP:
154
87
 
155
- ```json
156
- {
157
- "inputs": [
158
- {
159
- "type": "promptString",
160
- "id": "businessmap-token",
161
- "description": "BusinessMap API Token",
162
- "password": true
163
- }
164
- ],
165
- "servers": {
166
- "businessmap": {
167
- "type": "stdio",
168
- "command": "npx",
169
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
170
- "env": {
171
- "BUSINESSMAP_API_TOKEN": "${input:businessmap-token}",
172
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
173
- "BUSINESSMAP_READ_ONLY_MODE": "false",
174
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
175
- }
176
- }
177
- }
178
- }
88
+ ```bash
89
+ TRANSPORT=http \
90
+ PORT=3000 \
91
+ ALLOWED_ORIGINS=https://your-client.example.com \
92
+ ALLOWED_HOSTS=your-server.example.com \
93
+ npm start
179
94
  ```
180
95
 
181
- > **Note**: The `inputs` block lets VS Code prompt you for secrets at runtime instead of hardcoding them. Requires the GitHub Copilot Chat extension. Add via Command Palette: `MCP: Add Server`.
182
-
183
- #### Windsurf
96
+ Configure your MCP client with:
184
97
 
185
- Edit `~/.codeium/windsurf/mcp_config.json` (open from the Cascade panel's MCPs icon → **Configure**):
186
-
187
- ```json
188
- {
189
- "mcpServers": {
190
- "businessmap": {
191
- "command": "npx",
192
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
193
- "env": {
194
- "BUSINESSMAP_API_TOKEN": "your_token_here",
195
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
196
- "BUSINESSMAP_READ_ONLY_MODE": "false",
197
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
198
- }
199
- }
200
- }
201
- }
98
+ ```text
99
+ http://your-server:3000/mcp
202
100
  ```
203
101
 
204
- > **Tip**: Windsurf supports `${env:VARIABLE_NAME}` syntax inside `env` values to reference host environment variables.
205
-
206
- #### Zed
102
+ For custom authentication, authorization, logging, or rate limiting, see [docs/MIDDLEWARE.md](docs/MIDDLEWARE.md).
207
103
 
208
- MCP servers are configured inside Zed's main settings file (`~/.config/zed/settings.json`) under the `context_servers` key. Open it via **Zed → Settings** or `Cmd+,`:
104
+ ## Local Development
209
105
 
210
- ```json
211
- {
212
- "context_servers": {
213
- "businessmap": {
214
- "source": "custom",
215
- "command": "npx",
216
- "args": ["-y", "@edicarlos.lds/businessmap-mcp"],
217
- "env": {
218
- "BUSINESSMAP_API_TOKEN": "your_token_here",
219
- "BUSINESSMAP_API_URL": "https://your-account.kanbanize.com/api/v2",
220
- "BUSINESSMAP_READ_ONLY_MODE": "false",
221
- "BUSINESSMAP_DEFAULT_WORKSPACE_ID": "1"
222
- }
223
- }
224
- }
225
- }
106
+ ```bash
107
+ git clone https://github.com/edicarloslds/businessmap-mcp.git
108
+ cd businessmap-mcp
109
+ npm install
226
110
  ```
227
111
 
228
- You can also add servers via the Agent Panel's Settings view (**Add Custom Server**). A green indicator dot in the Agent Panel confirms the server is running.
229
-
230
- #### Other MCP Clients
231
-
232
- For any other MCP-compatible client, configure a `stdio` server with:
233
-
234
- - **Command**: `npx -y @edicarlos.lds/businessmap-mcp`
235
- - **Required env vars**: `BUSINESSMAP_API_TOKEN`, `BUSINESSMAP_API_URL`
236
- - **Optional env vars**: `BUSINESSMAP_READ_ONLY_MODE`, `BUSINESSMAP_DEFAULT_WORKSPACE_ID`, `LOG_LEVEL`
237
-
238
- ### Remote Usage (Streamable HTTP)
239
-
240
- You can run the server as a remote MCP endpoint over Streamable HTTP. This is useful for deploying to cloud providers or using clients that support remote MCP connections.
241
-
242
- 1. **Start the server in HTTP mode:**
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
- #### Workspace Management
302
-
303
- - `list_workspaces` - Get all workspaces
304
- - `get_workspace` - Get workspace details
305
- - `create_workspace` - Create new workspace
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
- **Note**: All logging uses STDERR to maintain compatibility with the MCP JSON-RPC protocol, which requires STDOUT to be reserved exclusively for protocol communication.
519
-
520
- ## Development
521
-
522
- ### Setup Development Environment
121
+ Useful commands:
523
122
 
524
123
  ```bash
525
- # Install dependencies
526
- npm install
527
-
528
- # Run in development mode
529
- npm run dev
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
- ### Docker Support
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
- ### Connection Issues
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
- 2. **Test the connection manually**:
574
-
575
- ```bash
576
- chmod +x scripts/test-connection.sh
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
- ### Startup Process
150
+ Then test the BusinessMap connection:
585
151
 
586
- The server now performs the following steps during initialization:
152
+ ```bash
153
+ chmod +x scripts/test-connection.sh
154
+ ./scripts/test-connection.sh
155
+ ```
587
156
 
588
- 1. **Configuration validation** - Checks all required environment variables
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
- If the connection fails, the server will display detailed error messages and retry automatically.
159
+ - `BUSINESSMAP_API_URL` is not in the expected format: `https://your-account.kanbanize.com/api/v2`
160
+ - `BUSINESSMAP_API_TOKEN` is missing, expired, or lacks the needed permissions
161
+ - The selected MCP client has not been fully restarted after editing its config
594
162
 
595
- ### Release Process
163
+ Logging details are documented in [docs/LOGGING.md](docs/LOGGING.md).
596
164
 
597
- This project uses an automated release process. See [RELEASE_PROCESS.md](docs/RELEASE_PROCESS.md) for detailed documentation.
165
+ ## Project Docs
598
166
 
599
- ### Full Tools Reference
167
+ - [Tools, resources, and prompts](docs/TOOLS.md)
168
+ - [MCP client configuration](docs/MCP_CLIENTS.md)
169
+ - [Logging](docs/LOGGING.md)
170
+ - [Programmatic middleware](docs/MIDDLEWARE.md)
171
+ - [Release process](docs/RELEASE_PROCESS.md)
172
+ - [Scripts](scripts/README.md)
600
173
 
601
- For the complete list of all tools, resources, and prompts with detailed parameter descriptions, see [TOOLS.md](docs/TOOLS.md).
174
+ ## Contributing
602
175
 
603
- **Quick Start:**
176
+ Use conventional commits when possible:
604
177
 
605
178
  ```bash
606
- # Preview release notes
607
- npm run preview:release
608
-
609
- # Publish new version (interactive)
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
- The release process automatically:
185
+ Before opening a pull request:
615
186
 
616
- - Bumps version (patch/minor/major)
617
- - Generates release notes from commits
618
- - Creates GitHub tags and releases
619
- - Publishes to NPM
187
+ ```bash
188
+ npm test
189
+ npm run test:npx
190
+ ```
620
191
 
621
- ### Contributing
192
+ ## Support
622
193
 
623
- 1. Follow conventional commit format for better release notes:
194
+ For issues and questions:
624
195
 
625
- ```bash
626
- feat: add new feature
627
- fix: resolve bug
628
- docs: update documentation
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
- 2. Ensure all tests pass before submitting PR:
201
+ ## Related Projects
633
202
 
634
- ```bash
635
- npm test
636
- npm run test:npx
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 you find this project helpful and would like to support its development, please consider becoming a sponsor through [GitHub Sponsors](https://github.com/sponsors/edicarloslds).
210
+ If this project helps you, consider supporting it through [GitHub Sponsors](https://github.com/sponsors/edicarloslds).
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