home / mcp / kanboard mcp server
Go-based MCP server enabling natural language control of Kanboard projects, tasks, users, and workflows.
Configuration
View docs{
"mcpServers": {
"bivex-kanboard-mcp": {
"command": "/path/to/your/kanboard-mcp",
"args": [],
"env": {
"KANBOARD_API_KEY": "your-kanboard-api-key",
"KANBOARD_PASSWORD": "your-kanboard-password",
"KANBOARD_USERNAME": "your-kanboard-username",
"KANBOARD_API_ENDPOINT": "https://your-kanboard-url/jsonrpc.php"
}
}
}
}You can connect natural language AI assistants to Kanboard through a Go-based MCP server. This server translates plain-English commands into Kanboard actions, letting you manage projects, tasks, users, and workflows without wrestling with Kanboard’s API directly.
You run the Kanboard MCP server as a local process or connect to it via an MCP client. In your MCP client, add the server configuration that points to your local server or a remote MCP endpoint. Once connected, you can ask your assistant to create projects, add tasks, assign users, move tasks between columns, set due dates, comment on tasks, and more. The tools are designed to cover project management, task handling, column and swimlane organization, user permissions, and metadata—so you can control Kanboard entirely through natural language.
Prerequisites: Go 1.21 or higher, a Kanboard instance with API access, and an MCP-compatible client such as Cursor or Claude Desktop.
Step 1: Clone the MCP server repository.
git clone https://github.com/bivex/kanboard-mcp.git
cd kanboard-mcpStep 2: Build the executable.
# On Windows
build-release.bat
# On Linux/macOS
./build-release.sh
# Manual build
go build -ldflags="-s -w" -o kanboard-mcp .Step 3: Set up Kanboard credentials as environment variables.
export KANBOARD_API_ENDPOINT="https://your-kanboard-url/jsonrpc.php"
export KANBOARD_API_KEY="your-kanboard-api-key"
export KANBOARD_USERNAME="your-kanboard-username"
export KANBOARD_PASSWORD="your-kanboard-password"Step 4: Create an MCP client configuration that points to the server.
{
"mcpServers": {
"kanboard-mcp-server": {
"command": "/path/to/your/kanboard-mcp",
"args": [],
"env": {
"KANBOARD_API_ENDPOINT": "https://your-kanboard-url/jsonrpc.php",
"KANBOARD_API_KEY": "your-kanboard-api-key",
"KANBOARD_USERNAME": "your-kanboard-username",
"KANBOARD_PASSWORD": "your-kanboard-password"
}
}
}
}Configure your MCP client to connect to the Kanboard MCP server. The client can run locally and load the above JSON configuration to initialize the connection.
Environment variables used by the server are shown here for reference:
KANBOARD_API_ENDPOINT=https://your-kanboard-url/jsonrpc.php
KANBOARD_API_KEY=your-kanboard-api-key
KANBOARD_USERNAME=your-kanboard-username
KANBOARD_PASSWORD=your-kanboard-passwordYou can ask the MCP client to create projects, manage tasks, and adjust Kanboard settings. Examples include creating a project, adding tasks, updating task details, assigning users, and retrieving activity for a project or user.
Use a proxy like mcpproxy if needed to improve connectivity and security between the MCP clients and the Kanboard MCP server. Always protect your API credentials and consider using API keys with restricted permissions.
If you are developing custom features, you can build locally, run tests, and iterate with the same configuration structure used for deployment.
List all Kanboard projects you have access to.
Create a new Kanboard project with specified name, description, and owner.
Fetch project information by its numeric ID.
Fetch project information by its name.
Fetch project information by its identifier.
Fetch project information by the project email.
List all available projects.
Update a project’s details such as name or description.
Delete a project by ID.
Enable a project so it becomes active.
Disable a project to prevent activity.
Enable public access for a project.
Disable public access for a project.
Get activity stream for a single project.
Get activity feed for multiple projects.
List tasks for a project.
Create a new task within a project.
Update details for an existing task.
Delete a task by ID.
Get details for a specific task.
Get a task by its external reference.
List all tasks in a project.
Show all overdue tasks.
Show overdue tasks for a specific project.
Set a task status to open.
Set a task status to closed.
Move a task to a different column/position/swimlane within the same project.
Move a task to another project.
Duplicate a task into another project.
Search tasks within a project using a query.
Assign a task to a user.
Set or update a task due date.
Create a new comment on a task.
Get all comments for a task.
Get details for a specific comment.
Update a comment’s content.
Remove a comment by ID.
List all columns in a project.
Get details for a column.
Add a new column to a project.
Update a column’s properties.
Change a column’s position in a project.
Remove a column from a project.
List all task categories for a project.
Get details for a category.
Create a new task category in a project.
Update a category’s name or color.
Remove a category.
List all swimlanes of a project.
List enabled swimlanes for a project.
Get swimlane details by ID.
Get swimlane details by ID.
Get swimlane details by name.
Move a swimlane to a new position.
Add a new swimlane to a project.
Update properties of a swimlane.
Remove a swimlane from a project.
Disable a swimlane for a project.
Enable a swimlane for a project.
Get information to render a project board.
Get information about the currently authenticated user.
Retrieve the dashboard for the connected user.
Get recent activity for the connected user.
Create a private project for the connected user.
List projects the connected user is involved in.
Show overdue tasks for the connected user.
Get detailed information about all projects for the connected user.
List all registered external link providers.
Get dependencies for a given external link provider.
Create an external link for a task.
Update an external task link.
Get an external task link by ID.
List all external links attached to a task.
Remove an external link from a task.
Create a link between two tasks.
Update a task link between two tasks.
Get a task link by ID.
List all links related to a task.
Remove a link between two tasks.
List all possible task relation types.
Get opposite link ID for a given link.
Get a link relation by label.
Get details for a link by ID.
Create a new task relation/link.
Update a task relation/link.
Remove a task relation/link by ID.
Create and upload a new project attachment.
List all files attached to a project.
Get file information for a project file.
Download project file contents (base64 encoded).
Remove a file from a project.
Remove all files from a project.
Get all metadata for a project.
Fetch a specific metadata value for a project.
Add or update metadata for a project.
Remove a metadata key from a project.
List all users in a project.
Get users who can be assigned to a task in a project.
Grant a user access to a project with a role.
Grant a group access to a project with a role.
Remove a user’s access from a project.
Remove a group’s access from a project.
Change a user’s role within a project.
Change a group’s role within a project.
Get a user’s role in a project.
Create a new subtask for a task.
Get information for a subtask.
List all subtasks for a task.
Update a subtask’s details.
Remove a subtask by ID.
Check if a timer is running for a subtask by a user.
Start a subtask timer for a user.
Stop a subtask timer for a user.
Get time spent on a subtask by a user.
List all tags.
List all tags for a project.
Create a new tag for a project.
Rename a tag and update its color.
Remove a tag by ID.
Assign or update tags for a task.
Get tags assigned to a task.
Create and upload a file for a project or task.
List all files attached to a task.
Get information for a specific task file.
Download a task file’s contents (base64).
Remove a file from a task or project.
Remove all files from a task or project.
Get all metadata related to a task.
Fetch a specific metadata value for a task.
Save or update metadata for a task.
Remove task metadata by name.
Get the current application version.
Get the connected user’s timezone.
List all default task colors.
Get the default task color.
List all available task colors.
List all application roles.
List all project roles.
List available automatic actions.
List events available for actions.
List events compatible with a given action.
List actions for a project.
Create a new action for a project.
Remove an action by ID.
Create a new user group.
Update a user group.
Remove a user group.
Get details for a group.
List all groups.
List all groups for a given user.
List all members of a group.
Add a user to a group.
Remove a user from a group.
Check if a user is a member of a group.
List all system users.
Create a new user with credentials.
Create a new LDAP-authenticated user.
Get user information by ID.
Get user information by username.
Update a user’s details including role.
Remove a user by ID.
Disable a user account.
Enable a previously disabled user.
Check if a user is currently active.
Assign a user to a project with a specific role.
Create a new sprint in a project.
Retrieve a sprint by its ID.
Update an existing sprint.
Remove a sprint by ID.
Get all sprints for a given project.