Skip to main content
Glama
asisrasyid

SheetMaster Todo MCP

by asisrasyid

SheetMaster Todo MCP

Codex plugin for the SheetMaster Todo Google Apps Script API.

Authentication

Set the API key in the environment before starting Codex:

export SHEETMASTER_API_KEY="your_new_key"

Do not commit the key or put it in .mcp.json.

Related MCP server: TickTick MCP Server

Deploy to Vercel

  1. Import this repository into Vercel.

  2. Add SHEETMASTER_API_KEY in Project Settings → Environment Variables. Optionally add SHEETMASTER_TIMEOUT_MS=240000 (four minutes).

  3. Deploy and use https://YOUR_PROJECT.vercel.app/api/mcp as the remote MCP URL.

  4. Verify /api/health returns a successful health response.

The Vercel MCP function allows up to five minutes. Calls to Google Apps Script wait up to four minutes, leaving time for MCP to return a controlled response. Write operations are never retried automatically, preventing duplicate tasks.

Tools

  • get_boards, get_board

  • create_task, update_task, move_task, delete_task

  • create_subtask, update_subtask, delete_subtask

  • create_label, add_task_label, remove_task_label

  • add_assignee, remove_assignee

Available Tools

14 tools
add_assigneeC

Assign a user to a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes
userIdYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It doesn't disclose whether assignment is idempotent, what happens if the user is already assigned, or whether it requires specific permissions. Only the basic mutation nature is implied.

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

Conciseness4/5

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

A single, efficient sentence that is front-loaded and waste-free. It lacks necessary detail but is appropriately sized for its limited content.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is insufficient. It omits behavioral traits, parameter semantics, and usage guidance, leaving significant gaps for an agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but doesn't. It doesn't explain what taskId and userId represent or their format, leaving both parameters undocumented beyond their names in the schema.

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

Purpose4/5

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

States a specific verb (Assign) and resource (a user to a task), clearly distinguishing it from siblings like remove_assignee. It doesn't explicitly name alternatives, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like remove_assignee, or prerequisites such as whether the user must exist. The description merely states what it does without context for selection.

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

add_task_labelC

Attach a label to a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes
labelIdYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations available, the description must fully disclose behavior. 'Attach' implies a mutating operation, but it does not mention effects such as whether an existing label is replaced, permission requirements, or idempotency. No side effects or return behavior are described, leaving an agent uncertain about the operation's semantics.

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

Conciseness3/5

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

The description is a single short sentence, which is concise and front-loaded, but it is under-specified rather than efficiently detailed. It earns no extra credit for structure because it omits critical context that could be added without verbosity.

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

Completeness2/5

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

For a simple two-parameter tool, the description covers the basic action but lacks any guidance on parameter semantics, behavioral outcomes, or usage context. Without an output schema or annotations, an agent would need to guess how to use this tool correctly, making it incomplete.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not elaborate on the two parameters, taskId and labelId. The names are suggestive but not explained (e.g., what kind of IDs, how they are obtained, or constraints). Since the schema offers no descriptions either, the agent has no additional semantic context to correctly fill these parameters.

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

Purpose4/5

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

The description states a clear verb ('Attach') and resource ('a label to a task'), making the intent unambiguous. It differentiates from its direct sibling remove_task_label by direction (attach vs remove), though it does not explicitly name that sibling or any other alternative.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives like create_label, add_assignee, or remove_task_label. It neither states explicit conditions, prerequisites, nor exclusions. The context is only implicitly inferable from the tool's name and sibling set.

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

create_labelC

Create a label on a board.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
colorYes
boardIdYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but says nothing about permissions, whether label names must be unique, what happens on duplicate colors/names, or whether the operation is reversible. For a mutation tool, this is a significant gap.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized given its minimal content, though that brevity comes at the cost of missing detail elsewhere.

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

Completeness1/5

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

With no annotations, no output schema, three fully required parameters, and zero schema description coverage, the description is far too thin to guide correct invocation. It omits required-field expectations, parameter meanings, and any behavioral context.

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

Parameters1/5

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

The input schema has 3 required parameters with 0% description coverage, and the tool description adds no parameter-level information. It does not mention boardId, name, or color, so an agent gets no semantic guidance beyond the raw schema types and patterns.

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

Purpose4/5

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

The description states a specific verb and resource: 'Create a label'. It also scopes it to 'on a board', which distinguishes it from task-label attachment tools like add_task_label. It is clear but lacks any explicit differentiation from siblings.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives or exclusions. The description only implies usage from the verb itself.

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

create_subtaskC

Create a subtask under a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
taskIdYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Create' implies a mutation, but nothing is said about required permissions, whether the parent task must pre-exist, failure modes, or what the created subtask looks like. Only the barest mutation intent is conveyed.

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

