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.5
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.5.tar.gz | 101.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rmc_vikunja_mcp-0.4.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.4 kB
Release files / rmc_vikunja_mcp-0.4.5.tar.gz
| Download URL | rmc_vikunja_mcp-0.4.5.tar.gz |
|---|---|
| Size | 101.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef5feb838608cf8ad21ef0fbe5b8e1b2bee5a95e218f4458b5d193e6ca275a1d
|
|
BLAKE2b-256 checksum How to use checksums |
a941e18a60f2fd9c2ddab1b6e9d6693260dc835cb4649a68da764a4ea0e665ff
|
| 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.5-py3-none-any.whl
| Download URL | rmc_vikunja_mcp-0.4.5-py3-none-any.whl |
|---|---|
| Size | 18.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cab68de2176f73e900f8b981548cd8fba271aa90708ef1ef0f6aa2541b31d493
|
|
BLAKE2b-256 checksum How to use checksums |
1d354f2783540254008300ba752affb900c41690b3d55d2836cc7c39686a54ef
|
| 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}
|