Model Context Protocol server for Vikunja task management. Enables AI assistants to interact with Vikunja instances via MCP.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add vikunja --env VIKUNJA_URL='<VIKUNJA_URL>' --env VIKUNJA_API_TOKEN='<VIKUNJA_API_TOKEN>' -- npx -y @democratize-technology/vikunja-mcp~/.codex/config.toml
[mcp_servers.vikunja]
command = "npx"
args = ["-y", "@democratize-technology/vikunja-mcp"]
env = { VIKUNJA_URL = "<VIKUNJA_URL>", VIKUNJA_API_TOKEN = "<VIKUNJA_API_TOKEN>" }
# codex mcp add vikunja --env VIKUNJA_URL='<VIKUNJA_URL>' --env VIKUNJA_API_TOKEN='<VIKUNJA_API_TOKEN>' -- npx -y @democratize-technology/vikunja-mcp~/.cursor/mcp.json
{
"mcpServers": {
"vikunja": {
"command": "npx",
"args": [
"-y",
"@democratize-technology/vikunja-mcp"
],
"env": {
"VIKUNJA_URL": "<VIKUNJA_URL>",
"VIKUNJA_API_TOKEN": "<VIKUNJA_API_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"vikunja": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@democratize-technology/vikunja-mcp"
],
"env": {
"VIKUNJA_URL": "<VIKUNJA_URL>",
"VIKUNJA_API_TOKEN": "<VIKUNJA_API_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"vikunja": {
"command": "npx",
"args": [
"-y",
"@democratize-technology/vikunja-mcp"
],
"env": {
"VIKUNJA_URL": "<VIKUNJA_URL>",
"VIKUNJA_API_TOKEN": "<VIKUNJA_API_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"vikunja": {
"command": "npx",
"args": [
"-y",
"@democratize-technology/vikunja-mcp"
],
"env": {
"VIKUNJA_URL": "<VIKUNJA_URL>",
"VIKUNJA_API_TOKEN": "<VIKUNJA_API_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"vikunja": {
"command": "npx",
"args": [
"-y",
"@democratize-technology/vikunja-mcp"
],
"env": {
"VIKUNJA_URL": "<VIKUNJA_URL>",
"VIKUNJA_API_TOKEN": "<VIKUNJA_API_TOKEN>"
}
}
}
}Environment variables
VIKUNJA_URLVIKUNJA_API_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.