Conciseness4/5

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

A single compact sentence with the resource front-loaded and no filler. It is efficient, though its brevity is partly under-specification rather than disciplined conciseness.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and 0% schema description coverage, the definition is too thin. An agent lacks the parent-task linkage semantics and any behavioral guarantees it would need to call this correctly.

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

Parameters2/5

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

Schema description coverage is 0% for two required parameters. The phrase 'under a task' weakly implies taskId is the parent, but nothing explains the title constraint (minLength 1) or the relationship semantics. The description does not compensate for the coverage gap.

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

Purpose4/5

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

The description states a specific verb+resource ('Create a subtask') and clarifies the parent relationship ('under a task'), which distinguishes it from create_task. It does not explicitly name or contrast with any sibling, but the resource is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus create_task or update_subtask, no prerequisite (e.g., the parent task must exist), and no exclusion conditions. The agent must infer the routing entirely from the name.

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

create_taskC

Create a task in a specific board column.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
boardIdYes
columnIdYes
priorityNomedium

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It confirms a write operation but says nothing about required permissions, whether the board and column must pre-exist, default field values, or what the created task includes. For a mutation tool with 4 parameters, this is a notable gap.

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

Conciseness4/5

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

A single efficient sentence with the key qualifier front-loaded. No wasted words, though it is arguably too terse given the missing details.

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

Completeness2/5

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

No annotations, no output schema, 0% schema description coverage, and 4 parameters – the description is incomplete for a creation tool. An agent lacks enough detail on prerequisites (existing board/column), priority handling, and return value.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema documents nothing beyond types and constraints. The description mentions only 'board column' and 'task title' implicitly; it says nothing about the priority parameter (enum with default), nor clarifies the required identifiers. It does not compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb (create) and resource (task), and adds scoping detail ('in a specific board column'). This distinguishes it reasonably from create_subtask, though it doesn't explicitly name the sibling alternative.

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

Usage Guidelines2/5

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

No when-to-use guidance, no exclusions, no mention of alternatives like create_subtask for nested tasks. The agent must infer context from the name and siblings alone.

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

delete_subtaskB

Permanently delete a subtask.

ParametersJSON Schema
NameRequiredDescriptionDefault
subTaskIdYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Permanently' usefully signals irreversibility, which is genuine added value, but it omits whether deletion cascades to child data, requires ownership permissions, or is recoverable.

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?

A single front-loaded sentence with zero filler; every word contributes to the meaning.

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

Completeness3/5

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

For a destructive one-param tool with no annotations and no output schema, the description is minimally adequate. The irreversibility note helps, but cascade behavior and permission requirements remain unaddressed.

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

Parameters2/5

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

The single subTaskId parameter has 0% schema description coverage and the description adds nothing about its format or source (e.g., obtained from get_board or get_boards). With one undocumented required param, the description fails to compensate.

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

Purpose4/5

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

States a specific verb and resource ('delete a subtask'), which distinguishes it from the sibling delete_task by scope. It is clear, though it doesn't explicitly name the sibling or contrast the two.

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

Usage Guidelines2/5

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

No guidance on when to use this versus update_subtask (e.g., clearing content) or delete_task for the whole task. The agent must infer usage entirely from the name.

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

delete_taskC

Permanently delete a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Permanently' usefully signals irreversibility, but it omits everything else a destructive tool needs: required permissions, whether confirmation is needed, and whether subtasks/labels/assignees cascade-delete or are orphaned.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though the brevity reflects under-specification rather than disciplined editing.

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

Completeness2/5

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

For a destructive, irreversible mutation with zero annotation coverage, no output schema, and an undocumented required parameter, the description is far too thin. It answers 'what' but nothing about safety, side effects, or the parameter.

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

Parameters2/5

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

Schema description coverage is 0% and the single taskId parameter is undocumented in both schema and description. The description says nothing about the identifier's format or source, so an agent must guess how to supply it.

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

Purpose4/5

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

States a specific verb (delete) and resource (task), and the adverb 'permanently' adds meaningful scope. However, it does not distinguish itself from the sibling delete_subtask, so an agent must infer the target type from the tool 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 Guidelines2/5

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

The description offers no when-to-use context, no prerequisites, and no routing to alternatives such as delete_subtask or update_task. An agent gets no signal about when deletion is the right choice versus updating.

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

get_boardB

Get a board with its columns, tasks, members, and labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYesBoard ID

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Get' implies a read-only operation and the description usefully discloses that the response aggregates columns, tasks, members, and labels, but it omits any access/permission requirements and says nothing about behavior for invalid or missing board IDs.

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?

