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_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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rmc_vikunja_mcp-0.4.0.tar.gz.
File metadata
- Download URL: rmc_vikunja_mcp-0.4.0.tar.gz
- Upload date:
- Size: 55.8 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e45fa89635c888858ba031100f6d45780d1febbb5d4edcd07c8502aeb637e758
|
|
| MD5 |
7ab5d99132563d4cd2b06016989def27
|
|
| BLAKE2b-256 |
9d70c6256c5f3fa67b5bb4b04481724406b86e26cc031c07bfff40b739600084
|
File details
Details for the file rmc_vikunja_mcp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: rmc_vikunja_mcp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 18.7 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7966d559051c156718fb8721f820b10602ca94d6b422a0964bbb70e8285c129
|
|
| MD5 |
3063c316ba573616495d37253101dc5f
|
|
| BLAKE2b-256 |
c0f6d659a06866216917ded916949ee0512d73a69a2a5eb78e997e22f366a8a5
|