Skip to main content

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:

  1. Your welcome email contains the complete config — just copy it
  2. Paste into your Claude Desktop config file (see Config File Location)
  3. Restart Claude Desktop
  4. 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 → SettingsAPI TokensCreate 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@latest to 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 prune then 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 + overdue
  • due_this_week — Tasks due in 7 days
  • overdue_tasks — Past-due tasks only
  • high_priority_tasks — Priority 3+ tasks
  • urgent_tasks — Priority 4+ (critical) tasks
  • unscheduled_tasks — Tasks without due dates
  • task_summary — Quick counts (no task details)

Instance Management

  • list_instances — Show all configured instances
  • switch_instance — Change active instance
  • get_active_context / set_active_context — Get/set default instance
  • connect_instance — Add a new instance

Projects

  • list_projects — List all projects
  • get_project — Get project details
  • create_project — Create new project
  • delete_project — Delete project

Tasks

  • list_tasks — List tasks (with filters)
  • get_task — Get task details with labels/assignees
  • create_task — Create task with title, description, due date, priority
  • update_task — Update task fields
  • complete_task — Mark task as done
  • delete_task — Delete task
  • set_task_position — Move task to kanban bucket
  • add_label_to_task — Attach label to task
  • assign_user / unassign_user — Manage task assignments

Labels

  • list_labels — List all labels
  • create_label — Create new label with color
  • delete_label — Delete label

Kanban

  • get_kanban_view — Get kanban view ID for a project
  • list_buckets — List kanban columns
  • create_bucket — Create new kanban column

Views

  • list_views — List views for a project
  • create_view — Create list/kanban/gantt/table view
  • get_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 items
  • setup_xq — Initialize X-Q project with proper buckets
  • claim_xq_task — Claim a task for processing
  • complete_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

  1. Check your config file syntax (valid JSON?)
  2. Ensure uv is installed and in your PATH
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vikunja_mcp-0.9.2.tar.gz (118.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vikunja_mcp-0.9.2-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file vikunja_mcp-0.9.2.tar.gz.

File metadata

  • Download URL: vikunja_mcp-0.9.2.tar.gz
  • Upload date:
  • Size: 118.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.2

File hashes

Hashes for vikunja_mcp-0.9.2.tar.gz
Algorithm Hash digest
SHA256 65cfeae7b67412bb8375e701e75c98936259a49ee30a8f04f493fe05e274cc70
MD5 265fa7de753cbdb15ae924b6c2ee19b4
BLAKE2b-256 c742d6ba42d08e10a2f46c75ebc9f714a4aefdf25aff3e32f4fe006120ee0b9d

See more details on using hashes here.

File details

Details for the file vikunja_mcp-0.9.2-py3-none-any.whl.

File metadata

File hashes

Hashes for vikunja_mcp-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4b6165bbb116d87e9c202734afabacd5e860f1d6cdce731be9b9e4144cad04fc
MD5 05f0e3ec09a869eb353499dbccaffb69
BLAKE2b-256 0c20996158398a53dd4ae3802329313e1b0b5b9b43b11d523e2b5b1c97c948ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page