vikunja-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VIKUNJA_URL | Yes | Instance URL. https://host, .../api, .../api/v1 and .../api/v2 are all normalised to /api/v2. | |
| VIKUNJA_TOKEN | Yes | API token (tk_...) or JWT, sent as Authorization: Bearer. | |
| VIKUNJA_TIMEOUT | No | HTTP timeout, seconds. | 30 |
| VIKUNJA_MCP_HOST | No | Bind address for HTTP transports. | 127.0.0.1 |
| VIKUNJA_MCP_PORT | No | Port for HTTP transports. | 8000 |
| VIKUNJA_VERIFY_SSL | No | TLS verification. | true |
| VIKUNJA_MCP_TRANSPORT | No | stdio, http, sse or streamable-http. | stdio |
| VIKUNJA_REMOVED_LABEL | No | Label used instead of deleting. | removed_by_label |
| VIKUNJA_DEFAULT_PROJECT_ID | No | Project used by create_task when project_id is omitted. | |
| VIKUNJA_DESCRIPTION_FORMAT | No | markdown or html for rich-text fields. | markdown |
| VIKUNJA_AUTO_CREATE_REMOVED_LABEL | No | Create that label on first use. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tasksA | List tasks, optionally scoped to one project. Tasks marked as removed are hidden unless include_removed is true. When the removal filter is applied and filter_include_nulls was not set explicitly, it defaults to true so that tasks without any label are still returned. |
| get_taskA | Read a single task by id, including its labels and assignees. |
| create_taskA | Create a task in a project. Falls back to VIKUNJA_DEFAULT_PROJECT_ID when project_id is omitted. |
| update_taskA | Partially update a task; omitted fields are left untouched. Setting project_id moves the task to another project. Use clear_fields to explicitly empty a field instead of changing it. |
| remove_taskA | Mark a task as removed by attaching the configured removal label. Nothing is deleted: the task stays in Vikunja and is simply hidden from list_tasks. Use restore_task to undo. |
| restore_taskA | Undo remove_task by detaching the removal label. |
| add_task_labelsA | Attach labels to a task, creating any that do not exist yet. |
| list_projectsA | List projects visible to the configured token, with their numeric ids. |
| get_projectA | Read a single project by id. |
| create_projectA | Create a project, optionally nested under a parent project. |
| list_labelsA | List labels, useful for building filter expressions that need label ids. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct resource and action: tasks, projects, and labels are cleanly separated, and remove_task/restore_task are explicitly paired as opposites. There is no meaningful overlap between any two tools.
All tools follow a consistent lower_snake_case verb_noun pattern, such as list_tasks, get_task, update_task, and create_project. The naming is uniform and predictable across the whole set.
Eleven tools is a well-scoped set for a task/project management server, covering tasks, projects, and labels without excessive fragmentation. Each tool earns its place in the API surface.
Task lifecycle coverage is strong with list/get/create/update/remove/restore and label manipulation. The main gap is project coverage, which supports list/get/create but lacks update/delete or archive operations, though these are less central to task-focused workflows.