Skip to main content
Glama

sync_read

Read-onlyIdempotent

Read-only vault sync operations. action: list | pull | diff | merge | conflicts. Writes (push/delete) are separate tools — they carry CAS semantics. (consolidated surface — same handlers as the legacy tools) Required per action — diff: path | merge: path, base_text, local_text.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNo[list] Directory to list (e.g., 'global'). Omit to list from the first page. [pull] Optional directory filter (e.g., 'global' to pull only global files) [diff] Relative vault path. [merge] Relative vault path (e.g., 'global/MEMORY.md'). [conflicts] Optional: filter to a specific path.
limitNo[list] Max entries per page. Default 200, max 1000. [pull] Max files per page. Default 25, max 100. [conflicts] Optional: max rows to return (default 50, max 200).
sinceNo[pull] ISO 8601 timestamp. Only return files updated after this time. Omit to start from the first page.
actionYeswhich operation to run
cursorNo[list] Pass `next_cursor` from the previous response to fetch the next page. [pull] Pass `next_cursor` from the previous response to fetch the next page.
base_shaNo[merge] Optional: git_sha the client believes is the merge base. When supplied, server verifies (informational; merge still runs).
base_textNo[diff] Optional: client's baseline (last-known remote). When supplied along with local_text, response includes both diffs (base → remote, base → local) so the client can render a 3-way view. [merge] Common ancestor text — what the client had cached when it started editing. Source: client state.json baseline. Required.
device_idNo[merge] Optional: client device identifier. Recorded on any vault_conflict row created downstream.
local_textNo[diff] Optional: client's current text. When supplied, response includes unified diff (remote → local). [merge] Current local text on the client (post-edit). Required.

Schema Changelog

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

  1. Changed4 schema fields changed
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "[list] Pass `next_cursor` from the previous response to fetch the next page. [pull] Pass `next_cursor` from the previous response to fetch the next page.",
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"[conflicts] Optional: max rows to return (default 50, max 200)."New value: +"[list] Max entries per page. Default 200, max 1000. [pull] Max files per page. Default 25, max 100. [conflicts] Optional: max rows to return (default 50, max 200)."
    • changedInput schema / properties / path / description
      Previous value: -"[list] Directory to list (e.g., 'global'). Omit to list all files. [pull] Optional directory filter (e.g., 'global' to pull only global files) [diff] Relative vault path. [merge] Relative vault path (e.g., 'global/MEMORY.md'). [conflicts] Optional: filter to a specific path."New value: +"[list] Directory to list (e.g., 'global'). Omit to list from the first page. [pull] Optional directory filter (e.g., 'global' to pull only global files) [diff] Relative vault path. [merge] Relative vault path (e.g., 'global/MEMORY.md'). [conflicts] Optional: filter to a specific path."
    • changedInput schema / properties / since / description
      Previous value: -"[pull] ISO 8601 timestamp. Only return files updated after this time. Omit to get all files."New value: +"[pull] ISO 8601 timestamp. Only return files updated after this time. Omit to start from the first page."
  2. Changed1 schema field changed
    • addedInput schema / $schema
      Added value: +"https://json-schema.org/draft/2020-12/schema"
  3. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description reinforces the read-only nature and adds action-specific constraints (e.g., 'Required per action'). There is no contradiction, and the additional behavioral context around consolidated handlers and CAS semantics is helpful.

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 extremely concise: two sentences and a brief per-action note. Every sentence adds unique information and nothing is redundant. Front-loaded with the core purpose, it wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (9 parameters, 5 actions) and no output schema, the description is somewhat incomplete. It does not explain what each action returns (e.g., list yields paginated entries, merge yields a merged result) nor address pagination handling beyond parameter hints in the schema. The description covers the 'what' but not the 'what comes back'.

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 description coverage is 100%, so baseline is 3. The description adds value by summarizing required parameters per action ('diff: path | merge: path, base_text, local_text') and explaining the overall action-based structure, which helps the agent understand parameter relationships without deep schema inspection.

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 'Read-only vault sync operations' and enumerates the five specific actions (list, pull, diff, merge, conflicts). It distinguishes from sibling write tools (push/delete) and references CAS semantics, making the tool's scope unambiguous.

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?

The description explicitly separates write operations into other tools and notes required parameters per action (e.g., diff: path, merge: path, base_text, local_text). However, it does not directly contrast with other read sibling tools like vault_read or env_sync_read, which could cause confusion in a broader context.

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