Skip to main content
Glama

Task, signal or case context

get_task_context
Read-only

Start any work here: one call equips you for a task, signal or support case. task: its objects, applicable decision statements (layer, rests_on, coverage), routes, playbooks, owners; fields via get_object. signal_id: its evidence, playbooks, playbook_drafts, suggested_action, remedy, handling, lifecycle and trust (weak joins and fields not to quote back), answer_with for Maplith's question, and approved_fix. case: identifier/topic are kinds, never customer values. Follow the rules; open a rule's source only if unclear; read payload.checks before acting on one. Still metadata: fetch rows in your human's own systems. Suggested actions forecast what request_action would decide, never a permission. Details: maplith://docs/signals-and-rules.

Input Schema

NameRequiredDescriptionDefault
caseNoA support case, in kinds.
taskNoPass one of task, signal_id and case.
contextNo{"client": "<company>"} (never a person): adds its confirmed variation.
rule_nodeNoOne rule group, by node_key.
signal_idNoA signal id from list_signals.
statement_keyNoRead one applicable rule in full.
statements_onlyNoRules alone, {} when none apply; call again with it only when your client cut a long answer.
statements_queryNoRank rules; never filter them.
statements_cursorNoNext page; keep the same query.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "{\"client\": \"<company>\"} (never a person): adds its confirmed variation.",
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / statements_only / description
      Previous value: -"Rules without other context."New value: +"Rules alone, {} when none apply; call again with it only when your client cut a long answer."
    • changedInput schema / properties / task / properties / references / description
      Previous value: -"Object names, paths or URLs."New value: +"Map object names, file paths or URLs; never a record id such as an order number."
  3. Changed1 schema field changed
    • addedInput schema / properties / task / properties / description / description
      Added value: +"What you were asked, in your own words; at most 2,000 characters."
  4. Changed6 schema fields changed
    • changedInput schema / properties / case / description
      Previous value: -"A support case instead of a signal. Kinds only: no e-mail address, number or name."New value: +"A support case, in kinds."
    • changedInput schema / properties / case / properties / identifier / description
      Previous value: -"The kind of identifier you hold for the customer, e.g. \"email\", \"phone\" or \"order number\"."New value: +"e.g. \"email\" or \"order number\", never a value"
    • changedInput schema / properties / case / properties / topic / description
      Previous value: -"The kind of case, e.g. \"return\", \"refund\" or \"delivery\"."New value: +"e.g. \"return\" or \"refund\""
    • addedInput schema / properties / rule_node
      Added value: +{
      +  "description": "One rule group, by node_key.",
      +  "maxLength": 32,
      +  "type": "string"
      +}
    • changedInput schema / properties / signal_id / description
      Previous value: -"The id of a signal from list_signals. Pass this or case, not both."New value: +"A signal id from list_signals."
    • addedInput schema / properties / task
      Added value: +{
      +  "description": "Pass one of task, signal_id and case.",
      +  "properties": {
      +    "description": {
      +      "maxLength": 2000,
      +      "type": "string"
      +    },
      +    "references": {
      +      "description": "Object names, paths or URLs.",
      +      "items": {
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "maxItems": 20,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "description"
      +  ],
      +  "type": "object"
      +}
  5. Changed4 schema fields changed
    • addedInput schema / properties / statement_key
      Added value: +{
      +  "description": "Read one applicable rule in full.",
      +  "maxLength": 80,
      +  "type": "string"
      +}
    • addedInput schema / properties / statements_cursor
      Added value: +{
      +  "description": "Next page; keep the same query.",
      +  "maxLength": 512,
      +  "type": "string"
      +}
    • addedInput schema / properties / statements_only
      Added value: +{
      +  "description": "Rules without other context.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / statements_query
      Added value: +{
      +  "description": "Rank rules; never filter them.",
      +  "maxLength": 300,
      +  "type": "string"
      +}
  6. Changed3 schema fields changed
    • addedInput schema / properties / case
      Added value: +{
      +  "description": "A support case instead of a signal. Kinds only: no e-mail address, number or name.",
      +  "properties": {
      +    "identifier": {
      +      "description": "The kind of identifier you hold for the customer, e.g. \"email\", \"phone\" or \"order number\".",
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    "topic": {
      +      "description": "The kind of case, e.g. \"return\", \"refund\" or \"delivery\".",
      +      "maxLength": 200,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "identifier",
      +    "topic"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / signal_id / description
      Previous value: -"The id of a signal from list_signals."New value: +"The id of a signal from list_signals. Pass this or case, not both."
    • removedInput schema / required
      Removed value: -[
      -  "signal_id"
      -]
  7. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly/non-destructive/closed-world, so the bar is low, yet the description adds substantial behavioral detail: the tool is metadata-only and does not fetch real rows, signals carry trust caveats (weak joins, fields not to quote back), statements_only returns {} when nothing applies, and the cursor exists because the client may cut a long answer. That is real context an agent cannot get from annotations.

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?

It is front-loaded with the key instruction and roughly the right length, but the middle is a long semicolon-separated dump that mixes mode contents, caveats and warnings into one undifferentiated block. Splitting the three modes into distinct sentences would cost nothing and greatly improve scanability.

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?

For a nine-parameter tool with nested objects, three mutually exclusive modes and no output schema, the description covers the critical ground: mode selection, the metadata-only boundary, the safety framing around suggested_action, truncation/pagination behavior, and a doc pointer for depth. The main gap is that it never sketches the shape of the returned context, which the absent output schema would otherwise require.

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 100%, so 3 is the baseline, but the description goes further by explaining what each mode yields (task → objects/routes/playbooks/owners; signal_id → evidence/remedy/handling/trust/answer_with/approved_fix) and adds ranking-vs-filtering semantics for statements_query plus the 'keep the same query' constraint on statements_cursor. Only rule_node, statement_key and context are left largely to 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?

The opening sentence gives a specific verb and scope ('one call equips you for a task, signal or support case') and then enumerates exactly what each of the three input modes returns. It is clearly a context-priming tool distinct from list_signals or get_object, though the dense semicolon chains and internal jargon (layer, rests_on, coverage, weak joins) make the purpose slightly harder to absorb than it needs to be.

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?

It states plainly when to call it ('Start any work here'), routes the agent elsewhere where appropriate ('fields via get_object', 'open a rule's source only if unclear'), and sets ordering rules ('read payload.checks before acting on one'). It also draws a hard boundary against misuse ('Still metadata: fetch rows in your human's own systems'; 'never a permission'), which is exactly the guidance an agent needs before acting.

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