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_tasktherefore 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.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rmc_vikunja_mcp-0.4.2.tar.gz | 56.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rmc_vikunja_mcp-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 74.9 kB
Release files / rmc_vikunja_mcp-0.4.2.tar.gz
| Download URL | rmc_vikunja_mcp-0.4.2.tar.gz |
|---|---|
| Size | 56.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eec412ddfc69422b5869d43ea1be87d0d56e3a46d580efe5636b52f8567c6022
|
|
BLAKE2b-256 checksum How to use checksums |
5e735f74398d1c57be4949f76f67866fa611466738a9d5556f2d3f0c2c0d7516
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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.2-py3-none-any.whl
| Download URL | rmc_vikunja_mcp-0.4.2-py3-none-any.whl |
|---|---|
| Size | 18.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
149bc1753a93d31ece9604945d8adb6e54148ec28d921bc6c7b4a46e93e42b58
|
|
BLAKE2b-256 checksum How to use checksums |
f8a8130949a32bd73184675899fcdaf2d1297bca08789480908825a81056214a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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}
|