Skip to main content
Glama

log_touch_grass

Records an outdoor break, increments your touch-grass streak and total, and updates daily streak based on time since last entry. Use only after you return from outside.

Instructions

Writes to local state. Records that the user went outside, increments total touches, and either extends or resets the daily streak based on the gap since the last entry. Mutates ~/.touch-grass/state.json (streak, longestStreak, totalTouches, history). NOT idempotent — each call adds an entry. Errors (e.g., disk full, permission denied on ~/.touch-grass) surface as structured tool errors with isError=true; the streak is not partially updated on failure.

Side effects: append-only file write. No network calls. No auth required. The mutation is local-only and persists across sessions.

When to use: ONLY after the user explicitly confirms they went outside (e.g., 'I just got back from a walk', 'done — touched grass'). Never on speculation.

When NOT to use: never call to 'test' the tool — every invocation permanently inflates the user's streak/totals and there is no built-in undo. Don't call when the user is merely planning to go outside; wait for confirmation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
activityNoFree-form label describing what the user just did outside (e.g., 'walk', 'coffee on porch', 'stretched'). Stored verbatim as the `activity` field of this streak entry in ~/.touch-grass/state.json — it becomes the human-readable record of THIS recording action. Optional; defaults to 'outside time'. Has no effect on streak math; purely descriptive metadata for history readback.
Behavior5/5

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

Describes mutation of ~/.touch-grass/state.json, non-idempotency, side effects (append-only write), error handling (no partial update, structured errors), and absence of auth/network. Adds significant detail beyond annotations (readOnlyHint=false, idempotentHint=false).

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 well-structured with sections for behavior, side effects, and usage guidance. It is comprehensive but slightly longer than necessary; however, every sentence adds value, so no wasted words.

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?

Given the tool's simplicity (1 optional param, no output schema), the description covers purpose, behavior, error conditions, and usage constraints completely. No gaps remain.

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

Parameters5/5

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

The single parameter 'activity' is fully described: free-form label, optional, stored verbatim, no effect on streak math, purely descriptive. Schema coverage is 100%, and the description adds meaningful context beyond the schema.

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 clearly states that the tool records a user's outdoor activity, incrementing touch counts and updating streak logic. It distinguishes itself from sibling tools (check_grass_conditions, get_stats, suggest_activity) by being the only one that mutates state and logs a confirmed session.

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 specifies when to use (only after user confirms going outside) and when NOT to use (never for testing or planning). Provides clear alternatives and warns against speculation, making it highly actionable.

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

Install Server

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/nalediym/touch-grass'

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