Skip to main content
Glama
meshive

meshive-mcp

Official
by meshive

Set Watched Folders

set_watched_folders
Idempotent

Manage which folders a running pod watches without a restart by reading current settings and sending the full updated template and user folder set with a version check.

Instructions

Replace a running pod's watched folders without restarting it. Read watched_folders first and send the WHOLE set back: template = {template folder path: {"enabled": bool, "include": [...] or null}} and user = [{"path", "include", "enabled", "include_existing"}]. expected_version is the revision you read; a version conflict means someone else changed it — read again. A running pod's template folder can't be moved: to save another folder instead, turn the template folder off and add the new path to user (the app keeps writing to $MESHIVE_OUTPUT_DIR, so tell the user to point the app there). Adding or turning on a folder can raise storage costs (uploaded files are stored and billed): with confirm=false (default) such a change only returns a summary; call again with confirm=true after the user agreed. Removing or turning off applies immediately. Every write requires operation_id. Reuse the ID returned by the preview, or generate a UUID before the first call. Keep it for confirmation and all retries; a new ID means a new operation. After a timeout, check operation_status and resource state before retrying.

Input Schema

NameRequiredDescriptionDefault
podYes
userNo
confirmNo
templateNo
workspaceNo
operation_idNo
expected_versionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotent/non-read-only/non-destructive, and the description adds substantial context on top: storage cost implications of enabling folders, the preview-vs-apply asymmetry (adds are gated by confirm, removals apply immediately), and optimistic concurrency via expected_version. The `operation_id` retry contract and the timeout guidance toward operation_status are exactly the kind of behavioral detail annotations can't express. It stops short of saying what happens to files under a folder that is dropped from the set, which is the one behavior a caller most needs to know given a whole-set replace.

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?

Front-loaded with purpose and the read-first instruction, then progressively more conditional detail. Dense but nearly every sentence carries operational weight (shapes, cost gate, version conflict, operation_id). The template-move workaround is long and slightly tangled, but it prevents a real failure mode, so it earns its space.

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 7-parameter, whole-set-replacement mutation with optimistic locking and a two-phase confirm flow, the description covers purpose, data shapes, concurrency, cost gating, and retry semantics, and it can lean on the existing output schema for return values. It is nearly complete except for the undocumented `workspace` parameter and the unspecified effect on files in folders removed by the replace.

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?

With 0% schema description coverage, the description must carry every parameter, and it does for most: concrete shapes for `template` and `user`, the meaning of `expected_version`, the default/false semantics of `confirm`, and the operation_id lifecycle. The notable gap is `workspace`, which is never mentioned anywhere and remains fully opaque. `pod` is only implied by context.

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 opening sentence gives a specific verb and resource (replace a running pod's watched folders) plus the key operational property that it applies without a restart. It also names the sibling `watched_folders` as the read counterpart, so an agent can separate this write tool from the read tool immediately.

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 the workflow explicitly: read watched_folders first, send the WHOLE set back, carry `revision` into `expected_version`, and re-read on conflict. It also gives the precise alternative path for the case this tool can't handle (template folder can't be moved — disable it and add the path to `user`), plus the confirm=false → confirm=true agreement gate.

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