loading…
Search for a command to run...
loading…
Connects Claude to self-hosted Vikunja instances for conversational task and project management. Supports CRUD operations on projects and tasks, plus labels, co
Connects Claude to self-hosted Vikunja instances for conversational task and project management. Supports CRUD operations on projects and tasks, plus labels, comments, weekly reviews, calendar feeds, and task relations.
A remote MCP (Model Context Protocol) server that connects Claude to your self-hosted Vikunja instance. Add it as a custom connector in Claude.ai and manage your tasks conversationally.
| Tool | Description |
|---|---|
list_projects |
List all projects |
get_project |
Get project details |
create_project |
Create a new project |
update_project |
Update a project |
delete_project |
Delete a project |
list_tasks |
List/filter/search tasks across all projects |
get_task |
Get task details including comments |
create_task |
Create a task in a project |
update_task |
Update task properties |
delete_task |
Delete a task |
complete_task |
Mark a task as done |
reopen_task |
Mark a task as not done |
add_comment |
Add a comment to a task |
list_labels |
List all labels |
create_label |
Create a new label |
add_label_to_task |
Attach a label to a task |
remove_label_from_task |
Remove a label from a task |
weekly_review |
Generate a weekly review summary |
get_calendar |
Agenda view of tasks with due dates (overdue + upcoming) |
create_relation |
Link two tasks (subtask, blocking, precedes, related, …) |
remove_relation |
Remove a relation between two tasks |
bulk_update_tasks |
Update multiple tasks at once (priority, status, dates, …) |
get_notifications |
Get all notifications with unread count |
create_filter |
Save a named filter for reuse |
get_filter |
Get a saved filter by ID |
update_filter |
Update a saved filter |
delete_filter |
Delete a saved filter |
get_calendar_events |
Events from configured .ics files and webcal feeds, grouped by day |
npm install
npm run build
export VIKUNJA_URL=https://your-vikunja-instance.example.com
export VIKUNJA_TOKEN=your-api-token
export MCP_AUTH_TOKEN=$(openssl rand -hex 32)
export PORT=9090
node build/index.js
Then add your server as a custom connector in Claude.ai under Settings > Connectors:
https://your-server.example.com/mcp?token=<MCP_AUTH_TOKEN>
See DEPLOY-UBERSPACE.md for a full deployment walkthrough on Uberspace.
| Variable | Required | Description |
|---|---|---|
VIKUNJA_URL |
Yes | Base URL of your Vikunja instance (no trailing slash) |
VIKUNJA_TOKEN |
Yes | API token from Vikunja Settings > API Tokens |
MCP_AUTH_TOKEN |
Recommended | Shared secret for the /mcp endpoint — see Auth |
PORT |
No | Port to listen on (default: 3000) |
CALENDAR_ICS_FILES |
No | Comma-separated paths to local .ics files |
CALENDAR_ICS_URLS |
No | Comma-separated webcal/https iCal subscription URLs |
When MCP_AUTH_TOKEN is set, the server rejects any request to /mcp that
does not include a matching ?token=… query parameter with a 401 Unauthorized
response.
Generate a strong token:
openssl rand -hex 32
Add it to the connector URL in Claude.ai:
https://your-server.example.com/mcp?token=<your-token>
If MCP_AUTH_TOKEN is left unset the endpoint is open to anyone who can reach
it — only do this on a private, firewalled network.
The get_calendar_events tool reads events from any number of .ics sources
and returns them grouped by day. When configured, weekly_review also shows a
THIS WEEK'S CALENDAR section so your schedule and task backlog are reviewed
together.
Posteo users: your webcal subscription URL is under Calendar Settings →
iCal subscription. Add it to CALENDAR_ICS_URLS — no sync daemon needed.
export CALENDAR_ICS_URLS=webcal://posteo.de/calendars/you/personal
For multiple calendars, separate with commas:
export CALENDAR_ICS_URLS=webcal://posteo.de/calendars/you/personal,webcal://posteo.de/calendars/you/work
For local .ics files (e.g. synced from CalDAV via vdirsyncer):
export CALENDAR_ICS_FILES=/home/user/calendars/shifts.ics,/home/user/calendars/personal.ics
Both vars are optional. Calendar features are silently disabled when neither is set.
MCP_AUTH_TOKEN) for the MCP endpoint;
Vikunja API token for upstream API calls@modelcontextprotocol/sdk v1.xДобавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"vikunja-mcp-server": {
"command": "npx",
"args": []
}
}
}