Skip to main content
Glama

Store Value in Memory

kv_set
DestructiveIdempotent

Store a value durably under (namespace, key) with a TTL. Survives across your sessions - use it as memory between stateless runs. Value must be a string (JSON-encode objects), max 8192 bytes. TTL defaults to 30 days, max 90 days. Max 1000 keys per namespace.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYesKey within the namespace.
valueYesValue to store (string; JSON-encode structured data).
namespaceYesYour private namespace. Pick a long unique string; it acts as the access key.
ttl_secondsNoSeconds until expiry. Default 2592000.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=true, so the write nature is acknowledged. The description adds valuable behavioral details: durability across sessions, TTL default/max, value size limit (8192 bytes), and max keys per namespace (1000). These go beyond the structured annotations, enhancing transparency.

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 sentences, front-loaded with the core action, then constraints. Every sentence is information-dense and earns its place; no fluff or redundancy.

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?

The description covers durability, TTL behavior, size limits, and key namespace limits, which is strong for a set tool. It doesn't explicitly mention overwrite behavior or return value, but these are likely inferable given the destructiveHint annotation and absence of an output schema. Overall, well-rounded.

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 already provides 100% coverage for parameter descriptions. The description adds extra constraints not in the schema: value max size (8192 bytes) and max 1000 keys per namespace. It also reinforces the JSON-encoding guidance for the value, adding value beyond the schema's basic description.

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 the action ('Store a value durably under (namespace, key) with a TTL') and the resource semantics as persistent memory. It distinguishes from sibling kv_* tools by focusing on the write/set operation and the durability across sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear when-to-use context: 'use it as memory between stateless runs.' This implies the appropriate alternative usage (e.g., kv_get for retrieval) but does not explicitly exclude other tools or mention when-not to use it.

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.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a unique, clearly defined purpose (counters, cron, DNS, email, fixtures, webhooks, KV, locks, name checks, regex, timers, timezone, URL checks). There is no functional overlap; even closely related tools like timer_schedule and cron_next are clearly separated by descriptions.

Naming Consistency4/5

The dominant naming pattern is <resource>_<action> (e.g., inbox_create, kv_get, lock_acquire, tz_convert). A few tools deviate, such as counter_next and cron_next (resource_qualifier), fixture_rows (resource_noun), and request_tool (verb_noun), but these are minor and do not obscure the overall pattern.

Tool Count3/5

At 24 tools, the server exceeds the typical 3-15 range, leaning heavy. The tools cover many independent utility categories, each with a minimal set of operations, but the overall count feels slightly excessive for a single server, though it is justified by the broad scope.

Completeness4/5

The server provides complete lifecycles for its functional areas: KV (set/get/list/delete), inbox (create/poll/delete), locks (acquire/release), timers (schedule/status/cancel/verify). Each utility is self-contained, and the request_tool offers a path for extending the surface. No obvious gaps or dead ends within the intended domain.

Resources