# task_labels_add

Add a label to a task

Agent View of the PolicyLayer registry record for `task_labels_add`. HTML page: https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-labels-add

## Facts

- Tool: `task_labels_add`
- Server: Vikunja (`0xk3vin/vikunja-mcp`) — https://policylayer.com/tools/0xk3vin-vikunja-mcp.md
- Homepage: https://github.com/0xK3vin/vikunja-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "task_labels_add",
    "arguments": {}
  }
}
```

## Why task_labels_add is rated Medium

This tool modifies a task by adding a label to it. The operation is reversible (labels can be removed), and it does not delete data or trigger external code execution. It fits the Write category as it creates or modifies data reversibly. Severity is medium because misuse could add incorrect labels to many tasks, creating confusion or affecting task organization, but the damage is easily correctable.

From the tool's own definition: "Tool name 'task_labels_add' and description 'Add a label to a task' indicate a create/modify operation that adds metadata to an existing task."

## Use case

AI agents use task_labels_add to create or update resources in Vikunja, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Vikunja environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Vikunja:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "task_labels_add": {
      "limits": [
        {
          "counter": "task_labels_add_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Vikunja (30)

- `buckets_delete` — Destructive — https://policylayer.com/tools/0xk3vin-vikunja-mcp/buckets-delete.md
- `labels_delete` — Destructive — https://policylayer.com/tools/0xk3vin-vikunja-mcp/labels-delete.md
- `projects_delete` — Destructive — https://policylayer.com/tools/0xk3vin-vikunja-mcp/projects-delete.md
- `task_assignees_remove` — Destructive — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-assignees-remove.md
- `task_labels_remove` — Destructive — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-labels-remove.md
- `task_relations_remove` — Destructive — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-relations-remove.md
- `tasks_delete` — Destructive — https://policylayer.com/tools/0xk3vin-vikunja-mcp/tasks-delete.md
- `buckets_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/buckets-list.md
- `labels_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/labels-list.md
- `notifications_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/notifications-list.md
- `ping` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/ping.md
- `project_views_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/project-views-list.md
- `projects_get` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/projects-get.md
- `projects_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/projects-list.md
- `task_assignees_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-assignees-list.md
- `task_comments_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-comments-list.md
- `tasks_get` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/tasks-get.md
- `tasks_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/tasks-list.md
- `teams_list` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/teams-list.md
- `users_search` — Read — https://policylayer.com/tools/0xk3vin-vikunja-mcp/users-search.md
- `buckets_create` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/buckets-create.md
- `labels_create` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/labels-create.md
- `projects_create` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/projects-create.md
- `projects_update` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/projects-update.md
- `task_assignees_add` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-assignees-add.md
- `task_comments_add` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-comments-add.md
- `task_move_to_bucket` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-move-to-bucket.md
- `task_relations_add` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/task-relations-add.md
- `tasks_create` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/tasks-create.md
- `tasks_update` — Write — https://policylayer.com/tools/0xk3vin-vikunja-mcp/tasks-update.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=0xk3vin-vikunja-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/0xk3vin-vikunja-mcp
