Wekan MCP Server
The Wekan MCP Server enables AI agents to manage and interact with a Wekan project management instance across boards, lists, swimlanes, and cards.
Board Management
listBoards– Retrieve all Wekan boards accessible to the authenticated user
List Management
listLists– Retrieve all lists within a specific board
Swimlane Management
listSwimlanes– Retrieve all swimlanes within a specific board
Card Management
listCards– Retrieve all cards in a specific board and listcreateCard– Create a new card with:title(required)boardIdandlistId(required)description,swimlaneId,due(ISO 8601 format),members(user IDs),labels(label IDs) (all optional)
moveCard– Move a card to a different list or swimlane within the same board
Card Interaction
commentCard– Add a text comment to an existing card
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., "@Wekan MCP Servershow all cards in the 'In Progress' list"
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.
Wekan MCP Server
made by namar0x0309 with ❤️ at GoAIX

This project includes scripts to automatically generate Wekan API tokens and configure your environment.
Supported Agent Functionality
The Wekan MCP Server provides the following tools for AI agents to interact with Wekan:
Board Management
listBoards - List all accessible Wekan boards available to the authenticated user
List Management
listLists - List all lists within a specific board
Swimlane Management
listSwimlanes - List all swimlanes in a board (used for organizing cards vertically)
Card Management
listCards - List all cards in a specific board and list
createCard - Create a new card with support for:
Title (required)
Description (optional)
Swimlane assignment (optional)
Due date (optional, ISO 8601 datetime format)
Team members (optional, array of user IDs)
Labels (optional, array of label IDs)
moveCard - Move a card to another list or swimlane within the same board
Card Interaction
commentCard - Add a comment to an existing card
Related MCP server: Trello MCP Server
Getting Started
Generate Wekan API Token
Run the appropriate script for your platform to generate your API token:
Windows (PowerShell):
./get-wekan-token.ps1Linux/macOS (Bash):
./get-wekan-token.shThe script will prompt you for:
Wekan endpoint (e.g., https://wekan.namar0x0309.com)
Username
Password
After successful authentication, it will:
Generate an API token
Create or update the
.envfile with your token and configuration
Manual Configuration
If you prefer to configure manually, copy .env.example to .env and fill in your details:
cp .env.example .envThen edit the .env file with your Wekan instance details and API token.
Environment Variables
The .env file contains:
WEKAN_BASE_URL: Your Wekan instance URLWEKAN_API_TOKEN: Generated API token for authenticationWEKAN_USERNAME: Your Wekan username (alternative to API token)WEKAN_PASSWORD: Your Wekan password (alternative to API token)WEKAN_USER_ID: Your Wekan user IDWEKAN_TOKEN_EXPIRES: Token expiration date
Note: You can authenticate using either:
WEKAN_API_TOKEN- Pre-generated token, orWEKAN_USERNAMEandWEKAN_PASSWORD- For automatic token generation on each request
Testing
You can test your configuration by running:
node test-auth.jsThis will verify that your API token is working correctly.
You can also test all available methods:
node test-all-methods.jsDevelopment
MCP Inspector
For development and debugging the MCP server, you can use the MCP Inspector:
npm run inspectThis will launch the MCP Inspector with the configuration from mcp-inspector-config.json.
For development with automatic rebuilding:
npm run inspect:watchThis will build the project and launch the inspector, automatically rebuilding when changes are detected.
Available Tools
7 toolscommentCardC
Add a comment to a card
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ||
| cardId | Yes | ||
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present; description does not disclose behavioral traits such as idempotency, permissions, side effects, or return value. Minimal disclosure.
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?
Single sentence, no wasted words. However, could be more structured with additional context without becoming verbose.
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?
No output schema; description does not cover return behavior, error conditions, or success indicators. For a mutation tool with three required parameters, more completeness is expected.
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 has 0% description coverage; description adds no meaning to parameters. Parameter names (boardId, cardId, text) are somewhat self-explanatory but lack context like format or constraints.
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?
Description clearly states verb 'add', resource 'comment', and target 'card'. Distinguishes from sibling tools like createCard (creates a card) and moveCard (moves).
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 on when to use this tool versus alternatives, no prerequisites or exclusions provided. Agent must infer usage context from name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createCardD
Create a card
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ||
| listId | Yes | ||
| title | Yes | ||
| description | No | ||
| swimlaneId | No | ||
| due | No | ||
| members | No | ||
| labels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as idempotency, side effects, or permissions. This is a critical gap.
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?
While very short, the description is under-specifying rather than concise. It fails to provide necessary information, making it inefficient for the agent.
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 8 parameters, 3 required, no output schema, and no annotations, the description is completely inadequate. It does not help the agent understand tool usage.
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 has 8 parameters with 0% description coverage, and the description adds no meaning to any parameter. The agent is left guessing about fields like 'swimlaneId' or 'members'.
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 card' clearly states the action and resource, but does not differentiate from sibling tools like moveCard or commentCard. It is adequate but not distinguishing.
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 on when to use this tool versus alternatives or when not to use it. The description lacks usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listBoardsA
List accessible Wekan boards
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'list accessible Wekan boards' and omits details like mutation side effects, authentication requirements, pagination, or ordering. The minimal description leaves the agent uninformed about important behavioral traits.
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, concise phrase with no wasted words. It effectively conveys the core functionality without unnecessary elaboration.
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 output schema and no annotations, the description should provide more context about return format or behavior. It only states the resource type but does not mention fields, structure, or any side effects, leaving the agent with incomplete information for a tool that returns data.
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 schema has no parameters and 100% coverage, so baseline is 4. The description adds the nuance 'accessible', which clarifies that boards are filtered by user access rights, providing additional meaning beyond the empty 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 verb 'List' and the resource 'accessible Wekan boards', making the tool's purpose unambiguous. It also distinguishes from sibling tools like listCards and listLists, which list different entities.
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 implies usage for listing boards, but does not provide explicit guidance on when to use this tool versus alternatives or specify any preconditions. Context makes it clear, but lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listCardsC
List cards in a board+list
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ||
| listId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states 'List cards' without any information about read-only nature, pagination, ordering, effects, or permissions.
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 extremely concise with a single sentence, which is efficient but lacks structure and depth. It is a minimally acceptable length, but there is room for formatting with more details.
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 output schema, two parameters, and no annotations, the description is severely incomplete. It fails to explain the output format, any constraints, or necessary context for correct invocation.
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%, and the description offers no explanation of the two parameters (boardId, listId). It mentions 'board+list' but does not clarify what values are expected or how to obtain them.
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 'List cards in a board+list' clearly states the action and the required context, distinguishing it from sibling tools that list other entities (boards, lists, swimlanes). However, it could be more specific by indicating it lists 'all' cards.
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 usage guidelines are provided; the description does not indicate when to use this tool versus alternatives like listBoards or listLists, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listListsC
List lists in a board
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but fails to disclose any behavioral traits. It does not state that the tool is read-only, what happens on invalid input, or any auth requirements. It only implies a read operation without explicit confirmation.
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 extremely concise at 5 words, with no wasted text. However, it lacks structure: no sentences about usage, parameters, or returns. It sacrifices completeness for brevity.
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 simplicity (1 param, no output schema), the description should hint at the return value or behavior. It does not mention what the tool outputs (e.g., list of list objects) or any error conditions, leaving the agent uninformed.
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 input schema has 0% description coverage, and the description does not explain the 'boardId' parameter beyond the vague phrase 'in a board'. No guidance is given on how to find or format the boardId.
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 'List lists in a board' clearly specifies the action (list) and resource (lists) with context (in a board). It distinguishes from sibling tools like listBoards and listCards, though it could be more specific about scope (e.g., 'all lists').
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 usage guidelines are provided. The description does not mention when to use this tool versus alternatives like listCards or listSwimlanes, nor any prerequisites (e.g., valid boardId).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listSwimlanesC
List swimlanes in a board
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not explicitly disclose behavioral traits such as safety (read-only), authentication needs, or side effects. The verb 'list' implies a read operation, but this is implicit and insufficient.
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 concise at one sentence with no unnecessary words. However, it could be restructured to include parameter semantics without losing conciseness.
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?
Despite the tool's simplicity, the description is incomplete: it lacks parameter documentation and does not clarify the return format. Given the absence of output schema and annotations, more detail is needed.
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 input schema has 0% description coverage for the required parameter 'boardId'. The description does not explain what 'boardId' means or how to obtain it, failing to compensate for the missing schema documentation.
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 'List swimlanes in a board' uses a specific verb ('list') and resource ('swimlanes'), clearly distinguishing it from sibling tools like listCards and listLists. It precisely conveys the tool's 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 usage guidelines are provided. The description does not specify when to use this tool versus alternatives, nor does it mention prerequisites or context. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
moveCardC
Move a card to another list or swimlane
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | ||
| cardId | Yes | ||
| listId | No | ||
| swimlaneId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states the basic action. Does not disclose potential errors, side effects (e.g., what happens if card already in target list), or required permissions for mutation.
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?
Single sentence, no wasted words. However, it is under-specified for the number of parameters and lack of other documentation.
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?
Description is too brief given the lack of annotations and output schema. Missing details on required parameters, typical usage patterns, and error handling. Incomplete for a mutation tool.
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 coverage is 0%, and description only mentions list and swimlane implicitly. Does not clarify the role of boardId and cardId, nor which parameters are optional. Adds minimal value beyond the parameter names.
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?
Description clearly states the action (move) and resource (card), and implies the target (list or swimlane), distinguishing it from sibling tools like createCard or listCards. However, it could be more explicit about the 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 on when to use this tool vs alternatives, such as when a card needs to be reorganized within a board. No prerequisites or exclusions mentioned.
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.
7 tool updates
v1.0.0- First observed
commentCard - First observed
createCard - First observed
listBoards - First observed
listCards - First observed
listLists - First observed
listSwimlanes - First observed
moveCard
TDQS
Scored across 7 tools
Each tool targets a distinct action: commenting, creating, listing different entities, and moving cards. No two tools have overlapping responsibilities.
All tools follow a consistent verb_noun pattern (commentCard, createCard, listBoards, etc.) with clear, predictable naming.
7 tools cover the core functionalities without being excessive or insufficient for a board management server.
Missing essential CRUD operations such as update or delete for cards and boards, and no tools for creating/editing lists or swimlanes, leaving significant gaps.
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.
- KaneraOAuthapp.kanera
Manage Kanera workspaces, boards, cards, checklists, comments, notes, automations, and reports.
Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with Trello through the Trello API, allowing users to manage boards, lists, and cards including creating, updating, deleting, and retrieving Trello data through natural language.734 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Trello boards, lists, and cards through the Trello REST API. Supports board management, card operations, member management, labels, and checklists through natural language.285 npm1ISC
- AlicenseBqualityCmaintenanceEnables AI assistants to interact with Planka, a real-time Kanban board application, for managing projects, boards, lists, cards, and more.1046 npm5MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Planka kanban boards, including creating, updating, and organizing tasks, lists, and cards via MCP.15 npm59MIT