# complete_todo

Complete a Planner ToDo by setting doneOn. Huly may trim future work slots and run issue automation when the ToDo is attached to an issue.

Agent View of the PolicyLayer registry record for `complete_todo`. HTML page: https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/complete-todo

## Facts

- Tool: `complete_todo`
- Server: Huly (`@firfi/huly-mcp`) — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp.md
- Install: `npx -y @firfi/huly-mcp`
- Homepage: https://github.com/dearlordylord/huly-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": "complete_todo",
    "arguments": {}
  }
}
```

## Why complete_todo is rated Medium

This tool modifies data (marks a ToDo as completed) in a reversible manner—a user can uncomplete a ToDo later. While it mentions triggering automation workflows as side effects, the core capability is Write (updating doneOn state). It does not execute arbitrary code (Execute category), does not permanently delete anything (Destructive), and does not involve financial transactions (Financial).

From the tool's own definition: "Tool description states it 'Complete[s] a Planner ToDo by setting doneOn' and indicates it triggers secondary effects ('Huly may trim future work slots and run issue automation when the ToDo is attached to an issue')."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Huly (517)

- `cancel_approval_request` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/cancel-approval-request.md
- `cancel_execution` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/cancel-execution.md
- `delete_activity_reply` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-activity-reply.md
- `delete_association` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-association.md
- `delete_attachment` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-attachment.md
- `delete_board_card` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-board-card.md
- `delete_board_label` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-board-label.md
- `delete_card` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-card.md
- `delete_card_comment` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-card-comment.md
- `delete_channel` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-channel.md
- `delete_channel_message` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-channel-message.md
- `delete_chat_message_attachment` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-chat-message-attachment.md
- `delete_class_collaborator_metadata` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-class-collaborator-metadata.md
- `delete_comment` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-comment.md
- `delete_component` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-component.md
- `delete_dm_message` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-dm-message.md
- `delete_document` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-document.md
- `delete_drawing` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-drawing.md
- `delete_drive` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-drive.md
- `delete_drive_file_comment` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-drive-file-comment.md
- `delete_drive_item` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-drive-item.md
- `delete_event` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-event.md
- `delete_huly_attribute` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-huly-attribute.md
- `delete_huly_enum` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-huly-enum.md
- `delete_huly_permission` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-huly-permission.md
- `delete_huly_sequence` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-huly-sequence.md
- `delete_inventory_category` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-inventory-category.md
- `delete_inventory_product` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-inventory-product.md
- `delete_inventory_product_attachment` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-inventory-product-attachment.md
- `delete_inventory_product_comment` — Destructive — https://policylayer.com/tools/io-github-dearlordylord-huly-mcp/delete-inventory-product-comment.md
- …and 487 more: https://policylayer.com/tools/io-github-dearlordylord-huly-mcp.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=io-github-dearlordylord-huly-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-dearlordylord-huly-mcp
