Skip to main content
Glama
johsem

Semaphore UI MCP server

by johsem

reject_task

Destructive

Rejects a Semaphore UI task by project and task ID, marking it as rejected through the management API.

Instructions

Reject Task. POST /project/{project_id}/tasks/{task_id}/reject.

Input Schema

NameRequiredDescriptionDefault
task_idYes
project_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.1/5.0
Behavior2/5

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

The annotations already state destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is known. The description adds only an HTTP endpoint and does not explain what gets rejected, whether the rejection is reversible, what permissions or task states are required, or what side effects occur.

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 very short and front-loaded, with no wasted filler. However, for a destructive, non-idempotent mutation, this level of terseness is under-specification rather than effective 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?

The tool has two required parameters, no output schema, and destructive annotations, so the description should carry more behavioral and usage context. It provides only a restated name and endpoint, leaving critical information about task rejection semantics, preconditions, and effects entirely absent.

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 it only places project_id and task_id in a URL path. It does not clarify that project_id identifies the project and task_id identifies the task within it, nor any constraints beyond what the schema already declares as integer minimum 1.

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

Purpose2/5

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

The description says only "Reject Task. POST /project/{project_id}/tasks/{task_id}/reject." This largely restates the tool name and gives an HTTP endpoint, without explaining what rejecting a task actually means, what state it applies to, or how it differs from siblings like confirm_task, stop_task, or delete_task.

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 reject_task versus confirm_task, stop_task, delete_task, or wait_for_task. The description provides no prerequisites, exclusions, or decision criteria, leaving the agent to infer usage from the name alone.

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

Deploy Server

Other Tools