A single well-formed sentence that front-loads the verb and resource and packs the return contents in without waste.

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

Completeness4/5

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

There is no output schema, so the description's enumeration of returned aggregates does real work in telling the agent what it receives. For a one-parameter read tool this is nearly complete, with only error/not-found behavior left unaddressed.

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

Parameters3/5

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

Schema description coverage is 100% and the single boardId parameter is described as 'Board ID' in the schema, so the baseline of 3 applies. The description adds no format, source, or constraints for the ID beyond what the schema already states.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('a board') and enumerates the returned aggregates (columns, tasks, members, labels). It is clearly distinguishable from task/label/assignee siblings, though it does not explicitly differentiate itself from the singular/plural pair get_boards.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of the alternative get_boards for listing multiple boards. The agent must infer when a single-board fetch is the right call versus the sibling list tool.

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

get_boardsB

List all Todo boards available to the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden, and it only tells the agent that the listing is user-scoped. It says nothing about whether results are paginated, sorted, truncated, or what a call requires beyond an authenticated session.

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?

A single front-loaded sentence with no restated name, no filler, and the scope constraint attached directly to the verb. Nothing here needs trimming.

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

Completeness3/5

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

For a zero-parameter list tool with no output schema, the description is minimally adequate but omits return-shape essentials such as pagination or whether all boards are returned. It covers the who but not the what-you-get.

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?

The tool takes zero parameters, so the baseline is 4. The description correctly signals there is no filtering argument by fixing the scope to the authenticated user, leaving nothing for the schema to clarify further.

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

Purpose4/5

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

The description states a specific verb and resource ('List all Todo boards') and scopes it to the authenticated user, which separates it from the singular sibling get_board by implication. It does not name the sibling explicitly, but the plural 'all' makes the distinction legible.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of the alternative get_board, and no stated prerequisites. The user scope is implied by 'authenticated user' but the agent is given no condition under which this tool should be preferred over its siblings.

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

move_taskC

Move a task to another column. Approval may be required.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes
positionYes
toColumnIdYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose one non-obvious behavioral trait: an approval step may gate the move. It still omits required permissions, what happens on approval failure, and whether the move is atomic, so the behavioral picture is incomplete but not empty.

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

Conciseness4/5

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

Two short sentences, action front-loaded before the caveat, with no filler. It is efficient, though its brevity edges toward under-specification rather than crispness.

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

Completeness2/5

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

This is a mutation tool with three required parameters, no annotations, no output schema, and 0% parameter documentation. The description does not convey enough for an agent to invoke it confidently, particularly around placement semantics and the approval workflow.

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

Parameters2/5

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

Schema coverage is 0% and none of the three required parameters are described. The purpose sentence implicitly maps taskId and toColumnId, but 'position' (an integer index for placement) is never explained, so the description fails to compensate for the schema gap.

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

Purpose4/5

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

States a specific verb (move), resource (task), and destination (another column), so the core action is unambiguous. It does not differentiate itself from sibling update_task, which could plausibly also change a task's column, leaving the agent to infer the boundary.

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

Usage Guidelines2/5

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

No guidance on when to use this versus update_task or the other task-mutating siblings. 'Approval may be required' hints at a precondition but does not tell the agent when this tool is the right choice or what triggers the approval path.

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

remove_assigneeC

Unassign a user from a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes
userIdYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden and does not deliver it: it does not say whether unassignment is reversible, whether notifications are sent, what permission level is required, or what happens if the user is not currently assigned. Only the bare mutation is implied.

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

Conciseness4/5

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

A single short sentence with zero padding and the verb front-loaded. It is efficient, though its brevity contributes to the missing detail scored elsewhere.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and two undocumented required parameters, the description does not supply enough for an agent to call it confidently. Return behavior and error conditions are left entirely unspecified.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema documents nothing about taskId and userId. The description's 'a user' and 'a task' loosely map to the two parameters but add no format, identifier type, or constraint detail to compensate for the coverage gap.

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

Purpose4/5

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

The description states a specific verb ('Unassign') and two resources (user, task), making the operation unambiguous. It does not explicitly name the sibling add_assignee or other alternatives, but the meaning is self-evident against the sibling list.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of related tools such as update_task or add_assignee, and no prerequisites or exclusions are stated. The agent must infer the usage context entirely.

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

remove_task_labelC

Remove a label from a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYes
labelIdYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not say whether the call is idempotent, what happens if the label is not on the task, whether permissions are required, or whether it is reversible. For a mutation tool this is a significant gap.

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

Conciseness4/5

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

A single short, front-loaded sentence with no waste. It is efficient, though the brevity reflects under-specification rather than disciplined concision.

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

Completeness2/5

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

