Kanboard Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Kanboard Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that exposes Kanboard API functionality to Large Language Models (LLMs), enabling AI assistants to interact with Kanboard project management system.
This MCP server provides access to 60+ Kanboard API endpoints organized into the following categories:
# Install using uvx (no need to manage Python environments)
uvx kanboard-mcp
# Or install with pip
pip install kanboard-mcp# Clone the repository
git clone https://github.com/hoducha/kanboard-mcp.git
cd kanboard-mcp
# Install with uv
uv sync
# Or install with pip
pip install -e .# With uv
uv sync --all-extras
# Or with pip
pip install -e ".[dev]"Create a .env file in the project root with the following variables:
# Required
KANBOARD_URL=https://your-kanboard.com/jsonrpc.php
KANBOARD_API_TOKEN=your_api_token_here
# Optional
KANBOARD_USERNAME=jsonrpc
KANBOARD_VERIFY_SSL=true
KANBOARD_TIMEOUT=30
KANBOARD_MAX_RETRIES=3
KANBOARD_RETRY_DELAY=1.0
# MCP Server settings
MCP_SERVER_NAME="Kanboard MCP Server"
MCP_SERVER_VERSION="0.1.0"
DEBUG=falseKANBOARD_API_TOKEN# Using uvx (recommended - no installation needed)
uvx kanboard-mcp
# Or using the installed command
kanboard-mcp
# Or using Python module
python -m kanboard_mcp.serverAdd the server to your MCP client configuration. For Claude Desktop, add to your claude_desktop_config.json:
Option 1: Using uvx (Recommended)
{
"mcpServers": {
"kanboard": {
"command": "/Users/username/.local/bin/uvx",
"args": ["kanboard-mcp"],
"env": {
"KANBOARD_URL": "https://your-kanboard.com/jsonrpc.php",
"KANBOARD_API_TOKEN": "your_api_token_here"
}
}
}
}Note: Replace /Users/username/.local/bin/uvx with your actual uvx path. Find it by running which uvx in your terminal.
Option 2: Using installed package
{
"mcpServers": {
"kanboard": {
"command": "kanboard-mcp",
"env": {
"KANBOARD_URL": "https://your-kanboard.com/jsonrpc.php",
"KANBOARD_API_TOKEN": "your_api_token_here"
}
}
}
}The server provides built-in tools for testing:
test_connection: Test connection to Kanboardget_server_info: Get server information and capabilitiesget_config_info: Get current configuration (without sensitive data)getAllProjects(): Get all projectsgetProjectById(project_id): Get project by IDgetProjectByName(project_name): Get project by namegetProjectActivity(project_id): Get project activitygetProjectActivities(project_id): Get project activitiesgetAllTasks(project_id, status_id?): Get all tasks for a projectgetTask(task_id): Get specific taskgetTaskByReference(project_id, reference): Get task by referencegetOverdueTasks(): Get all overdue tasksgetOverdueTasksByProject(project_id): Get overdue tasks for projectcreateTask(project_id, title, ...): Create new taskupdateTask(task_id, ...): Update existing taskopenTask(task_id): Open taskcloseTask(task_id): Close taskremoveTask(task_id): Delete tasksearchTasks(project_id, query, ...): Search taskscreateComment(task_id, content, user_id?): Create commentgetComment(comment_id): Get commentgetAllComments(task_id): Get all comments for taskupdateComment(comment_id, content): Update commentremoveComment(comment_id): Delete commentSee the individual tool modules in src/kanboard_mcp/tools/ for complete API documentation.
All tools return responses in the format:
{
"success": true,
"data": { ... }
}Or on error:
{
"success": false,
"error": "Error message"
}kanboard-mcp/
├── src/kanboard_mcp/
│ ├── __init__.py
│ ├── server.py # Main MCP server
│ ├── config.py # Configuration management
│ ├── client.py # Kanboard client wrapper
│ └── tools/ # API tool implementations
│ ├── projects.py
│ ├── tasks.py
│ ├── categories.py
│ ├── columns.py
│ ├── boards.py
│ ├── comments.py
│ ├── users.py
│ ├── links.py
│ ├── subtasks.py
│ ├── tags.py
│ └── files.py
├── pyproject.toml
└── README.mdpytest# Format code
black src/
# Sort imports
isort src/
# Type checking
mypy src/
# Linting
ruff src/KANBOARD_URL and ensure the API endpoint is correctKANBOARD_API_TOKEN is validKANBOARD_VERIFY_SSL=false for self-signed certificates (not recommended for production)KANBOARD_TIMEOUT valuePython Command Not Found (`spawn python ENOENT`)
If you get this error, Claude Desktop can't find the Python executable. Here are the solutions in order of preference:
{
"mcpServers": {
"kanboard": {
"command": "/Users/username/.local/bin/uvx",
"args": ["kanboard-mcp"],
"env": { ... }
}
}
} {
"mcpServers": {
"kanboard": {
"command": "kanboard-mcp",
"env": { ... }
}
}
} {
"mcpServers": {
"kanboard": {
"command": "/usr/local/bin/python3",
"args": ["-m", "kanboard_mcp.server"],
"env": {
"PYTHONPATH": "/path/to/site-packages",
...
}
}
}
}Benefits of uvx:
Enable debug mode for detailed logging:
DEBUG=true kanboard-mcpMIT License - see LICENSE file for details.
For issues and questions:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.