tasks-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | Log each request to stderr. | |
| NEXTCLOUD_URL | Yes | URL of your Nextcloud instance, e.g. https://your-nextcloud.example.com | |
| NEXTCLOUD_USER | Yes | Your Nextcloud username | |
| NEXTCLOUD_TIMEOUT_MS | No | Per-request deadline. Must be a whole number of milliseconds, at most 2147483647. | 60000 |
| NEXTCLOUD_APP_PASSWORD | Yes | App-password generated in Nextcloud under Settings > Security > Devices & sessions > 'Create new app password' | |
| NEXTCLOUD_DEFAULT_TASK_LIST | No | List used when a tool needs one and the caller omits it. Matched on uri, then display name. Unnecessary if the account has only one list. | |
| NEXTCLOUD_MAX_RESPONSE_BYTES | No | Largest response body buffered. A calendar-query returns every matching task's full iCalendar body in one document, so this scales with list size rather than page size. | 20971520 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Verify connectivity and credentials against Nextcloud CalDAV. Returns the configured server and user, the discovered calendar home, and the task lists found there. |
| list_task_listsA | List the task lists in this account. Use the returned "uri" wherever a tool takes a list — it is stable, whereas the display name changes on rename and need not be unique. |
| list_tasksA | List tasks, earliest deadline first. Searches every task list unless one is named. Completed and cancelled tasks are excluded unless includeCompleted is true. Results are sorted by due date, then priority, then title. |
| get_taskA | Read one task by uid, including its etag. Naming the list makes this one request instead of one per list. |
| create_taskA | Create a task. The list may be omitted when the account has one task list or NEXTCLOUD_DEFAULT_TASK_LIST is set. Returns the task as stored, including its new uid. |
| update_taskA | Change fields on an existing task. Only the fields given are touched; everything else on the task — including recurrence, reminders and properties written by other CalDAV clients — is preserved. Pass null to clear a field. Pass an etag to make the write conditional on nobody else having changed the task first. |
| complete_taskA | Mark a task done: status COMPLETED, 100 percent, completed timestamp now. Repeating tasks are refused — completing one has to advance it to its next occurrence, and closing it here would end the series. |
| uncomplete_taskA | Reopen a completed task: status NEEDS-ACTION, completion timestamp removed. |
| delete_taskA | Delete a task permanently. Subtasks are not deleted — they are left in place and reported as orphaned, so nothing is destroyed that was not named. |
| move_taskA | Move a task to another task list, keeping its uid and every property. Subtasks are not moved with it, and a parent link only resolves within one list, so move a parent and its subtasks together if you want the hierarchy to survive. |
| list_tagsA | List the tags in use with a count of the tasks carrying each, completed ones included. Useful for finding the exact spelling of a tag before filtering list_tasks by it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct action on tasks or task lists: ping for connectivity, CRUD operations, state changes (complete/uncomplete), moving, and tag listing. No two tools overlap in purpose, and descriptions clarify any potential confusion (e.g., complete_task vs. update_task).
All tool names follow a consistent verb_noun snake_case pattern: list_task_lists, create_task, delete_task, etc. The only deviation is 'ping', which is a conventional standalone verb but fits the pattern of a simple connectivity check. No mixed conventions or vague verbs.
With 11 tools, the server is well-scoped for task management: it covers connectivity, list retrieval, task CRUD, lifecycle transitions, moving, and tag utilities. The count is within the ideal range and each tool earns its place without redundancy.
The tool surface provides comprehensive coverage of task management: create, read, update, delete, complete/uncomplete, move, and list/filter. The inclusion of tags and the detailed handling of recurrence and subtasks in descriptions address edge cases, leaving no obvious dead ends for agents.