A mutation tool with no annotations, no output schema, and zero-documented parameters needs more than one sentence. Nothing about side effects, failure modes, or expected response is conveyed.

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

Parameters2/5

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

Schema description coverage is 0% for two required parameters, so the schema offers no meaning at all. The description only implicitly names 'task' and 'label' via the sentence, adding little beyond the parameter names themselves and providing no format, ID-source, or constraint details.

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

Purpose4/5

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

States a specific verb ('Remove') and resource ('a label from a task'), so the operation is unambiguous. It is distinguishable from its siblings (add_task_label, create_label, delete_task) by the verb/resource pairing, though it never names them explicitly.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no mention of the complementary add_task_label tool, and no prerequisites or error conditions. The agent must infer usage entirely from the name.

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

update_subtaskB

Update a subtask title or completion state.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
subTaskIdYes
isCompletedNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It only mentions which fields can be updated, but does not disclose whether updates are partial, how validation behaves, whether permissions are required, or what the response looks like. For a mutation tool, this is insufficient.

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 a single, efficient sentence with no filler. The core action and scope are front-loaded, and every word earns its place.

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

Completeness2/5

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

For a 3-parameter mutation tool with no output schema and no annotations, this description is too sparse. It omits essential context such as the requirement for subTaskId, whether partial updates are allowed, and any return value or error behavior. An agent would need to infer too much.

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

Parameters2/5

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

Schema coverage is 0%, so the description should compensate. It mentions 'title' and 'completion state' which map to the title and isCompleted properties, but it does not explain that subTaskId is required, that the other fields are optional, or that both can be updated together. The schema already lists the parameters, so the description adds minimal meaning.

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?

The description states a clear verb ('Update') and resource ('subtask'), and specifies exactly what can be changed ('title or completion state'). This distinguishes it from create_subtask and delete_subtask, as well as update_task, since it targets subtasks specifically.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternative guidance is provided. However, the tool name and sibling list make it clear this is the dedicated tool for updating subtasks, so usage is implied rather than stated.

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

update_taskC

Update one or more fields of an existing task.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
taskIdYes
deadlineNoISO date string, or empty to clear
priorityNo
descriptionNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses only that updates are partial ('one or more fields'), but says nothing about permissions, whether omitted fields are preserved, whether changes are reversible, or that passing an empty deadline clears it (that detail lives only in the schema).

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

Conciseness4/5

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

A single front-loaded sentence with zero filler, which is efficient. It is under-specified rather than over-long, so the brevity costs it nothing structurally but leaves no room for the missing detail.

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

Completeness2/5

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

For a 5-parameter mutation tool with no annotations, no output schema, and sparse schema coverage, this description is not sufficient. It omits permissions, partial-update semantics on omitted fields, the clear-value behavior, and how it relates to update_subtask/move_task.

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

Parameters2/5

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

Schema description coverage is only 20% across 5 parameters, so the description must compensate and does not. It never names the updatable fields (title, deadline, priority, description) nor explains that deadline accepts an empty string to clear the value.

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

Purpose4/5

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

States a specific verb (update) and resource (existing task) and adds partial-update scope with 'one or more fields'. However it does nothing to distinguish itself from the close siblings update_subtask and move_task, which an agent could plausibly confuse with it.

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

Usage Guidelines2/5

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

No when-to-use guidance, no statement of when to prefer update_task over move_task or update_subtask, and no prerequisites. The agent is left to infer everything from the name and the sibling list.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.0
    • First observedadd_assignee
    • First observedadd_task_label
    • First observedcreate_label
    • First observedcreate_subtask
    • First observedcreate_task
    • First observeddelete_subtask
    • First observeddelete_task
    • First observedget_board
    • First observedget_boards
    • First observedmove_task
    • First observedremove_assignee
    • First observedremove_task_label
    • First observedupdate_subtask
    • First observedupdate_task

TDQS

B3.3/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource and action: boards, tasks, subtasks, labels, and assignees. The only potential confusion is get_boards versus get_board, but the plural/singular distinction and descriptions clearly separate list-all from fetch-one.

Naming Consistency5/5

All tools follow a clean snake_case verb_noun pattern (get_, create_, update_, move_, delete_, add_, remove_). The use of add/remove for label and assignee operations is semantically appropriate and consistent with the pattern.

Tool Count5/5

With 14 tools, the set covers a complete task-management workflow without bloat. Each tool maps to a meaningful operation, and the count is well within the ideal 3-15 range.

Completeness4/5

The tool surface covers full CRUD for tasks and subtasks, plus label and assignee management. The main gaps are board lifecycle operations like create/delete board and label deletion/update, but these may be intentionally managed outside this MCP.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers