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.
Quick Start (Factumerit Users)
If you're using Factumerit's hosted Vikunja, the setup is automatic:
- Your welcome message 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:
{
"mcpServers": {
"vikunja": {
"command": "uvx",
"args": ["vikunja-mcp"],
"env": {
"VIKUNJA_URL": "https://your-vikunja-instance.com",
"VIKUNJA_TOKEN": "your-api-token"
}
}
}
}
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 use our restart script:
.\scripts\restart-claude.ps1
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
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
Relations
create_task_relation— Link tasks (blocking, subtask, etc.)list_task_relations— List task dependencies
Usage Examples
Once configured, just ask Claude:
- "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"
- "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.
Requirements
- Python 3.12+ (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.8.1.tar.gz.
File metadata
- Download URL: vikunja_mcp-0.8.1.tar.gz
- Upload date:
- Size: 110.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8df5f338dc463b51ca5a7defe26a5db0daa831fd068da5fb3ce05e3bffdab587
|
|
| MD5 |
d6e2bd90d9bebc7a3cfb58794128783a
|
|
| BLAKE2b-256 |
998e889d9fc918036b56a353819df4c7303edaf4c7e8ed8904f720264cdae293
|
File details
Details for the file vikunja_mcp-0.8.1-py3-none-any.whl.
File metadata
- Download URL: vikunja_mcp-0.8.1-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed0223048043b654106aebbeb713b002c64ccb8298929b3cea32ecc6b0474fbf
|
|
| MD5 |
efa5cd5248d9748afcf33d687408dcc4
|
|
| BLAKE2b-256 |
93e3d53db335c082ae45660f8519b3c1463cb4eaff395e6a79e1a1d7cc73ad39
|