Relationship Tools
These tools manage the association between tags and thogits — applying tags, updating field values, and removing tags from individual thogits.
apply_tag_to_thogit
Section titled “apply_tag_to_thogit”Apply a tag to an existing thogit with optional field values. The tag can be new (created inline) or existing.
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
thogit_id | string | Yes | Thogit ULID |
tag | object | Yes | Tag to apply: {tag_ref, field_values} |
The tag object:
| Name | Type | Required | Description |
|---|---|---|---|
tag_ref | object | Yes | {"New": {name, fields, ...}} or {"Existing": "ULID"} |
field_values | object | No | Field values to set. Omitted fields default to null. |
Example
Section titled “Example”// Request — apply existing tag with field values{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "apply_tag_to_thogit", "arguments": { "thogit_id": "01JEXAMPLE0000000000THOGIT", "tag": { "tag_ref": { "Existing": "01JEXAMPLE00000000000TAGID" }, "field_values": { "status": { "variant": "in_progress" }, "priority": 9, "due": "2025-03-15" } } } }}// Response — returns the full updated thogit{ "jsonrpc": "2.0", "id": 1, "result": { "content": [ { "type": "text", "text": "{\n \"id\": \"01JEXAMPLE0000000000THOGIT\",\n \"name\": \"Implement user authentication\",\n \"tags\": [\n {\n \"tag\": { \"id\": \"01JEXAMPLE00000000000TAGID\", \"name\": \"Task\", ... },\n \"field_values\": { \"status\": { \"variant\": \"in_progress\" }, \"priority\": 9, \"due\": \"2025-03-15\" },\n \"schema_version\": 1\n }\n ]\n}" } ] }}update_tag_field_values
Section titled “update_tag_field_values”Update field values for a tag already applied to a thogit. By default, replaces all field values (omitted fields become null). Use merge: true for partial updates.
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
thogit_id | string | Yes | Thogit ULID |
tag_id | string | Yes | Tag ULID |
field_values | object | No | Fields to set. Omitted fields become null unless merge: true. |
merge | boolean | No | If true, merge with existing values instead of replacing all. Default: false |
Example
Section titled “Example”// Request — update only the status field, preserving all others{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "update_tag_field_values", "arguments": { "thogit_id": "01JEXAMPLE0000000000THOGIT", "tag_id": "01JEXAMPLE00000000000TAGID", "field_values": { "status": { "variant": "done" } }, "merge": true } }}// Response — returns the full updated thogit{ "jsonrpc": "2.0", "id": 2, "result": { "content": [ { "type": "text", "text": "{\n \"id\": \"01JEXAMPLE0000000000THOGIT\",\n \"name\": \"Implement user authentication\",\n \"tags\": [\n {\n \"tag\": { \"id\": \"01JEXAMPLE00000000000TAGID\", \"name\": \"Task\", ... },\n \"field_values\": { \"status\": { \"variant\": \"done\" }, \"priority\": 9, \"due\": \"2025-03-15\" },\n \"schema_version\": 1\n }\n ]\n}" } ] }}remove_tag_from_thogit
Section titled “remove_tag_from_thogit”Remove a tag from a thogit. This deletes the association and all stored field values for that tag on the thogit.
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
thogit_id | string | Yes | Thogit ULID |
tag_id | string | Yes | Tag ULID to remove |
Example
Section titled “Example”// Request{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "remove_tag_from_thogit", "arguments": { "thogit_id": "01JEXAMPLE0000000000THOGIT", "tag_id": "01JEXAMPLE00000000000TAGID" } }}// Response — returns the updated thogit (without the removed tag){ "jsonrpc": "2.0", "id": 3, "result": { "content": [ { "type": "text", "text": "{\n \"id\": \"01JEXAMPLE0000000000THOGIT\",\n \"name\": \"Implement user authentication\",\n \"tags\": []\n}" } ] }}Workflow Example
Section titled “Workflow Example”A typical workflow for managing tag associations:
-
Apply a tag with initial field values using
apply_tag_to_thogit. -
Update specific fields over time using
update_tag_field_valueswithmerge: trueto change only what needs changing. -
Remove the tag when no longer relevant using
remove_tag_from_thogit.
// Step 1: Apply the "Task" tag{ "jsonrpc": "2.0", "id": 10, "method": "tools/call", "params": { "name": "apply_tag_to_thogit", "arguments": { "thogit_id": "01JEXAMPLE0000000000THOGIT", "tag": { "tag_ref": { "Existing": "01JEXAMPLE00000000000TAGID" }, "field_values": { "status": { "variant": "todo" }, "priority": 5 } } } }}
// Step 2: Update status to done (merge preserves priority){ "jsonrpc": "2.0", "id": 11, "method": "tools/call", "params": { "name": "update_tag_field_values", "arguments": { "thogit_id": "01JEXAMPLE0000000000THOGIT", "tag_id": "01JEXAMPLE00000000000TAGID", "field_values": { "status": { "variant": "done" } }, "merge": true } }}
// Step 3: Remove the tag entirely{ "jsonrpc": "2.0", "id": 12, "method": "tools/call", "params": { "name": "remove_tag_from_thogit", "arguments": { "thogit_id": "01JEXAMPLE0000000000THOGIT", "tag_id": "01JEXAMPLE00000000000TAGID" } }}