Skip to main content
Glama
martasd

BusinessMap MCP Server

by martasd
README.md
# BusinessMap MCP Server

A Model Context Protocol (MCP) server for integrating BusinessMap (formerly Kanbanize) with MCP-compatible applications.

## Features

- **Board Management**: List workspaces and boards
- **Card Operations**: Search, view, create, and update cards
- **User Management**: List team members
- **Search Capabilities**: Find cards by title across boards

## Architecture

The server is organized into separate modules for maintainability:

- `businessmap_client.py` - BusinessMap API client
- `businessmap_tools.py` - MCP tool implementations
- `businessmap_mcp_server.py` - Main server entry point

## Available Tools

### Information Tools
- `list_workspaces()` - Get all workspaces
- `list_boards()` - Get all boards  
- `list_users()` - Get all users
- `get_board_cards(board_id, limit=50)` - Get cards from a specific board
- `get_card_details(card_id)` - Get detailed card information
- `search_cards(query, board_id=None, limit=20)` - Search cards by title

### Management Tools
- `create_card(template_type, title, description="")` - Create new cards
- `update_card(card_id, title=None, description=None)` - Update existing cards

## Setup

### 1. Install Dependencies

This project uses [uv](https://docs.astral.sh/uv/) for dependency management.

```bash
cd businessmap-mcp-server
uv sync
```

Alternatively, run the setup script:

```bash
./setup.sh
```

### 2. Set Environment Variables

You need to configure your BusinessMap credentials:

```bash
export BUSINESSMAP_SUBDOMAIN="YOUR_SUBDOMAIN_HERE"
export BUSINESSMAP_API_KEY="your-api-key-here"
```

Or create a `.env` file:
```
BUSINESSMAP_SUBDOMAIN=YOUR_SUBDOMAIN_HERE
BUSINESSMAP_API_KEY=your-api-key-here
```

### 3. Test the Server

```bash
uv run python businessmap_mcp_server.py
```

## Claude Code Integration

To use with Claude Code, add this server to your MCP settings:

### Option 1: Using stdio transport

Add to your Claude Code settings (`~/.config/claude-code/settings/default.json`):

```json
{
  "mcpServers": {
    "businessmap": {
      "command": "python",
      "args": ["/path/to/businessmap-mcp-server/businessmap_mcp_server.py"],
      "env": {
        "BUSINESSMAP_SUBDOMAIN": "YOUR_SUBDOMAIN_HERE", 
        "BUSINESSMAP_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

### Option 2: Using uv (recommended)

```json
{
  "mcpServers": {
    "businessmap": {
      "command": "uv",
      "args": ["--directory", "/path/to/businessmap-mcp-server", "run", "python", "businessmap_mcp_server.py"],
      "env": {
        "BUSINESSMAP_SUBDOMAIN": "YOUR_SUBDOMAIN_HERE",
        "BUSINESSMAP_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

## Usage Examples

Once configured, you can use these commands in Claude Code:

- "List all my BusinessMap boards"
- "Show me cards in the Development board" 
- "Search for cards about 'authentication'"
- "Create a new card in board 3 with title 'Fix login bug'"
- "Get details for card 14193"
- "Update card 14193 with a new description"

## API Reference

### BusinessMap API Integration

This server uses BusinessMap's REST API v2. The following endpoints are supported:

- `GET /workspaces` - List workspaces
- `GET /boards` - List boards
- `GET /cards` - List cards (with filtering)
- `GET /cards/{id}` - Get card details
- `GET /users` - List users
- `POST /cards` - Create cards
- `PATCH /cards/{id}` - Update cards

## Security Notes

- Store your API key securely
- Use environment variables rather than hardcoding credentials
- The API key has full access to your BusinessMap account
- Consider creating a dedicated API key for this integration

## Troubleshooting

### Common Issues

1. **Authentication Error**: Verify your API key and subdomain are correct
2. **Connection Error**: Check your internet connection and BusinessMap service status
3. **Permission Error**: Ensure your API key has appropriate permissions

### Debug Mode

Enable debug logging:

```bash
export LOG_LEVEL=DEBUG
uv run python businessmap_mcp_server.py
```

## Contributing

Feel free to extend this server with additional BusinessMap API endpoints or features.

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation4/5

The tools have mostly distinct purposes: list_* enumerate top-level entities, get_* retrieve cards in different ways, and create/update_card handle mutations. The only potential confusion is between get_board_cards and get_user_cards, both returning cards but with different filters; descriptions clarify this. Search and details are clearly separate.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern with list_, get_, search_, create_, update_. However, get_board_cards and get_user_cards use get_ for what are list-like operations, and get_card_details is oddly specific; a more consistent scheme would be list_cards_by_board and list_cards_by_user.

Tool Count5/5

Nine tools is well-scoped for a BusinessMap integration, covering the core entities (users, workspaces, boards, cards) without redundancy. Each tool serves a clear purpose, and the count is within the ideal range.

Completeness4/5

The card lifecycle is partially covered: read (via board, user, details, search), create, and update title/description. Missing delete_card and card state transitions (e.g., moving between columns) are notable gaps. User, workspace, and board operations are limited to listing, which may be sufficient for context.

Maintenance

ActivityInactive
ResponsivenessNo issues