Skip to main content
Glama

Take a signal

take_signal
Idempotent

Say you are working on a signal, so no other agent does the same work: it moves from open to in_progress, held by your key until held_until (24 hours unless you ask for 1 to 72); taking it again renews the hold. Pass the signal's created_at as signal_version exactly as list_signals or get_task_context returned it: you take the signal you read, never one a scan has rewritten since. Refused when another agent holds it, when someone else planned it and the plan is not past its date, when it waits on a person, or when it is done. With plan: true you pick it up for later: planned by your key with an optional due date (within the workspace's cap, by default 7 days for urgent, 30 for attention, 90 for info), and no other agent takes or plans it until then; the workspace limits how often one episode is planned. Finish with record_action (the answer's then names the call); to give it up, record outcome needs_human. If you report nothing, the hold runs out and the signal goes back to open. It changes nothing in any system. Needs: a key that may act, with approval or autonomously.

Input Schema

NameRequiredDescriptionDefault
dueNoWith plan: when you will have handled it, an ISO 8601 date or date and time: within the workspace’s severity cap (defaults: urgent 7 days, attention 30 days, info 90 days). Without a date: seven days or the shorter workspace cap.
planNoPlan it for later instead of taking it now: planned by your key until due.
hoursNoHow long to hold it, 1 to 72. Default 24. Not with plan.
signal_idYesThe signal from list_signals or get_task_context.
signal_versionYesThe signal's created_at exactly as list_signals or get_task_context returned it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations by disclosing hold duration and its default, renewal on re-take, expiration behavior when you report nothing, a per-episode planning rate limit, and severity-based planning caps. 'It changes nothing in any system' plus the key/permission requirement ('a key that may act, with approval or autonomously') fill in the auth and side-effect profile the annotations only gesture at.

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?

Purpose and state transition are front-loaded, and every clause carries operational information. It is dense and semicolon-chained, though, so the refusal list and planning rules are harder to scan than they need to be.

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?

With no output schema, the description still covers the full lifecycle an agent needs: how to acquire, how long it holds, how it expires, how to release, how to complete, and what blocks acquisition. Nothing required to call it correctly is missing.

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 already 100%, so the schema baseline is 3, but the description adds rationale the schema lacks: signal_version is an optimistic-concurrency guard ('you take the signal you read, never one a scan has rewritten since') and hours is mutually exclusive with plan, with the renewal semantics behind repeat calls. That is meaningful meaning beyond field-level text.

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?

States a specific verb and resource ('take' a 'signal') and the exact state transition it causes (open -> in_progress, held by your key). It is immediately distinguishable from list_signals (read) and record_action (finish) named in the same text.

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?

Explicitly routes the agent: use it to claim work now, use plan: true to pick it up for later, use record_action to finish, and record outcome needs_human to release. It enumerates the exact refusal conditions (held by another, planned by someone else and not past date, waiting on a person, done) so the agent can pre-check instead of guessing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources