hivemq/businessmap-mcp
If you are the rightful owner of businessmap-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Businessmap MCP Server is a Go-based server that provides access to Businessmap cards, allowing users to read card information and add comments.
Businessmap MCP Server
A Go-based Model Context Protocol (MCP) server that provides comprehensive access to Businessmap (formerly Kanbanize) cards including reading card information and adding comments.
Features
- šÆ Two MCP Tools:
read_card
- Comprehensive card information retrievaladd_card_comment
- Add comments to existing cards
- š Structured Data: Returns clean JSON with title, description, subtasks, and comments
- āļø Card Interaction: Add comments to cards directly through the API
- š Secure Authentication: API key and base URL configuration via environment variables
- š Direct API Integration: Uses official Businessmap API v2 endpoints
- ā” Lightweight: Minimal dependencies and fast response times
- š Native Performance: Direct Go binary execution without containers
Prerequisites
- Go 1.25 or later
- Kanbanize/Businessmap account with API access
Quick Start
1. Configuration
Copy the environment template and configure your Kanbanize credentials:
cp .env.example .env
Edit .env
and set your values:
KANBANIZE_API_KEY=your_actual_api_key
KANBANIZE_BASE_URL=https://your-subdomain.kanbanize.com
2. Getting Your API Key
- Log into your Kanbanize/Businessmap account
- Click on your user dropdown menu (top right)
- Select "API"
- Copy your API key
3. Build and Run
# Install dependencies
go mod download
# Build the server
go build -o businessmap-mcp
# Run the server
./businessmap-mcp
Claude Code Integration
This MCP server is designed to work seamlessly with Claude Code. Follow these steps to integrate:
1. Install and Build
# Clone the repository
git clone https://github.com/hivemq/businessmap-mcp.git
cd businessmap-mcp
# Install dependencies
go mod download
# Build the server
go build -o businessmap-mcp
2. Configure Claude Code
Add the MCP server to your Claude Code configuration. Create or edit your Claude Code configuration file:
For Claude Code CLI (~/.claude/mcp_servers.json
):
{
"mcpServers": {
"businessmap": {
"command": "/path/to/businessmap-mcp/businessmap-mcp",
"env": {
"KANBANIZE_API_KEY": "your_api_key_here",
"KANBANIZE_BASE_URL": "https://your-subdomain.kanbanize.com"
}
}
}
}
For Claude Desktop (configuration file location varies by OS):
{
"mcpServers": {
"businessmap": {
"command": "/absolute/path/to/businessmap-mcp",
"env": {
"KANBANIZE_API_KEY": "your_api_key_here",
"KANBANIZE_BASE_URL": "https://your-subdomain.kanbanize.com"
}
}
}
}
3. Environment Variables (Alternative)
Instead of putting credentials in the config file, you can use a .env
file:
# In the businessmap-mcp directory
cp .env.example .env
# Edit .env with your credentials
Then update the Claude Code config to use the working directory:
{
"mcpServers": {
"businessmap": {
"command": "/path/to/businessmap-mcp/businessmap-mcp",
"cwd": "/path/to/businessmap-mcp"
}
}
}
4. Restart Claude Code
After updating the configuration, restart Claude Code to load the new MCP server.
5. Using the Tools
Once integrated, you can use the tools in Claude Code:
Reading card information:
Please read the details of Businessmap card 12345
Reading card from URL (supports various URL formats):
Please read the details from https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345
Please read the details from https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/
Please read the details from https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/details/
Please read the details from https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/comments/
Adding comments to cards:
Please add a comment "Work completed successfully" to Businessmap card 12345
Adding comments using URL (supports various URL formats):
Please add a comment "Task completed" to https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345
Please add a comment "Task completed" to https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/
Please add a comment "Task completed" to https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/details/
Please add a comment "Task completed" to https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/comments/
Claude will automatically use the MCP server to fetch comprehensive card information or add comments as requested.
Usage
The MCP server communicates via stdin/stdout using the JSON-RPC protocol. It provides two tools:
read_card
Description: Read comprehensive card information including title, description, subtasks, and comments
Parameters:
card_id
(string, required): The ID of the Kanbanize card to read or full card URL
Example Response:
{
"title": "Card Title",
"description": "Card description text",
"subtasks": [
{
"id": "123",
"title": "Subtask title",
"description": "Subtask description",
"completed": false
}
],
"comments": [
{
"id": "456",
"text": "Comment text",
"author": "Author Name",
"created_at": "2023-12-01T10:00:00Z"
}
]
}
add_card_comment
Description: Add a comment to a card
Parameters:
card_id
(string, required): The ID of the Kanbanize card to add comment to or full card URLcomment_text
(string, required): The text of the comment to add
Example Response:
"Comment added successfully"
Testing
Prerequisites for Testing
- Kanbanize Account: Active Kanbanize/Businessmap account with API access
- API Key: Generated from your account settings (User menu ā API)
- Card ID: Valid card ID from your Kanbanize board to test with
- Environment Setup: Configured
.env
file with your credentials
Quick Test
-
Setup Environment:
cp .env.example .env # Edit .env with your actual API key and base URL
-
Build and Test:
# Build the server go build -o businessmap-mcp # Test read_card only (replace 12345 with your actual card ID) ./tests/test_mcp.sh 12345 # Test with full URL (various formats supported) ./tests/test_mcp.sh "https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345" ./tests/test_mcp.sh "https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/" ./tests/test_mcp.sh "https://yourcompany.kanbanize.com/ctrl_board/123/cards/12345/details/" # Test both read_card and add_card_comment tools ./tests/test_mcp.sh 12345 "Test comment from MCP server"
Testing Options
Option 1: Shell Script (Recommended)
# Test read_card only with card ID
./tests/test_mcp.sh YOUR_CARD_ID
# Test read_card with full URL (various formats supported)
./tests/test_mcp.sh "https://yourcompany.kanbanize.com/ctrl_board/123/cards/YOUR_CARD_ID"
./tests/test_mcp.sh "https://yourcompany.kanbanize.com/ctrl_board/123/cards/YOUR_CARD_ID/"
./tests/test_mcp.sh "https://yourcompany.kanbanize.com/ctrl_board/123/cards/YOUR_CARD_ID/details/"
./tests/test_mcp.sh "https://yourcompany.kanbanize.com/ctrl_board/123/cards/YOUR_CARD_ID/comments/"
# Test both tools
./tests/test_mcp.sh YOUR_CARD_ID "Your test comment"
Option 2: Interactive Python Script
# Test read_card only with card ID
python3 tests/test_interactive.py YOUR_CARD_ID
# Test read_card with full URL
python3 tests/test_interactive.py "https://yourcompany.kanbanize.com/ctrl_board/123/cards/YOUR_CARD_ID/"
# Test both tools
python3 tests/test_interactive.py YOUR_CARD_ID "Your test comment"
Option 3: Manual JSON-RPC Testing
# Replace YOUR_CARD_ID in the test file (tests both tools)
sed 's/REPLACE_WITH_CARD_ID/YOUR_CARD_ID/g' tests/test_messages.jsonl | ./businessmap-mcp
# Or test with URL (escape slashes properly)
sed 's|REPLACE_WITH_CARD_ID|https://yourcompany.kanbanize.com/ctrl_board/123/cards/YOUR_CARD_ID/|g' tests/test_messages.jsonl | ./businessmap-mcp
Expected Output
The server should return a clean JSON response like:
{
"title": "Example Card Title",
"description": "Card description text",
"subtasks": [
{
"id": "123",
"title": "Subtask title",
"description": "Optional description",
"completed": false
}
],
"comments": [
{
"id": "456",
"text": "Comment text",
"author": "Author Name",
"created_at": "2023-12-01T10:00:00Z"
}
]
}
API Integration
The server uses the official Businessmap API v2 endpoints:
Endpoints:
GET {KANBANIZE_BASE_URL}/api/v2/cards/{card_id} # Card details
GET {KANBANIZE_BASE_URL}/api/v2/cards/{card_id}/comments # Comments
GET {KANBANIZE_BASE_URL}/api/v2/cards/{card_id}/subtasks # Subtasks
POST {KANBANIZE_BASE_URL}/api/v2/cards/{card_id}/comments # Add comment
Authentication:
apikey: {KANBANIZE_API_KEY}
Project Structure
businessmap-mcp/
āāā README.md # This documentation
āāā LICENSE # Apache License 2.0
āāā CONTRIBUTING.md # Contribution guidelines
āāā main.go # MCP server entry point
āāā go.mod # Go module definition
āāā go.sum # Go dependencies
āāā .env.example # Environment variables template
āāā .gitignore # Git ignore rules
āāā internal/
ā āāā config/
ā ā āāā config.go # Configuration management
ā āāā kanbanize/
ā āāā client.go # Kanbanize API client
ā āāā types.go # API response types
āāā tests/
āāā test_mcp.sh # Shell script testing
āāā test_interactive.py # Interactive Python testing
āāā test_messages.jsonl # Manual JSON-RPC testing
Error Handling
The server provides robust error handling with graceful degradation:
- š« Missing Configuration: Fails fast on startup if API credentials are missing
- ā Invalid Card ID: Clear error messages for empty or invalid card IDs
- š API Errors: Forwards Businessmap API error messages with context
- š Partial Data: Returns available data with empty arrays for missing comments/subtasks
- š Network Issues: Detailed error reporting for connectivity problems
Security Features
- š Environment-based Secrets: API keys stored in environment variables only
- š« No Secret Logging: Credentials never appear in logs or error messages
- š HTTPS Only: All API communications use secure HTTPS connections
- š”ļø Secure by Default: No elevated privileges required for execution
Dependencies
- mark3labs/mcp-go - Model Context Protocol Go SDK
- joho/godotenv - Environment variable management
Contributing
Contributions are welcome! Please read for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat: add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the Apache License 2.0 - see the file for details.
Support
- Issues: Report bugs or request features via GitHub Issues
- Documentation: Full API documentation available in this README
- Community: Contributions and feedback welcome!