MCP server for Vikunja task management
Project description
vikunja-mcp
MCP server that gives Claude full access to your Vikunja task management instance.
Works with any Vikunja instance — self-hosted, cloud, or Factumerit.
Features
- Multi-instance support — Connect multiple Vikunja accounts (personal, work, etc.)
- Power queries — "What's overdue?", "Focus mode", "Due this week"
- X-Q (Exchange Queue) — Hand off tasks between Claude Desktop and Claude Code
- Full Vikunja API — Projects, tasks, labels, kanban boards, relations
Quick Start (Factumerit Users)
If you're using Factumerit's hosted Vikunja, the setup is automatic:
- Your welcome email contains the complete config — just copy it
- Paste into your Claude Desktop config file (see Config File Location)
- Restart Claude Desktop
- Ask Claude: "What's on my todo list?"
Manual Setup
1. Install uv
uv is a fast Python package manager. Install it once:
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. Get your Vikunja API token
Go to your Vikunja instance → Settings → API Tokens → Create a token.
Give it a name (e.g., "Claude Desktop") and grant all permissions.
3. Configure Claude Desktop
Add to your Claude Desktop config file:
Single instance:
{
"mcpServers": {
"vikunja": {
"command": "uvx",
"args": ["vikunja-mcp@latest"],
"env": {
"VIKUNJA_URL": "https://your-vikunja-instance.com",
"VIKUNJA_TOKEN": "your-api-token"
}
}
}
}
Multiple instances:
{
"mcpServers": {
"vikunja": {
"command": "uvx",
"args": ["vikunja-mcp@latest"],
"env": {
"VIKUNJA_INSTANCES": "[{\"name\": \"personal\", \"url\": \"https://vikunja.example.com\", \"token\": \"tk_xxx\"}, {\"name\": \"work\", \"url\": \"https://app.vikunja.cloud\", \"token\": \"tk_yyy\"}]",
"VIKUNJA_DEFAULT_INSTANCE": "personal"
}
}
}
}
Tip: Use
vikunja-mcp@latestto always get the newest version.
Config File Location
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/claude/claude_desktop_config.json |
Tip: If the file doesn't exist, create it with just the config above.
4. Restart Claude Desktop
macOS: Cmd+Q, then reopen
Windows: Either:
- Close Claude, open Task Manager (Ctrl+Shift+Esc), end any "Claude" processes, reopen
- Or run:
uv cache prunethen reopen Claude
Linux: Close and reopen the app
5. Test it
Ask Claude:
"What projects do I have in Vikunja?"
If it works, you'll see your projects listed!
Available Tools
Power Queries (Fast)
focus_now— High priority + overdue tasks (best for "what should I work on?")due_today— Tasks due today + overduedue_this_week— Tasks due in 7 daysoverdue_tasks— Past-due tasks onlyhigh_priority_tasks— Priority 3+ tasksurgent_tasks— Priority 4+ (critical) tasksunscheduled_tasks— Tasks without due datestask_summary— Quick counts (no task details)
Instance Management
list_instances— Show all configured instancesswitch_instance— Change active instanceget_active_context/set_active_context— Get/set default instanceconnect_instance— Add a new instance
Projects
list_projects— List all projectsget_project— Get project detailscreate_project— Create new projectdelete_project— Delete project
Tasks
list_tasks— List tasks (with filters)get_task— Get task details with labels/assigneescreate_task— Create task with title, description, due date, priorityupdate_task— Update task fieldscomplete_task— Mark task as donedelete_task— Delete taskset_task_position— Move task to kanban bucketadd_label_to_task— Attach label to taskassign_user/unassign_user— Manage task assignments
Labels
list_labels— List all labelscreate_label— Create new label with colordelete_label— Delete label
Kanban
get_kanban_view— Get kanban view ID for a projectlist_buckets— List kanban columnscreate_bucket— Create new kanban column
Views
list_views— List views for a projectcreate_view— Create list/kanban/gantt/table viewget_view_tasks— Get tasks via a specific view
Relations
create_task_relation— Link tasks (blocking, subtask, etc.)list_task_relations— List task dependencies
X-Q (Exchange Queue)
check_xq— Check for pending handoff itemssetup_xq— Initialize X-Q project with proper bucketsclaim_xq_task— Claim a task for processingcomplete_xq_task— Mark task as filed with destination
Usage Examples
Once configured, just ask Claude:
- "What needs my attention?" (uses focus_now)
- "What's due this week?"
- "Show me all my tasks due this week"
- "Create a task to review the Q4 report in the Work project"
- "What's blocking the website redesign task?"
- "Move the 'Fix login bug' task to the Done column"
- "Switch to my work instance"
- "List all high-priority tasks across all projects"
Troubleshooting
"No MCP servers found" or tools not appearing
- Check your config file syntax (valid JSON?)
- Ensure
uvis installed and in your PATH - Restart Claude Desktop completely (see above)
"VIKUNJA_URL and VIKUNJA_TOKEN environment variables are required"
Your config is missing the env section. Make sure it looks like:
"env": {
"VIKUNJA_URL": "https://...",
"VIKUNJA_TOKEN": "tk_..."
}
"401 Unauthorized" errors
Your API token may have expired or been revoked. Create a new one in Vikunja Settings → API Tokens.
Windows: Claude won't restart properly
Use Task Manager (Ctrl+Shift+Esc) to ensure all Claude processes are ended before reopening. Or run uv cache prune to clear cached environments.
Not getting latest version
Use vikunja-mcp@latest in your args, and run uv cache prune after closing Claude Desktop.
Requirements
- Python 3.10+ (installed automatically by uv)
- A Vikunja instance with API access
- Claude Desktop (or any MCP-compatible client)
Links
- Vikunja — The open-source todo app
- Factumerit — Managed Vikunja hosting with AI features
- MCP Protocol — Model Context Protocol
- uv — Fast Python package manager
License
MIT
Project details
Release history Release notifications | RSS feed
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 vikunja_mcp-0.9.3.tar.gz.
File metadata
- Download URL: vikunja_mcp-0.9.3.tar.gz
- Upload date:
- Size: 118.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba43167bcd082d7b25601e39bfa1ad450220ccd7ebe167e0387bf2f0ec0e9134
|
|
| MD5 |
d2aee6587840e0fca6a785817a406b06
|
|
| BLAKE2b-256 |
a89bf7f63729272781386fed979826408a7ff42175fffbbbd3b14b49c2c1cb56
|
File details
Details for the file vikunja_mcp-0.9.3-py3-none-any.whl.
File metadata
- Download URL: vikunja_mcp-0.9.3-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7399ce34a68951594b40537d645b950d3ed60e08f1a54037b8bc1a8394e49a5f
|
|
| MD5 |
b76b2887fafce1b4cd41ca177a6d6cdc
|
|
| BLAKE2b-256 |
794bddde939bcf9074af9dd792aa531fa82fd7ed286eb105ecffed27d5783f1b
|