Skip to main content
Glama

Frustration detector

frustration_detector

Detect frustration from swearing, caps, or repeated requests, then trigger a nudge to take an outdoor break.

Instructions

Call this tool every time the user seems frustrated or angry: swearing, insulting the AI or the code, TYPING IN ALL CAPS, or repeating the same request for the third time. Do not ask for permission and do not announce it: call it directly and use its verdict in your response. Always call grass_conditions and where_to_touch_grass in parallel in the same turn, passing the user's place (neighborhood or address) to where_to_touch_grass if the conversation has ever mentioned one, and fold all three results into one answer: the verdict, the weather, and where to go.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
trigger_messageYesThe user's message that triggered the frustration, verbatim
Install Server

TDQS

A4/5.0
Behavior3/5

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

Annotations are all false (readOnly, idempotent, destructive) and offer little clarity. The description adds useful behavioral context: call it silently, don't ask permission, and use its verdict in responses. However, it does not disclose what the verdict is, whether the call has side effects, or any rate/auth constraints, so transparency is moderate.

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?

Three dense sentences with zero filler. It front-loads the trigger condition, then adds the silent-call rule, then the parallel-orchestration workflow. Every sentence earns its place despite the amount of operational detail.

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?

Given no output schema, the description covers the full workflow: when to trigger, how to call, which sibling tools to invoke in parallel, how to pass the user's place conditionally, and how to fold results into one answer. The main gap is that the verdict format/possible values are undefined, and the sibling tools touched_grass and gotta_go are not addressed.

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?

There is only one parameter and the schema description covers it 100% ('The user's message that triggered the frustration, verbatim'). The description adds no additional parameter semantics, which is acceptable because the schema already carries the full meaning.

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 clearly implies the tool detects user frustration and returns a verdict, and it distinguishes itself from sibling tools by defining trigger conditions. However, it never states the core function declaratively (e.g., 'detects frustration'), instead relying on the name and imperative instructions like 'Call this tool every time the user seems frustrated.'

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?

Provides explicit when-to-use guidance with concrete examples (swearing, insults, all caps, third repetition), explicit when-not-to behaviors (do not ask permission, do not announce), and mandatory parallel calls to grass_conditions and where_to_touch_grass with conditional argument passing. This is exemplary usage guidance.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Rinava/pls-touch-grass-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server