Skip to main content
Glama

sync_push_batch

DestructiveIdempotent

Push MANY files into the primary vault in ONE call. Use this instead of looping sync_push whenever you have more than a couple of changed paths — the cost of sync_push is round trips, not bytes. Per-item semantics are identical to sync_push (Layer 3 base_sha CAS, superseded contract, content_b64 WAF fallback). Partial success is normal and returns HTTP 200: read results[] and match entries by path, NOT by position. A conflict result always carries remote_sha + conflict_reason so you can go straight to sync_merge. Request-level failures (duplicate paths in one batch, idempotency key reused with a different payload, >200 items, >4MB) return 4xx and apply NOTHING. Each item MUST carry content_sha (SHA1 hex of the decoded body, same algorithm as git_sha) — it powers both the integrity check and the retry-safe skipped_identical result. Newly created .md items may carry dedup_candidates (same merge/skip/store advisory as sync_push); a batch creating more than 10 new files skips the check entirely and reports dedup_skipped: "bulk".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesUp to 200 push items, 4MB total, one entry per unique path. Duplicate paths reject the whole batch.
device_idNoOptional batch-level device identifier; per-item device_id overrides it.
idempotency_keyYesREQUIRED. Opaque client-generated UUID, one per batch ATTEMPT-SET: reuse the same key when retrying the same items after a timeout (the server replays the stored results instead of re-applying), and generate a NEW key whenever the items change. Reusing a key with a different payload is a 400 collision, never a silent replay. Do not derive it from paths or content.
supports_supersededNoSame capability opt-in as sync_push, applied to every item in the batch.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • addedInput schema / $schema
      Added value: +"https://json-schema.org/draft/2020-12/schema"
  2. Added

TDQS

A5/5.0
Behavior5/5

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

Annotations define idempotentHint=true and destructiveHint=true, and the description enriches these with crucial behavioral details: partial success returns HTTP 200, results must be matched by path not position, conflict results carry remote_sha and conflict_reason, request-level failures apply nothing, and content_sha powers integrity checks and retry-safe skipped_identical. This goes well beyond the annotations without contradicting them.

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 every sentence carries essential operational information. It is front-loaded with purpose and usage, then systematically covers partial success, conflict handling, failure scenarios, and dedup logic. No filler or repetition — size is justified by the tool's complexity.

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?

For a batch mutation tool with no output schema, this description is exceptionally complete. It explains success/partial-failure semantics, request-level failure behavior, item constraints, retry safety, conflict resolution path, and dedup caveats. It leaves no major operational question unanswered.

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 schema already describes all parameters, but the description adds significant meaning. It explains that content_sha is 'SHA1 hex of the decoded body' and drives both integrity and 'skipped_identical' behavior. It details idempotency_key semantics (reuse for retries, new key for changed items, collision on mismatch), and batch-level constraints like duplicate paths and size limits. This transforms the schema from a data dictionary into operational guidance.

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 begins with 'Push MANY files into the primary vault in ONE call,' using a specific verb (Push), resource (files), and scope (MANY, primary vault). It explicitly contrasts with sync_push by advising to use it 'instead of looping sync_push,' which immediately distinguishes it from its sibling tool.

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?

Clear usage guidance is provided: 'Use this instead of looping sync_push whenever you have more than a couple of changed paths — the cost of sync_push is round trips, not bytes.' This explicitly states when to use the tool and references the alternative. It also cautions about partial success and request-level failure conditions, giving operational context for choosing this tool.

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

A3.5/5.0
Disambiguation4/5

Most tools clearly target distinct resources (tasks, docs, graph, sync, env_sync, handoffs, judgments, projects, vault). A few pairs could confuse, like sync_push vs vault_sync (which has a push action) and env_sync_write vs env_sync_txn_push, but descriptions mostly clarify boundaries.

Naming Consistency3/5

Names are predominantly snake_case with a noun_verb pattern (e.g., sync_push, task_write), but there are notable inconsistencies: plural/singular mismatches (dev_docs_read vs dev_doc_write, tasks_read vs task_write), verb-first names (list_papers, get_setup_guide, judgment_submit), and a dotted sub-namespace (env_sync.secret_pull) mixed with flat names (env_sync_txn_push).

Tool Count2/5

35 tools is a large surface for a personal note/sync server. While it spans many domains (auth, tasks, docs, sync, env_sync, graph, etc.), the sheer number feels heavy and likely overwhelms agents with too many choices, especially when several tools are consolidated sub-action surfaces.

Completeness3/5

Most domains have reasonable CRUD coverage (tasks, dev docs, graph, sync, env_sync, vault). However, noticeable gaps exist: memory has no write tool (only read), papers only support listing (no create/update/delete), assumptions have write but no dedicated read or delete, and judgment is effectively submit-and-list only.

Resources