Skip to main content

rmc-vikunja-mcp

A Model Context Protocol (MCP) server that connects LLM-based assistants to the Vikunja task-management platform.

Features

Category Tools
User get_user_info, search_users
Project list_projects, create_project, get_project, delete_project
Task get_task, list_tasks, list_tasks_global, create_task, update_task, delete_task
Label list_labels, create_label, add_label_to_task, remove_label_from_task
Assignee assign_user_to_task, unassign_user_from_task
Comment list_task_comments, add_comment_to_task

Key design decisions

  • Read-Modify-Write for task updates – Vikunja's POST /tasks/{id} endpoint resets fields absent from the request body. update_task therefore fetches the current state, merges the caller's changes, strips read-only timestamps, and posts the result back.
  • extra="ignore" on Pydantic models – Unknown fields returned by future API versions are silently discarded instead of causing validation failures.

Quick start

Prerequisites

  • Python ≥ 3.14
  • uv (recommended) or pip
  • A running Vikunja instance with an API token

Configuration

Create a .env file (or export the variables directly):

VIKUNJA_URL=https://your-vikunja-instance.example.com
VIKUNJA_TOKEN=your-api-token

Running the server

You can run the server directly without manual installation using uvx (recommended):

uvx rmc-vikunja-mcp

Alternatively, you can install it via pip and run it using the CLI entry-point:

uv pip install rmc-vikunja-mcp
vikunja-mcp
# or
python -m vikunja_mcp

MCP client configuration (e.g. Claude Desktop)

Using uvx (Recommended)

This method does not require prior installation:

{
  "mcpServers": {
    "vikunja": {
      "command": "uvx",
      "args": [
        "rmc-vikunja-mcp"
      ],
      "env": {
        "VIKUNJA_URL": "https://your-vikunja-instance.example.com",
        "VIKUNJA_TOKEN": "your-api-token"
      }
    }
  }
}

Using globally installed package

If you installed the package via pip or uv pip install:

{
  "mcpServers": {
    "vikunja": {
      "command": "vikunja-mcp",
      "env": {
        "VIKUNJA_URL": "https://your-vikunja-instance.example.com",
        "VIKUNJA_TOKEN": "your-api-token"
      }
    }
  }
}

Development

# Clone and install dev dependencies
git clone https://github.com/rmc8/rmc_vikunja_mcp.git
cd rmc_vikunja_mcp
uv sync

# Run checks
uv run ruff check          # linter
uv run mypy src tests      # type checker (strict mode)
uv run pytest -v           # tests

License

MIT

Metadata

Release files for rmc-vikunja-mcp 0.4.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rmc-vikunja-mcp 0.4.4
File Size Uploaded
rmc_vikunja_mcp-0.4.4.tar.gz 101.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rmc-vikunja-mcp 0.4.4
File Interpreter ABI Platform
rmc_vikunja_mcp-0.4.4-py3-none-any.whl Python 3 none any Details

Total release size: 120.4 kB

Release files / rmc_vikunja_mcp-0.4.4.tar.gz

Download URL rmc_vikunja_mcp-0.4.4.tar.gz
Size 101.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e6121b53287e37c66ae97378391bef50e0794cecbf9d6702922c91cfe05f7cf1
BLAKE2b-256 checksum
How to use checksums
61475319bdc162fa2bbb6eeed92431184890fec014cc7757a6f9e7bc122f6de2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rmc_vikunja_mcp-0.4.4-py3-none-any.whl

Download URL rmc_vikunja_mcp-0.4.4-py3-none-any.whl
Size 18.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de9dabbed2180677d0f5bac9665de04e1591717aedccc400a4148c8c31b1e091
BLAKE2b-256 checksum
How to use checksums
01f6aeafc0bdbfcc4623e48586e13a0cc81712f16dcad5d72711a70e55eb980f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.4.6

2 release files

0.4.5

2 release files

This release

0.4.4 This release

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page