Skip to main content
Glama
PhononX

Carbon Voice

by PhononX

create_action_item

Record a task as an action item with a title, assignee, due date, and notes. Attach it to a conversation or folder, or link it to the message that prompted it.

Instructions

Create an action item, optionally attached to a conversation or folder. USE WHEN: Recording a task. Only title is required. Attach it by passing both container_type and container_id, and link it to what prompted it with source_message_id. USE INSTEAD: suggest_action_items_from_messages to have tasks extracted from message content automatically instead of writing each one yourself. EXAMPLE: {"title":"Send the pricing deck","assigned_to":"user-abc"} RETURNS: {id, title, status, notes_text?, assigned_to?, due_date?, container_id?, container_type?, creator_id, ...}. New items start at status todo. ERROR BAD_REQUEST: assigned_to is not a valid user ID, or container_id does not match container_type. — Resolve people with search_users (never pass a name) and containers with list_conversations or get_root_folders.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesWhat needs doing. The only required field.
due_dateNoDue date as an ISO 8601 timestamp.
notes_textNoFree-text detail.
assigned_toNoAssignee user ID, from `search_users`. Not a name.
container_idNo
workspace_idNoWorkspace scope, from `get_workspaces_basic_info`.
container_typeNo
source_message_idNoMessage that prompted this item, from `list_messages`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.10.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only carry readOnlyHint=false and destructiveHint=false, so the description carries the behavioral burden and delivers. It discloses the return shape, that new items start at status `todo`, the BAD_REQUEST error conditions, and the rule that assigned_to must be a valid user ID resolved via search_users, never a name. This is precisely the context an agent needs beyond static annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into scannable labeled sections (USE WHEN, USE INSTEAD, EXAMPLE, RETURNS, ERROR) with the core statement front-loaded. Each sentence earns its place — the example, return shape, and error semantics are all necessary because no output schema exists. The length is justified for an 8-parameter mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description fully explains return values (RETURNS shape), initial status, failure modes, and prerequisite lookup routes (search_users, list_conversations, get_root_folders). workspace_id is the only parameter not explicitly addressed, but the schema documents it. An agent has everything needed to invoke this correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, so the schema already documents six of eight parameters. The description adds cross-parameter constraints the schema cannot express: pass both container_type and container_id together, use source_message_id to 'link it to what prompted it', and resolve assigned_to via search_users. The compact example clarifies the minimal valid payload. Not a 5 because container_type enum values and workspace_id get no dedicated description, though the error section partially offsets the container gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource — 'Create an action item' — and adds the optional attachment scope ('conversation or folder'). The USE INSTEAD clause names suggest_action_items_from_messages, the sibling most likely to be confused with this tool, so an agent can discriminate without opening the schema. This exceeds the baseline clarity of tools that rely on the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states WHEN to use it ('Recording a task') and WHEN NOT to ('USE INSTEAD: suggest_action_items_from_messages... instead of writing each one yourself'). It names the alternative tool, the condition that selects it, and even gives an example payload. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.