Provides tools for managing Focalboard boards, cards, and tasks, including board search, card creation and updates, property management, and column movement through the Focalboard API.
Focalboard MCP Server
A Model Context Protocol (MCP) server for Focalboard, enabling task and board management through Claude and other MCP-compatible clients.
Features
Board Management: List, search, and view board details
Card Operations: Create, read, update, and delete cards/tasks
User-Friendly: Use human-readable column and property names (no need for IDs)
Auto-Authentication: Automatically handles login and session management
Column Movement: Easily move cards between columns with simple property updates
Installation
Option 1: Using Claude CLI (Recommended)
The easiest way to install is using the Claude CLI with npx:
Replace the environment variable values with your actual Focalboard credentials:
FOCALBOARD_HOST: Your Focalboard instance URL (e.g.,https://focalboard.example.com)FOCALBOARD_USERNAME: Your Focalboard username or emailFOCALBOARD_PASSWORD: Your Focalboard password
Alternatively, if you've cloned the repository locally:
Option 2: Manual Installation
Clone or download this repository
Install dependencies:
Build the project:
Add to your Claude Desktop configuration file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Replace /absolute/path/to/focalboard-mcp-server with the actual path to this project.
Restart Claude Desktop
Configuration
Required Environment Variables
FOCALBOARD_HOST: The URL of your Focalboard instance (e.g.,https://focalboard.example.com)FOCALBOARD_USERNAME: Your Focalboard username or emailFOCALBOARD_PASSWORD: Your Focalboard password
Available Tools
Board Management
list_boards
List all boards for a team.
Parameters:
teamId(optional): The team ID (default: "0")
Example:
get_board
Get detailed information about a specific board, including columns and properties.
Parameters:
boardId(required): The board ID
Example:
search_boards
Search for boards by name or keyword.
Parameters:
teamId(optional): The team ID (default: "0")searchTerm(required): Search term
Example:
Card/Task Operations
create_card
Create a new card (task) in a board.
Parameters:
boardId(required): The board IDtitle(required): Card titleproperties(optional): Property values as key-value pairs using property names
Example:
get_cards
List all cards in a board.
Parameters:
boardId(required): The board IDpage(optional): Page number (default: 0)perPage(optional): Results per page (default: 100)
Example:
get_card
Get detailed information about a specific card.
Parameters:
cardId(required): The card ID
Example:
update_card
Update a card's properties, including moving it between columns.
Parameters:
cardId(required): The card IDboardId(required): The board IDtitle(optional): New titleproperties(optional): Property values to update using property names
Example:
Moving Cards Between Columns: To move a card to a different column, update the property that defines the columns. For example, if your board has a "Status" property with columns "To Do", "In Progress", and "Done":
delete_card
Delete a card permanently.
Parameters:
cardId(required): The card IDboardId(required): The board ID
Example:
Usage Examples
Getting Started
List your boards:
List all my Focalboard boardsGet board details to see columns:
Show me the details of board [board-id], including all columnsCreate a new task:
Create a task in board [board-id] titled "Review pull request" with Status "To Do"Move a task to another column:
Update card [card-id] in board [board-id], change Status to "Done"
Workflow Example
How It Works
Authentication
The server automatically handles authentication:
When first called, it logs in with your username/password
Receives a session token from Focalboard
Uses the token for all subsequent API requests
Automatically re-authenticates if the token expires
Column Name Resolution
When you update a card with property names (e.g., "Status": "In Progress"):
The server fetches the board details
Finds the property by name (case-insensitive)
Resolves the column/option name to its internal ID
Updates the card with the correct ID
This means you can use friendly names like "To Do" instead of remembering cryptic IDs like "option-abc123".
API Reference
This server uses the Focalboard API v2. For more details, see:
Troubleshooting
Authentication Errors
If you see authentication errors:
Verify your
FOCALBOARD_HOSTis correct (should includehttps://)Check your username and password are correct
Ensure your Focalboard instance is accessible
Board or Card Not Found
Use
list_boardsto get the correct board IDsUse
get_cardsto get valid card IDsBoard and card IDs are case-sensitive
Property Not Found
Use
get_boardto see all available properties and their namesProperty names are case-insensitive but must match exactly
For select/multiSelect properties, option values must match available options
Development
Project Structure
Building
Watch Mode
For development with auto-rebuild:
License
MIT
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Related Projects
Focalboard - Open source project management tool
Model Context Protocol - Protocol for AI-application integration
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables task and board management in Focalboard through natural language, supporting board operations, card creation/updates, and column movements with automatic authentication and user-friendly property names.