{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.yarenty/emperor-vikunja",
"title": "Vikunja tasks",
"description": "Vikunja tasks for MCP clients: list and read tasks and projects; with --writable, change them.",
"version": "0.2.0",
"repository": {
"url": "https://github.com/yarenty/emperor-vikunja",
"source": "github"
},
"websiteUrl": "https://github.com/yarenty/emperor-vikunja",
"packages": [
{
"registryType": "cargo",
"identifier": "emperor-vikunja",
"version": "0.2.0",
"transport": {
"type": "stdio"
},
"packageArguments": [
{
"type": "positional",
"value": "serve",
"isRequired": true,
"description": "Run the MCP server."
},
{
"type": "positional",
"value": "--stdio",
"isRequired": true,
"description": "Speak MCP over stdin and stdout."
},
{
"type": "positional",
"value": "--writable",
"isRequired": false,
"description": "Also serve create_task, update_task and comment. Without it the server is read-only (list_tasks, get_task, list_projects)."
}
],
"environmentVariables": [
{
"name": "VIKUNJA_URL",
"description": "Address of your Vikunja, e.g. https://vikunja.example.com",
"isRequired": true,
"isSecret": false,
"format": "string"
},
{
"name": "VIKUNJA_TOKEN",
"description": "Vikunja API token (Settings > API Tokens)",
"isRequired": true,
"isSecret": true,
"format": "string"
},
{
"name": "VIKUNJA_WRITABLE",
"description": "Set to true to also serve the write tools (same as --writable); unset, empty or false keeps the server read-only.",
"isRequired": false,
"isSecret": false,
"format": "boolean"
}
]
}
]
}