Skip to main content

Model Context Protocol (MCP) server for Vikunja

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rmc_vikunja_mcp-0.2.4.tar.gz (52.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmc_vikunja_mcp-0.2.4-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file rmc_vikunja_mcp-0.2.4.tar.gz.

File metadata

  • Download URL: rmc_vikunja_mcp-0.2.4.tar.gz
  • Upload date:
  • Size: 52.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rmc_vikunja_mcp-0.2.4.tar.gz
Algorithm Hash digest
SHA256 d69b7baae687a9da064ff2a5714b84c8aed15097c33f175004b989965e34598c
MD5 506a13d33868c919ca68acbd9caf9b1d
BLAKE2b-256 327e11e34e9234b415a9c4c6d3594dcf6a57821fabf4a3e9fa1badd322603b7a

See more details on using hashes here.

File details

Details for the file rmc_vikunja_mcp-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: rmc_vikunja_mcp-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rmc_vikunja_mcp-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2540be9def19b38bde7d216d2120151d19c9631c3fa7cc221100eae8251b2f01
MD5 c0ec84ab881bf8d0465529a9a3991883
BLAKE2b-256 afe74505627f3c84009f1803ad640de7de6eb422089cb6b3b37fd0304971164a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page