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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/semaputnik/vikunjia-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server