Skip to main content
Glama

Write a drop's stored data

dropyour_write_data
Destructive

Write a drop's app data — replace the shared-memory state (the JSON key/value object mirroring the app's localStorage), so you can update what the app holds (mark a task done, add a row…). Read it first with read_data, modify the object, write it back WHOLE. Only works on a drop with server memory (an account drop) — an anonymous drop's data lives in the browser and can't be written here. expectedVersion (from read_data) is REQUIRED: the write is rejected (version_conflict) if the data changed meanwhile — re-read and retry, so you never overwrite blindly. For a fresh state, read_data returns version 0. With an account token, owned drops need no managementToken.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesThe FULL new app state as a JSON object (key/value, ≤1MB). It replaces the current state.
dropIdYes
expectedVersionYesREQUIRED — the version returned by read_data. If stale, the write is refused (version_conflict); re-read and retry. Use 0 for a fresh (empty) state.
managementTokenNo

TDQS

A4.8/5.0
Behavior5/5

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

The description goes well beyond the destructiveHint annotation by explaining exactly what gets replaced, when writes are rejected (version_conflict), and why re-reading and retrying is required. It also discloses the server-memory limitation and clarifies the managementToken condition for account drops.

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?

The description is dense but each sentence earns its place: operation, workflow, constraint, failure mode, and authentication are all covered. The key action and scope are front-loaded, and the version-conflict guidance is clear without padding.

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 prerequisites, exclusions, failure behavior, and auth context for this state-replacement operation. The only notable gap is the success return value, since there is no output schema; however, this is a minor omission for a tool whose core behavior is so clearly specified.

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 only 50%, so the description must compensate. It does for data and expectedVersion, adding that data must be the FULL object and expectedVersion must come from read_data. managementToken is partially clarified by saying owned drops need none, but dropId itself is left to inference.

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 states a specific verb and resource: it writes/replaces a drop's shared-memory app data. It clearly distinguishes itself from read_data and explains the data it operates on, so an agent can tell it apart from sibling tools without opening their schemas.

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 explicitly instructs to read first with read_data, modify, and write back the whole object. It also gives a firm exclusion: anonymous drops cannot be written here because their data lives in the browser. The expectedVersion requirement adds a clear precondition for successful use.

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/5.0
Disambiguation4/5

Most tools target clearly distinct resources and actions, and descriptions do a good job separating overlapping areas like call/release/status or read_content/read_app_files. The main risk is momentary confusion between publish/replace/release and the two read-content tools, but careful reading resolves it.

Naming Consistency3/5

All names share the dropyour_ prefix and use snake_case, but the overall pattern is mixed: read_* and list_versions use verb-first naming, while records_list, secret_set, secret_delete, and secrets_list use noun-first naming, and logs/status/whoami are bare nouns. Still readable, but not a consistent verb_noun convention.

Tool Count3/5

23 tools is on the heavy side for a single server and spans several distinct subdomains: drop lifecycle, graduated apps, data, records, secrets, scheduling, and auth. Each tool appears purposeful, but the surface could reasonably be split into focused servers.

Completeness5/5

The set covers the full drop lifecycle — publish, replace, release, rollback, delete, status, settings — plus graduated app concerns like files, logs, versions, store records, app data, secrets, and scheduling. There are no obvious dead ends for the stated domain.