MCP Hub
Back to servers

Vikunja MCP Server

Enables interaction with Vikunja task management instances through natural language. Supports comprehensive project and task operations including CRUD, assignments, labels, comments, relations, and attachments.

glama
Updated
Apr 5, 2026

Vikunja MCP Server

A Model Context Protocol server for managing Vikunja projects and tasks.

Quick Start

Run directly with npx (no installation required):

npx vikunja-mcp --token YOUR_VIKUNJA_TOKEN

With custom Vikunja URL:

npx vikunja-mcp --url https://your-vikunja.com/api/v1 --token YOUR_TOKEN

Or using environment variables:

export VIKUNJA_TOKEN=your_token
export VIKUNJA_URL=https://your-vikunja.com/api/v1
npx vikunja-mcp

Features

  • Full CRUD operations for projects
  • Full CRUD operations for tasks
  • Task comments management
  • Task relations (subtasks, blocking, etc.)
  • Task attachments listing
  • Task assignees management
  • Task labels management
  • Project hierarchy (epics) management

Available Tools

Projects

ToolDescription
list_projectsList all projects the user has access to
get_projectGet a specific project by ID
create_projectCreate a new project
update_projectUpdate an existing project
delete_projectDelete a project by ID
list_project_childrenList child projects under a project
move_projectMove project to different parent/position

Tasks

ToolDescription
list_tasksList all tasks across all projects
list_project_tasksList all tasks for a specific project
get_taskGet a specific task by ID
create_taskCreate a new task in a project
update_taskUpdate an existing task
delete_taskDelete a task by ID

Task State & Movement

ToolDescription
complete_taskMark a task as done
reopen_taskReopen a completed task
move_taskMove task to different project/position

Assignees

ToolDescription
add_task_assigneeAdd a user as assignee to a task
remove_task_assigneeRemove assignee from a task
list_task_assigneesList all assignees for a task

Labels

ToolDescription
add_task_labelAdd a label to a task
remove_task_labelRemove a label from a task
list_task_labelsList all labels on a task
list_labelsList all available labels (globally)

Comments

ToolDescription
list_commentsList all comments for a task
create_commentAdd a comment to a task
update_commentUpdate a comment
delete_commentDelete a comment

Relations

ToolDescription
create_relationCreate a relation between two tasks
delete_relationDelete a relation between tasks
list_task_relationsList all relations for a task

Subtasks

ToolDescription
create_subtaskCreate a subtask linked to parent task
list_subtasksList all subtasks for a task

Attachments

ToolDescription
list_task_attachmentsList all attachments for a task
delete_task_attachmentDelete an attachment from a task

Installation

Prerequisites

  • Node.js 18+
  • npm or bun
  • A Vikunja instance (self-hosted or cloud)
  • Vikunja API token

Getting a Vikunja API Token

  1. Log into your Vikunja instance
  2. Go to Settings → API Tokens
  3. Create a new token

Build from Source

git clone https://github.com/Wosh-i/vikunja-mcp.git
cd vikunja-mcp
npm install
npm run build

OpenCode Configuration

Add the following to your OpenCode config (~/.config/opencode/opencode.jsonc):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vikunja": {
      "type": "local",
      "command": ["node", "/path/to/vikunja-mcp/dist/index.js"],
      "environment": {
        "VIKUNJA_URL": "https://your-vikunja-instance.com/api/v1",
        "VIKUNJA_TOKEN": "your-api-token-here",
      },
    },
  },
}

Configuration Options

OptionRequiredDefaultDescription
VIKUNJA_URLNohttps://try.vikunja.io/api/v1Your Vikunja API base URL
VIKUNJA_TOKENYes-Your Vikunja API token

Environment Variables

You can also set environment variables globally in your shell:

export VIKUNJA_URL="https://your-vikunja-instance.com/api/v1"
export VIKUNJA_TOKEN="your-api-token-here"

Then the OpenCode config can be simpler:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vikunja": {
      "type": "local",
      "command": ["node", "/path/to/vikunja-mcp/dist/index.js"],
    },
  },
}

Usage

CLI Options

OptionAliasDescription
--token-tYour Vikunja API token
--url-uYour Vikunja API base URL
--help-hShow help

Using with OpenCode

After configuration, you can use Vikunja tools in OpenCode:

list my vikunja projects
create a project called "My Tasks" with color #FF5733
add a task titled "Buy groceries" to project "My Tasks" with priority 3
show me all tasks in the Inbox project

Development

# Install dependencies
npm install

# Build
npm run build

# Run in development mode
npm run dev

# Run tests (when available)
npm test

License

MIT License - see LICENSE file for details.

Contributing

Contributions welcome! Please open an issue or pull request.

Reviews

No reviews yet

Sign in to write a review