Obsidian Kanban MCP Server
Provides tools to manage Kanban boards within an Obsidian vault, allowing users to list boards, read board content, add or move tasks between columns, and create new boards.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Obsidian Kanban MCP Serveradd 'Fix login bug' to the Todo column on the Project board"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Obsidian Kanban MCP Server
An MCP server to manage Obsidian Kanban boards.
Features
List all Kanban boards in your vault.
Read board content (columns and tasks).
Add tasks to specific columns.
Move tasks between columns.
Create new Kanban boards.
Related MCP server: KanbanX MCP Server
Usage
Prerequisites
Node.js installed.
Obsidian vault with the Kanban plugin installed.
Configuration
The server points to the Obsidian vault specified by the VAULT_PATH environment variable.
If not set, it defaults to ~/workspace/cursor-vault.
You can also optionally set:
OBSIDIAN_BOARD_NAMEto a default board filename (e.g.,MyBoard.md). If set, you don't need to provide theboard_nameargument.
Building
npm install
npm run buildRunning
node dist/index.jsMCP Tools
list_boards: List all boards.get_board_content(board_name): Get columns and tasks.add_task(board_name, column_name, task_text, description?, labels?, acceptance_criteria?, create_note?): Add a task with optional details.description: Multiline string for task details.labels: Array of strings (e.g.,["urgent", "bug"]). Appended as tags to the title.acceptance_criteria: Array of strings. Added as a checklist in the description.create_note: Boolean. Defaults totrue. If true, creates a new Markdown note with the details and links it on the board. Set tofalseto keep all details on the card itself.
move_task(board_name, task_text, from_column, to_column): Move a task.create_board(board_name, columns): Create a new board.
Deployment & Integration
Integrating with Claude Desktop
Add the following to your claude_desktop_config.json (MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"obsidian-kanban": {
"command": "node",
"args": ["/path/to/mcp-obsidian-kanban/dist/index.js"],
"env": {
"VAULT_PATH": "/path/to/your/obsidian/vault",
"OBSIDIAN_BOARD_NAME": "MyBoard.md"
}
}
}
}Integrating with Cursor
Go to Cursor Settings > Features > MCP.
Click + Add New MCP Server.
Fill in the details:
Name: Obsidian Kanban
Type: Stdio
Command:
node /path/to/mcp-obsidian-kanban/dist/index.jsEnvironment Variables:
VAULT_PATH=/path/to/your/obsidian/vault;OBSIDIAN_BOARD_NAME=MyBoard.md
Available Tools
5 toolsadd_taskB
Add a new task to a specific column in a Kanban board
| Name | Required | Description | Default |
|---|---|---|---|
| board_name | No | Optional if OBSIDIAN_BOARD_NAME env var is set. | |
| column_name | Yes | ||
| task_text | Yes | ||
| description | No | Longer description of the task (multiline supported) | |
| labels | No | List of tags/labels (e.g. ['urgent', 'bug']) | |
| acceptance_criteria | No | List of acceptance criteria checklist items | |
| create_note | No | If true (default), creates a new Markdown note for the task with the description, labels, and criteria, and links it on the board. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a task but doesn't explain what happens after creation (e.g., whether it returns a task ID, triggers notifications, or affects board state). It mentions note creation via the 'create_note' parameter but doesn't clarify default behavior or side effects, leaving significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose without unnecessary words. Every part of it ('Add a new task', 'to a specific column', 'in a Kanban board') contributes essential information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It lacks details on behavioral outcomes (e.g., what the tool returns, error conditions), doesn't address sibling tool relationships, and relies too heavily on the schema for parameter context, leaving the agent under-informed about usage and effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't explicitly discuss parameters, but the input schema has 71% description coverage, documenting most parameters well (e.g., 'description', 'labels', 'acceptance_criteria', 'create_note'). However, it doesn't compensate for the 29% gap (undocumented 'board_name', 'column_name', 'task_text'), though the required parameters are implied by the description's focus. Given the schema's solid coverage, this earns above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a new task') and target resource ('to a specific column in a Kanban board'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'move_task' or 'create_board' beyond the basic verb+resource distinction, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'move_task' or 'create_board'. It doesn't mention prerequisites (e.g., needing an existing board/column), exclusions, or typical scenarios for task creation, leaving the agent with minimal contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boardC
Create a new Kanban board
| Name | Required | Description | Default |
|---|---|---|---|
| board_name | Yes | ||
| columns | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Create' implies a write/mutation operation, but doesn't disclose any behavioral traits like whether this requires specific permissions, if it's idempotent, what happens on duplicate board names, or what the response looks like (e.g., returns board ID). For a creation tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Create a new Kanban board' is front-loaded and appropriately sized for a simple creation tool. Every word earns its place, and there's no redundant or verbose phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (creation operation with 2 required parameters), lack of annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain parameters, behavioral aspects, or what to expect upon success/failure. For a mutation tool with no structured support, this minimal description is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters, but it adds no meaning beyond what the schema provides. The schema shows required 'board_name' (string) and 'columns' (array of strings), but the description doesn't clarify what these represent (e.g., board_name format, columns as initial column names). This leaves parameters semantically undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new Kanban board' clearly states the verb (create) and resource (Kanban board), making the purpose immediately understandable. It distinguishes from siblings like 'list_boards' (read) and 'add_task' (modify), though it doesn't explicitly differentiate from other potential creation tools. The specificity of 'Kanban board' adds clarity beyond just 'board'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing board creation permissions), when not to use it (e.g., if a board already exists), or how it relates to sibling tools like 'list_boards' for checking existing boards first. The agent must infer usage from the name and context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_contentC
Get the columns and tasks of a Kanban board
| Name | Required | Description | Default |
|---|---|---|---|
| board_name | No | The filename of the board (e.g., 'Board.md'). Optional if OBSIDIAN_BOARD_NAME env var is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states what the tool does, not how it behaves. It lacks details on permissions, rate limits, error handling, or output format (e.g., whether it returns structured data or raw text), which are critical for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, front-loading the core purpose efficiently. It's appropriately sized for a simple tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., JSON structure, task details), behavioral aspects like pagination, or error cases, leaving gaps for a tool that retrieves content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter 'board_name'. The description adds no additional parameter semantics beyond implying the tool fetches content for a board, which the schema already covers with its description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('columns and tasks of a Kanban board'), making the purpose understandable. However, it doesn't explicitly differentiate from siblings like 'list_boards' (which might list board names only) or 'add_task' (which modifies content), leaving some ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this should be used for viewing board details after 'list_boards' or before 'add_task', and there's no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_boardsB
List all Kanban boards in the Obsidian vault
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but doesn't describe what 'List' entails (e.g., format, pagination, sorting, or error handling). For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It directly communicates the tool's function in a clear and structured manner, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate as a minimum viable explanation. However, it lacks details on behavioral aspects like return format or error conditions, which could be important for an AI agent to use it effectively in a broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, aligning with the input schema's emptiness, which justifies a baseline score of 4 for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all Kanban boards in the Obsidian vault'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'get_board_content', but the scope is clear enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_board_content' or 'create_board'. It lacks any mention of prerequisites, exclusions, or specific contexts where this tool is appropriate, leaving usage decisions entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_taskC
Move a task from one column to another
| Name | Required | Description | Default |
|---|---|---|---|
| board_name | No | Optional if OBSIDIAN_BOARD_NAME env var is set. | |
| task_text | Yes | ||
| from_column | Yes | ||
| to_column | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'move' implies mutation, it doesn't specify whether this requires specific permissions, what happens to task metadata during movement, if the operation is reversible, or any rate limits. The description lacks crucial context about the tool's behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that states exactly what the tool does without any unnecessary words. It's perfectly front-loaded and wastes no space on redundant information or decorative phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters (3 required), no annotations, no output schema, and low schema description coverage (25%), the description is inadequate. It doesn't explain what happens after the move, error conditions, board/column validation, or how 'task_text' identifies tasks. The context demands more comprehensive guidance than provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only 'board_name' has a description), leaving 3 parameters undocumented. The description mentions 'from one column to another' which hints at 'from_column' and 'to_column', but doesn't explain what constitutes valid column names, format requirements, or the relationship between 'task_text' and existing tasks. It adds minimal value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('move') and resource ('task') with specific direction ('from one column to another'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'add_task' or 'get_board_content' which also involve tasks, leaving room for confusion about when to choose this specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'add_task' or 'create_board'. There's no mention of prerequisites (e.g., existing boards/columns), error conditions, or typical workflows where task movement is appropriate versus other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
add_task - First observed
create_board - First observed
get_board_content - First observed
list_boards - First observed
move_task
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose with no overlap: add_task creates tasks, create_board creates boards, get_board_content retrieves board details, list_boards lists boards, and move_task moves tasks between columns. An agent can easily distinguish between these operations without confusion.
All tool names follow a consistent verb_noun pattern (e.g., add_task, create_board, get_board_content). The naming is uniform and predictable, using snake_case throughout without any deviations or mixed conventions.
With 5 tools, this server is well-scoped for managing Kanban boards in Obsidian. Each tool serves a clear and necessary function (creating/listing boards, adding/moving tasks, retrieving content), making the count appropriate and efficient for the domain.
The tool set covers core Kanban operations well, including board creation, listing, content retrieval, and task management (add/move). A minor gap exists in task deletion or board deletion/update, but agents can likely work around this for basic workflows without significant failures.
Maintenance
Related MCP Connectors
Read and manage your EasyKanban kanban boards: to-do summaries, create, update, and move cards.
Create and drive KanbanThing kanban boards. No account, no API key, board link required.
Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Create, read and live-edit visual boards, Kanban plans, Gantt timelines and diagrams with AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables agents to read and drive a local-first Kanban board for issue tracking, allowing them to list, create, update, and resolve issues from Claude Code sessions.3 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to manage a personal Kanban board with tasks, subtasks, notes, and code clips using natural language via the Model Context Protocol.1MIT
- AlicenseBqualityCmaintenanceEnables AI agents to manage kanban boards with tasks, including creating boards, items, moving between columns, and searching.81MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage tasks in a kanban board organized as markdown files, with operations to create, update, delete, move tasks, manage lanes, and get statistics.1MIT