Security-first MCP server for Vikunja — full API coverage, read-only by default with opt-in write/delete, and just one dependency (the official MCP
Connect Vikunja to Claude, Cursor or any other MCP client and it stops being a tab you switch to. Security-first MCP server for Vikunja — full API coverage, read-only by default with opt-in write/delete, and just one dependency (the official MCP SDK). The vikunja mcp server is what makes that connection.
The available third-party Vikunja MCP servers pull a dozen-plus dependencies from npm at runtime and run inside the agent's container with access to its secrets. This one is the opposite:
The toolset is worth reading before you wire it up, because it tells you what the integration is really for:
list_projects — readget_project — readlist_tasks — readlist_all_tasks — readget_task — readlist_labels — readsearch_users — readlist_task_assignees — readlist_task_comments — readlist_task_relations — readlist_task_attachments — readlist_buckets — readConfiguration is passed through the environment: VIKUNJA_URL, VIKUNJA_API_TOKEN. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
The server ships on npm as @eargollo/vikunja-mcp, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.
Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Vikunja's toolset — list_projects, get_project, list_tasks and 11 more — is a fair guide to whether it matches your workflow. It is maintained by GitHub Actions; worth a glance at recent repository activity before you build anything load-bearing on it.
We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.
| Tool | What it does |
|---|---|
| list_projects | read |
| get_project | read |
| list_tasks | read |
| list_all_tasks | read |
| get_task | read |
| list_labels | read |
| search_users | read |
| list_task_assignees | read |
| list_task_comments | read |
| list_task_relations | read |
| list_task_attachments | read |
| list_buckets | read |
| list_teams | read |
| get_team | read |
{
"mcpServers": {
"vikunja": {
"command": "npx",
"args": ["-y", "@eargollo/vikunja-mcp"],
"env": {
"VIKUNJA_URL": "your-value",
"VIKUNJA_API_TOKEN": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| VIKUNJA_URL | Endpoint or connection string the server talks to. | Yes |
| VIKUNJA_API_TOKEN | Credential the server authenticates with. | Yes |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.