Skip to main content
Glama

MindSync AI

Local-first MCP orchestration, persistent shared memory, and automatic task routing for coding agents.

CI PyPI version PyPI downloads Python versions License: MIT MCP Compatible

🌐 adityarya24.github.io/mindsync-ai


šŸ’” What is MindSync?

MindSync connects disparate AI coding agents (Codex, Claude Code, Gemini CLI, Antigravity, Grok, Cursor, OpenCode, Aider) into a single, coordinated local ecosystem without requiring a cloud SaaS account or third-party servers.

The human-facing CLI session you are talking to remains in charge as the orchestrator. MindSync routes subtasks by domain capability, enforces file locks to prevent multi-agent collisions, tracks rate limits for seamless quota handoff across providers, and preserves long-term factual memory across sessions.

                    ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
                    │   You (Human Prompt)   │
                    ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                                │
                                ā–¼
         ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
         │     Human-Facing CLI Session (Orchestrator)    │
         │  (e.g., Codex / Claude / Gemini / Grok / ...)   │
         ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                                │ (MCP Protocol)
                                ā–¼
  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
  │                        MINDSYNC CORE                        │
  │  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”  │
  │  │  Capability Router    │  Conflict Prevention Shield   │  │
  │  ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¤  │
  │  │  Quota & Handoff Tier │  Vector Memory (`sqlite-vec`) │  │
  │  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜  │
  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                                │ (Isolated Worktrees)
         ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
         ā–¼                      ā–¼                      ā–¼
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│   Codex Worker   │  │  Claude Worker   │  │  Gemini / Grok   │
│  (Implementation)│  │ (Deep Reasoning) │  │ (Audit & Search) │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

Key Guarantee: Dispatched workers receive bounded tasks inside isolated Git worktrees and cannot recursively re-delegate through MindSync.


Related MCP server: Agent Nudge

⚔ Quick Start

1. Installation

pip install mindsync-ai

(Requires Python 3.10+)

2. Automated Auto-Discovery & Setup

# Auto-detects installed MCP hosts and PATH coding CLIs
mindsync setup --mode auto

# Verify system health, lock engines, and adapter status
mindsync doctor

# Inspect available agent roster and capabilities
mindsync agents

Restart your CLI sessions after setup to load the registered MCP servers.

# Additional setup options
mindsync setup --dry-run          # Preview changes without modifying host configs
mindsync setup --cli grok         # Target a specific host only
mindsync setup --no-discover      # Register hosts without PATH CLI scanning
mindsync setup --no-hooks         # Skip Codex standalone hooks

šŸ¤– Supported Clients & Roster

A CLI may act as an MCP Host (orchestrator), a Worker (dispatched execution), or both:

CLI / Engine

MCP Host

Dispatched Worker

Domain Strength / Role

OpenAI Codex

Native

Yes

Fast implementation, refactoring, standalone memory hooks

Anthropic Claude Code

Native

Yes

Architecture, comprehensive reviews, massive context

Google Gemini CLI

Native

Yes

Research, multimodal analysis, tool integrations

Antigravity (agy)

Via Gemini

Yes

Preferred execution worker in Gemini family

Grok CLI (xAI)

Native

Yes

Codebase exploration, security audit, rapid synthesis

Cursor Agent

JSON (mcp.json)

Yes

In-IDE pair programming, file editing

OpenCode

JSON (opencode.jsonc)

Yes

Context-first systems counseling & multi-model routing

Aider

—

Yes

Surgical git diffs & local file edits

ā„¹ļø Family Isolation: Gemini CLI and agy share the gemini-antigravity family. When either is the human-facing orchestrator, both are excluded from automatic worker selection to protect orchestrator bandwidth.


šŸŽÆ Orchestration & Capability Dispatch

Policy configuration is located at ~/.mindsync/orchestration.json (Modes: auto, suggest, off).

Run Dispatched Jobs

# Route task automatically to best suited agent by capability
mindsync-dispatch run auto "implement and test the auth fix" --capability coding

# Check status of running or completed jobs
mindsync-dispatch status

Automatic Provider Quota Handoff

MindSync prevents blocked workflows when an LLM provider's quota exhausts mid-task. When enabled with an isolated worktree, MindSync transfers the working state, task prompt, and latest checkpoint to a ranked successor agent:

# Run with worktree isolation and automatic quota handoff
mindsync-dispatch run auto "refactor database schema" --write --worktree --on-limit handoff

# Inspect provider and account cooldowns
mindsync-dispatch limits

# Clear cooldowns manually after operator verification
mindsync-dispatch limits clear

Pre-emptive Usage Evaluation

MindSync includes pluggable usage readers. Bundled readers use local CLI/IDE session stores (not browser cookies). A missing or failed read stays unavailable — dispatch does not invent a percent.

Adapter

Reader

Local source

codex

codex-oauth

~/.codex/auth.json + ChatGPT WHAM usage

claude

claude-oauth

~/.claude/.credentials.json + Anthropic OAuth usage

grok

grok-oauth

Grok CLI session + billing credits

agy / gemini

antigravity-oauth

Official Antigravity CLI vault + quota summary

cursor

cursor-oauth

Cursor IDE session DB (User/globalStorage/state.vscdb), read-only. Opt-in: usage.readers.cursor: true. Off by default — this is not a Cursor CLI auth file.

opencode

opencode-go

OpenCode Go plan key only, not BYOK upstreams

Antigravity token refresh. A still-valid access token is enough to read quota. If the token has expired, refresh needs the official installed-app OAuth client. Set both of these in the environment of the process that runs dispatch/MCP — they are not stored in the repo:

  • MINDSYNC_ANTIGRAVITY_CLIENT_ID

  • MINDSYNC_ANTIGRAVITY_CLIENT_SECRET

Without them, an expired Antigravity token makes the reader return unavailable (neutral, not a fake 0%). mindsync doctor reports the adapter as preemptive only when usage.enabled is on.

{
  "usage": {
    "enabled": false,
    "defaultThresholdPercent": 90,
    "orchestratorReservePercent": 80,
    "pollingIntervalSeconds": 60,
    "readers": {
      "cursor": false
    }
  }
}
  • defaultThresholdPercent: Dispatched worker handoff threshold.

  • orchestratorReservePercent: Threshold for warning the operator before starting large runs.

  • readers.cursor: Must be true before MindSync opens Cursor's IDE state.vscdb. The other bundled readers do not need a per-reader flag.

  • If a provider reaches threshold and a MindSync checkpoint exists, dispatch safely transfers the worktree diff to the successor agent.

Automated Pull Request Workflow

Configure MindSync to automatically publish branches and open PRs upon successful task completion:

# Enable PR creation upon successful completion for current repository
mindsync config onComplete pr --project .

(MindSync never auto-merges PRs and strictly declines to publish if checks fail or if secrets/sensitive tokens are detected in diffs).


🧠 Persistent Memory & Shared Facts

MindSync embeds a lightweight, local vector and relational database powered by sqlite-vec for cross-session knowledge retention:

# View memory database statistics
mindsync memory stats

# List recorded facts for a specific repository
mindsync memory list --project my-repo

# Semantic search across historical decisions and architecture facts
mindsync memory recall --project my-repo --query "database migration decision"

MCP Tool Bundles

  • Orchestrator Hosts (16 Tools): Exposes full orchestration (delegate_task, route_task, get_sync_context, update_focus, memory_checkpoint, memory_recall, queue_durable_fact, etc.).

  • Dispatched Workers (12 Tools): Runs with MINDSYNC_WORKER=1, omitting recursive delegation tools while retaining shared context, focus locks, and fact retrieval.


šŸ”’ Safety & Security Architecture

  1. Human-in-the-Loop Authority: The human-facing orchestrator CLI always retains final approval and verification.

  2. Explicit Binary Execution: mindsync setup only configures known recipes. Unknown binaries are suggested, never executed blindly.

  3. Crash-Safe Locking: State updates use atomic writes and file locks. On Windows, lock contention timeouts are configurable via environment variables.

  4. Secret-Safe Serialization: Job status, telemetry, and handoff payloads strictly strip access tokens, auth headers, and raw credential structures before logging.


āš™ļø Advanced Configuration & Environment Variables

Variable

Description

Default

MINDSYNC_HOME

Root configuration directory

~/.mindsync

AGENT_DISPATCH_HOME

Storage for dispatch jobs and rosters

~/.mindsync/dispatch

MINDSYNC_CALLER_CLI

Declares calling CLI engine identity

Auto-detected

MINDSYNC_QUEUE_LOCK_TIMEOUT

Max wait time for file locks (seconds)

10.0

MINDSYNC_LOCK_CONTENTION_BACKOFF_BASE

Backoff base for Windows lock contention

0.05

MINDSYNC_SSH_HOST

Remote VPS host for optional sync

—

MINDSYNC_REMOTE_ROOT

Remote VPS sync directory

—

MINDSYNC_ANTIGRAVITY_CLIENT_ID

Google installed-app client id for Antigravity token refresh

—

MINDSYNC_ANTIGRAVITY_CLIENT_SECRET

Matching client secret. Required only when the vault access token is expired; omit both rather than guessing

—


šŸ› ļø Development & Testing

# 1. Clone repository
git clone https://github.com/adityarya24/mindsync-ai.git
cd mindsync-ai

# 2. Set up virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# 3. Install in editable mode with development dependencies
python -m pip install -e ".[dev]"

# 4. Run linter & test suite
python -m ruff check .
python -m pytest -q

šŸ“„ License

Distributed under the MIT License. Open-source and free for personal and commercial use.

Available Tools

16 tools
delegate_taskA

Delegate a task to a headless CLI agent or role.

The default agent='auto' selects an installed worker by capability. Pass required_capabilities when the orchestrator already knows what the task needs, and exclude_agents to keep the human-facing orchestrator out of the worker pool. Direct agent selection and static roles remain available as explicit overrides. If worktree is True, the agent runs in an isolated git worktree branching from cwd. checks are shell commands run after the agent finishes (for example a test command); read their outcome with job_review before spending anything on the job's output. memory_mode controls dispatch memory: auto (the default) infers an opaque Git checkout identity when no project is supplied, explicit requires memory_project, and off disables memory. An explicit project overrides inference. Raw prompts are never stored in memory. on_limit='handoff' is opt-in and requires worktree=True; only a configured, provider-specific quota signature can rotate to another available agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
roleNo
agentNo
modelNo
writeNo
checksNo
effortNo
promptNo
on_limitNostop
worktreeNo
agent_nameNodefault_agent
backgroundNo
memory_modeNoauto
exclude_agentsNo
memory_projectNo
required_capabilitiesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full disclosure burden — and it does substantial work: it reveals git worktree isolation "branching from cwd," post-run checks semantics, memory persistence modes (auto infers an opaque Git checkout identity, explicit requires memory_project, off disables memory), and the privacy guarantee that "Raw prompts are never stored in memory." It also discloses the handoff constraint requiring "a configured, provider-specific quota signature" to rotate agents. Material behaviors remain undisclosed — notably what write=false vs true controls and how background dispatch behaves — so it is strong but not exhaustive.

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?

Tight prose blocks each cover a distinct concern — purpose, agent selection, worktree isolation, checks, memory, on_limit — with the core purpose front-loaded in the first sentence. The length (roughly 150 words) is justified by 16 parameters and zero schema descriptions, and there are no filler sentences. A bulleted layout would improve scannability, but nothing here is wasted.

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?

The output schema relieves the return-value burden, and the description covers the most behaviorally complex parameters well. But for a 16-parameter tool with no annotations and 0% schema coverage, key semantics are still missing: the default on_limit='stop' behavior, what the write flag controls, background/async execution semantics, and effort/model/agent_name overrides. The description is adequate for an expert caller but incomplete for an agent that must reason correctly about all 16 fields.

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 0%, so the description must compensate, and it does for the least obvious parameters: agent selection with capability-based auto default, required_capabilities, exclude_agents, memory_mode with its auto/explicit/off semantics, memory_project overrides, worktree isolation, checks as post-run shell commands, and the on_limit handoff path. However, several parameters (background, write, effort, model, agent_name, prompt) receive no clarification, leaving gaps an agent must infer from parameter names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+target: "Delegate a task to a headless CLI agent or role." The 'headless' qualifier differentiates this execution-side dispatching from contextual siblings like route_task and the memory tools, though no sibling is named explicitly in the purpose statement. The rest of the description reinforces the purpose by explaining how automatic agent selection delegates to installed workers.

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?

Gives concrete when-to conditions: pass required_capabilities "when the orchestrator already knows what the task needs," use exclude_agents to keep the human-facing orchestrator out of the worker pool, and opt into on_limit='handoff' only with worktree=True. It also directs the caller to "read their outcome with job_review before spending anything on the job's output," which is a useful follow-up pointer. It never names an alternative tool to choose instead (such as preferring route_task for routing-only decisions), so it stops short of explicit when-not guidance.

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

eventsC

Event bus: publish, poll, or subscribe.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
actionYes
payloadNo
since_seqNo
agent_nameYes
event_typeNo
event_typesNo
correlation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral disclosure burden. It only lists operation names and does not reveal whether publish persists events, whether poll consumes them, whether subscribe creates a durable subscription, or what ordering and acknowledgement guarantees exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sentence is concise and front-loaded with the resource, containing no wasteful phrasing. However, for an eight-parameter tool with no annotations, this brevity borders on under-specification and omits operation-critical detail.

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

Completeness2/5

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

Although an output schema reduces the need to document return values, the description is still too sparse for a stateful event bus with required `agent_name`, optional `payload`, and sequence-based polling fields. An agent cannot reliably construct a correct invocation without guessing action values or parameter groupings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the text needed to explain the eight parameters, but it only hints at `action` values via 'publish, poll, subscribe'. Parameters such as `since_seq`, `event_types`, `correlation_id`, and `limit` are not linked to any operation mode or given a semantic role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('Event bus') and names three concrete operations: publish, poll, and subscribe. This is clear and distinguishes the tool from unrelated siblings, though it does not explicitly state that the required `action` parameter selects among these operations.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool rather than a sibling, nor when to choose publish versus poll versus subscribe. The event-bus framing implies a general use case, but the agent is left to infer the trigger conditions and alternatives.

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

get_orchestration_policyB

Read automatic delegation policy. Call when deciding whether to delegate or offer it.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameNodefault_agent

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

The word 'Read' implies a non-mutating operation, and there are no annotations to contradict that, but the description does not disclose return format, error behavior, or whether any side effects occur. Since no annotations are present, the description alone carries this burden.

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 two short sentences and gets to the point quickly. No unnecessary detail or repetition.

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?

For a simple read operation, the description is mostly sufficient, but it omits parameter semantics and does not mention what the response contains. This leaves minor but real gaps for a caller.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter, agent_name, but the description does not explain its meaning or expected values. The title and default value provide only minimal hints, leaving the parameter underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Read automatic delegation policy') and identifies the resource, so the core purpose is clear. The phrase 'or offer it' is slightly ambiguous but does not obscure the main function.

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

Usage Guidelines3/5

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

Provides a usage cue ('Call when deciding whether to delegate or offer it') but does not explicitly state when not to use it or name alternative tools. Sibling tools like delegate_task and route_task exist, yet the description does not contrast with them.

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

get_sync_contextA

Load local session state + compiled truth. Optionally pull remote truth first.

Offline-first: always returns local data even if remote is unreachable or disabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameYes
project_nameNo
refresh_remoteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It reveals the offline-first behavior and optional remote pull. However, it does not state whether the tool modifies local state, what happens on error (beyond returning local data), or any permission or side effects.

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?

Two sentences with no filler. The first sentence states the primary action, and the second adds a critical qualifier. Every word is meaningful and front-loaded.

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?

Given the presence of an output schema (which presumably documents return values), the description covers the essential behavior and key constraints. It is sufficient for an agent to understand the tool's role, though terms like 'local session state' and 'compiled truth' could be clarified further.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description should compensate. It only hints at the 'refresh_remote' parameter ('Optionally pull remote truth first'), but provides no context for 'agent_name' or 'project_name'. Only one of three parameters receives any semantic value.

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 tool loads local session state and compiled truth, with optional remote pull. The verb 'load' and resources 'session state' and 'compiled truth' are specific, and the offline-first behavior distinguishes it from related tools like pull_truth.

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

Usage Guidelines3/5

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

The description implies use for offline-first scenarios ('always returns local data') but does not explicitly state when to use this tool versus siblings like pull_truth or sync_offline_facts. No guidance on when not to use or prerequisites.

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

healthB

Report local paths, queue depth, and remote reachability.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameNosystem

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description must carry the burden. 'Report' implies a read operation, and the listed outputs provide some transparency. However, it doesn't explicitly state read-only nature or potential side effects.

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?

Single sentence with no redundant words. Efficiently communicates the key report contents.

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

Completeness2/5

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

Although an output schema exists, the description lacks important context about parameter purpose and usage scenarios. For a simple health tool, it is incomplete, especially given the lack of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fails to explain the 'agent_name' parameter. Its default 'system' suggests filtering, but no such explanation is given, leaving the agent without guidance on parameter usage.

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 tool reports health metrics: 'local paths, queue depth, and remote reachability.' The verb 'Report' and specific resources make the purpose unambiguous and distinct from sibling tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_sync_context or queue_durable_fact. No context about prerequisites or intended scenarios.

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

jobC

Job lifecycle: status, wait, result, review, or cancel.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
job_idNo
agent_nameNodefault_agent
timeout_secondsNo
poll_interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It does not explain whether 'cancel' is destructive, whether 'wait' blocks or requires a timeout, whether 'status' and 'result' are read-only, or what side effects any action may have. The word 'lifecycle' hints at state changes, but concrete behavioral details are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loads the resource and action names, which is efficient. However, the brevity crosses into under-specification for a tool with multiple parameterized actions. It is concise but not sufficiently informative for the complexity of the tool.

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

Completeness2/5

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

For a tool with five parameters, no annotations, no parameter descriptions, and no action enum, this description is materially incomplete. An output schema exists but does not compensate for the missing guidance on how to invoke each action and which parameters are relevant. The agent would need outside knowledge to use this tool reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not map the five parameters to their purpose or to specific actions. While the description implies that 'action' accepts values like status/wait/result/review/cancel, it does not explain how job_id, agent_name, timeout_seconds, or poll_interval_seconds should be used across those actions. The agent cannot reliably construct a valid call without additional inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('job') and enumerates the operations it supports ('status, wait, result, review, or cancel'), making it clear this is a job lifecycle tool. It does not explicitly state a single verb like 'manage' or 'retrieve', but the action list communicates the tool's scope effectively. It is differentiated from generic siblings by naming concrete job lifecycle actions.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as 'list', 'events', or 'delegate_task'. The action list implies usage scenarios, but there is no explicit statement of prerequisites, when to choose a particular action, or when a sibling tool would be more appropriate.

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

listC

Orchestrator catalog: agents, models, or roles.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
agentNo
agent_nameNodefault_agent

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior, but it merely labels the resource a 'catalog'. It does not state that the operation is read-only, what it returns, whether it filters by kind, or whether agent/agent_name alter the result. The read-only nature is only implied by the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and free of fluff, with a compact colon structure. However, it is so terse that it becomes under-specified rather than deliberately concise; there is no verb, no usage context, and no clarification of behavior.

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

Completeness2/5

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

Although an output schema exists so return values need not be described, the required 'kind' parameter is only loosely explained and the optional parameters are not addressed at all. With no annotations and a 0% schema description coverage, this description leaves too many practical calling details to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to explain all parameters. 'Agents, models, or roles' gives some meaning to the required 'kind' parameter, but optional parameters 'agent' and 'agent_name' are left entirely unexplained. This only partially compensates for the schematic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool name 'list' combined with 'Orchestrator catalog: agents, models, or roles' makes the primary purpose reasonably clear: list catalog entries scoped to these categories. It lacks an explicit verb and does not differentiate from siblings, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus siblings like get_orchestration_policy, route_task, or get_sync_context. The word 'catalog' hints at a read/listing use case, but no explicit conditions or exclusions are provided.

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

memory_bootstrapB

Retrieve bounded project context, prioritizing open and recent sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameYes
project_keyYes
budget_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the prioritizing behavior ('open and recent sessions') but doesn't explain what happens with the budget_chars parameter, whether context is truncated, or what the return format looks like. The description provides minimal behavioral insight beyond a basic read operation.

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?

The description is a single, concise sentence that is front-loaded with the main action and resource. It is appropriately sized, though it could include a brief note on budget_chars or usage without becoming verbose.

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 tool has an output schema (which likely describes the returned context) and simple parameters, the description is somewhat minimal. It doesn't explain what 'bounded' means or how budget_chars affects the result. For a tool that likely aggregates memory, more context about the scope and prioritization would help an agent invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate. The description does not mention any parameters, relying entirely on the schema. With 0% coverage, this is a gap, but the parameter names (agent_name, project_key, budget_chars) are fairly self-explanatory. The description adds no explanatory value for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Retrieve') and specific resource ('bounded project context'), with an explicit prioritization ('open and recent sessions'). It could be slightly more specific about what constitutes 'project context', but it is clearly distinguishable from siblings like get_sync_context or list_agents.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when you need a bounded, prioritized view of project context) but does not explicitly state when not to use it or mention alternatives. Given the sibling tools like get_sync_context and pull_truth, there is no guidance to help an agent choose between them.

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

memory_consolidationC

Fact consolidation: preview, apply, undo, or list.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
actionYes
statusNo
fact_idNo
agent_nameYes
project_keyNo
proposal_idNo
min_similarityNo
embedding_modelNo
consolidation_modelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. 'apply' and 'undo' reveal a mutation/rollback pair, and 'preview' suggests a dry-run, providing some transparency. However, it does not say what applying does to facts, whether undo is always available, or what side effects occur, which is concerning for a tool that can alter memory data.

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?

The description is a single efficient sentence, with the resource front-loaded and the action list immediately useful for the required `action` parameter. There is no fluff, and the structure is easy to parse. However, for a 10-parameter, title-less tool, the terseness borders on under-specification.

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

Completeness2/5

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

An output schema exists, so documenting return values is less critical, but the description still omits usage guidance, parameter semantics for most optional parameters, and side-effect behavior. The tool sits among many memory-related siblings, and the description does not provide enough for an agent to choose correct arguments confidently. The action list prevents it from being a 1.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the only parameter meaning added is that `action` likely maps to preview/apply/undo/list. No guidance is provided for `fact_id`, `proposal_id`, `min_similarity`, `embedding_model`, `consolidation_model`, `status`, `limit`, or `project_key`. With ten parameters, most of the invocation surface is undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('Fact consolidation') and lists the supported operations ('preview, apply, undo, or list'), making the tool's role clear. It is distinguishable from siblings like memory_recall because it is explicitly about consolidation rather than recall. It stops short of explaining what 'consolidation' actually does, so not a 5.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like memory_recall, pull_truth, or queue_durable_fact. The action list implies preview/list for inspection and apply/undo for mutation, but the description never states conditions, prerequisites, or exclusions. Usage must be inferred.

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

memory_recallC

Recall related project facts with a loopback-only embedding model.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
modelNo
queryYes
agent_nameYes
project_keyYes
min_similarityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden, and it offers exactly one behavioral trait: the embedding model is 'loopback-only,' implying local/offline inference rather than an external API call — a genuinely useful privacy/architecture disclosure. It does not state whether the operation is read-only, how min_similarity affects result filtering, what happens on no match, or latency/failure characteristics. The single trait earns some credit but far short of the burden for an unannotated tool.

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?

A single front-loaded sentence with no filler — the verb 'Recall' leads immediately and every word contributes. The 'loopback-only embedding model' clause is compressed jargon that trades clarity for brevity, and the description is terse to the point of under-specification for a 6-parameter tool, so it is efficient but not perfectly calibrated.

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

Completeness2/5

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

For a tool with 6 parameters, 3 required, zero annotations, and 0% schema description coverage, a single sentence is not enough — the output schema covers return values, but parameter semantics and selection guidance are entirely absent. An agent would need sibling descriptions or trial-and-error to know how to populate agent_name, project_key, and min_similarity correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining the six parameters, but it names none of them. The phrase 'recall related project facts' only weakly implies that query is the lookup text and that results are scoped to project facts. agent_name, project_key, limit, model, and min_similarity remain semantically undefined in both the schema and the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Recall related project facts') plus the method ('loopback-only embedding model'), making the semantic-search read intent clear. The embedding detail distinguishes it from write-style siblings like queue_durable_fact, sync_offline_facts, and memory_consolidation. However, it does not fully differentiate from read-style siblings like pull_truth, get_sync_context, or list, which could also plausibly return project facts.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus any of the 15 siblings. Several siblings overlap in domain (memory_bootstrap, memory_consolidation, pull_truth, get_sync_context, list), and the description provides no selection criterion such as 'use for semantic similarity recall vs. enumerated listing' or 'do not use for writes.' An agent must infer the use case from the tool name alone.

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

pull_truthC

Pull compiled-truth markdown from the remote host into the local cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description must fully disclose behavior. It implies a read operation (pull from remote) but does not mention side effects, error conditions, or required permissions. Adequate but not thorough.

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?

Description is a single, efficient sentence with no redundancy. Every word contributes meaning, making it highly concise.

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 tool simplicity (1 parameter, no nested objects, output schema present), the description provides minimal context. It does not explain what 'compiled-truth markdown' is or how it fits into the system, but it is not misleading.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The single required parameter 'agent_name' is not described in the description, so the tool adds no semantic value beyond the schema. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (pull), the resource (compiled-truth markdown), and the direction (remote to local). It is specific and distinct from sibling tools which focus on sync, health, queuing, etc., but does not explicitly differentiate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_sync_context or sync_offline_facts. The description lacks any context about prerequisites or typical use cases.

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

queue_durable_factC

Write a durable fact remotely if online; otherwise queue locally for later flush.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
entityYes
attributeYes
agent_nameYes
confidenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

The description discloses the two modes of operation (remote write vs. local queue) and mentions later flush, but it lacks details on queue flush triggers, error handling, idempotency, or side effects. With no annotations, more transparency would be beneficial.

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?

The description is extremely concise with one front-loaded sentence. While efficient, it sacrifices necessary detail on parameters and complex behavior, making it slightly under-specified.

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

Completeness2/5

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

Given the complexity (5 parameters, conditional logic, no annotations, and 0% schema coverage), the description is incomplete. It lacks parameter definitions, output details, and offline queue behavior specifics, leaving significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about the five parameters (agent_name, entity, attribute, text, confidence). With 0% schema description coverage, the agent has no guidance on how to fill these fields, making the tool hard to use correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: writing a durable fact with conditional behavior based on online status. It distinguishes from siblings like sync_offline_facts by specifying the remote vs. local queue logic, though it could contrast more explicitly.

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

Usage Guidelines3/5

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

The description implies when to use (when online, write remotely; when offline, queue locally), but it does not provide explicit guidance on when not to use or how it compares to alternatives like sync_offline_facts or direct writes.

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

route_taskB

Preview automatic worker selection without launching a job.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
agent_nameNodefault_agent
exclude_agentsNo
required_capabilitiesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It clearly communicates that the tool is non-committal (preview only, no job launch), which is a key safety trait. Yet it omits other behavioral facets such as side effects (e.g., logging, state changes), authentication needs, or any rate limiting considerations.

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 a single, well-structured sentence that front-loads the core action ('Preview automatic worker selection') and immediately qualifies the scope ('without launching a job'). Every word earns its place, with no redundancy.

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

Completeness2/5

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

Although the output schema exists, the description does not explain how the four input parameters influence worker selection or how to use this preview effectively. Given the presence of many sibling tools and no annotations, the description is too sparse to fully orient an agent, especially regarding parameter roles and expected behavior beyond the preview itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides zero description coverage (0%) and the tool description offers no explanation of what each parameter does. The parameters 'prompt', 'agent_name', 'exclude_agents', and 'required_capabilities' remain opaque, leaving the agent with no semantic guidance for constructing valid calls.

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 uses a specific verb ('Preview') and resource ('automatic worker selection'), immediately clarifying the tool's function. The qualifier 'without launching a job' strongly distinguishes it from delegation tasks, such as the sibling 'delegate_task', making the purpose unambiguous.

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

Usage Guidelines3/5

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

The phrase 'without launching a job' implies a preview-before-execution workflow, offering some contextual guidance. However, it does not explicitly name any alternative tools or state when to use this tool versus actually launching a job, leaving the routing decision partially inferred.

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

sessionC

Local memory session: start, checkpoint, or end.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNo
testsNo
actionYes
branchNo
statusNo
pendingNo
blockersNo
decisionsNo
workspaceNo
agent_nameYes
session_idNo
project_keyNo
durable_factsNo
files_changedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries the full transparency burden, but it only names high-level actions. It does not disclose whether starting, checkpointing, or ending a session mutates or deletes state, whether operations are reversible, or what persistence guarantees exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is economical, front-loaded, and free of filler. However, for a tool with 14 parameters, the single short clause is under-sized and omits critical operational context.

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

Completeness1/5

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

For a 14-parameter tool with no annotations and 0% schema coverage, this description is far from complete. An agent cannot determine required parameter combinations per action, the lifecycle semantics, or the meaning of most optional fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needs to compensate, but it only clarifies the `action` parameter by listing start/checkpoint/end values. The other 13 parameters, such as session_id, project_key, durable_facts, files_changed, and blockers, receive no semantic explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource, 'local memory session', and the lifecycle actions 'start, checkpoint, or end', so an agent can distinguish it from generic operations. It lacks an explicit contrast with sibling memory tools, so it falls just short of full differentiation.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives like memory_bootstrap, memory_recall, or memory_consolidation, nor does it explain when each action should be invoked. The action verbs imply a lifecycle, but no selection criteria are stated.

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

sync_offline_factsC

Flush the offline queue to remote, optionally consolidate + pull compiled truth.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameYes
consolidateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It indicates flushing (likely destructive to the queue) and optional consolidation, but does not explain side effects (e.g., deletion of local queue, network requirements, error handling).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is single-sentence and concise, but it sacrifices completeness. It could be expanded without losing conciseness.

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

Completeness2/5

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

Given the presence of an output schema (not shown) and 2 parameters with 0% schema coverage, the description is far from complete. It fails to explain agent_name, consolidation details, or behavioral implications, leaving significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description only hints at the 'consolidate' parameter ('optionally consolidate'), but does not mention the required 'agent_name' parameter or explain its purpose. This is inadequate for tool usability.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it flushes the offline queue to remote, with optional consolidation and pulling truth. It distinguishes from siblings like pull_truth (which likely pulls without flushing) and queue_durable_fact (which enqueues). However, the phrase 'consolidate + pull compiled truth' is somewhat vague.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like pull_truth or queue_durable_fact. No prerequisites or exclusions mentioned.

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

update_focusC

Update this agent's focus and warn on overlaps with other non-stale agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusYes
pathsNo
branchYes
projectYes
agent_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It partially discloses the warning behavior but omits other important aspects such as irreversibility, permission requirements, error states, and what happens to existing focus data.

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?

The description is a single, clear sentence that front-loads the primary action. However, it is somewhat under-specified; conciseness is achieved at the expense of completeness.

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

Completeness2/5

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

For a tool with 5 parameters (4 required) and no parameter descriptions, the description is far too sparse. While an output schema exists, the lack of parameter semantics and behavioral details leaves the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema contains 5 parameters with 0% schema description coverage, and the description provides no explanations for any parameter (e.g., what 'focus' is, structure of 'paths', constraints on 'agent_name'). An agent would have to guess parameter meaning.

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 ('Update this agent's focus') and the specific resource, including a unique behavior ('warn on overlaps with other non-stale agents'). This distinguishes it from sibling tools, which are mostly concerned with facts, events, and jobs.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, nor are any preconditions or exclusion criteria mentioned. An agent must infer usage from the name and description alone.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 21 tool updatesv1.8.0
    • Changeddelegate_task2 fields changed
      • addedInput schema / properties / memory_mode
        Added value: +{
        +  "default": "auto",
        +  "title": "Memory Mode",
        +  "type": "string"
        +}
      • addedInput schema / properties / on_limit
        Added value: +{
        +  "default": "stop",
        +  "title": "On Limit",
        +  "type": "string"
        +}
    • Addedevents
    • Addedjob
    • Removedjob_cancel
    • Removedjob_result
    • Removedjob_review
    • Removedjob_status
    • Removedjob_wait
    • Addedlist
    • Removedlist_agents
    • Removedlist_models
    • Removedlist_roles
    • Removedmemory_checkpoint
    • Addedmemory_consolidation
    • Addedmemory_recall
    • Removedpoll_events
    • Removedpublish_event
    • Addedsession
    • Removedsession_end
    • Removedsession_start
    • Removedsubscribe_events
  2. 12 tool updatesv1.4.0
    • Changeddelegate_task13 fields changed
      • addedInput schema / properties / agent / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / agent / default
        Added value: +null
      • removedInput schema / properties / agent / type
        Removed value: -"string"
      • addedInput schema / properties / checks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Checks"
        +}
      • addedInput schema / properties / cwd
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cwd"
        +}
      • addedInput schema / properties / effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Effort"
        +}
      • addedInput schema / properties / exclude_agents
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Exclude Agents"
        +}
      • addedInput schema / properties / memory_project
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Memory Project"
        +}
      • addedInput schema / properties / prompt / default
        Added value: +""
      • addedInput schema / properties / required_capabilities
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Required Capabilities"
        +}
      • addedInput schema / properties / role
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Role"
        +}
      • addedInput schema / properties / worktree
        Added value: +{
        +  "default": false,
        +  "title": "Worktree",
        +  "type": "boolean"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "agent",
        -  "prompt"
        -]
    • Addedget_orchestration_policy
    • Addedjob_review
    • Addedjob_wait
    • Addedlist_agents
    • Addedlist_models
    • Addedlist_roles
    • Addedmemory_bootstrap
    • Addedmemory_checkpoint
    • Addedroute_task
    • Addedsession_end
    • Addedsession_start
  3. 5 tool updatesv1.1.1
    • Addedget_sync_context
    • Addedjob_result
    • Addedqueue_durable_fact
    • Addedsubscribe_events
    • Addedupdate_focus
  4. 8 tool updatesv1.1.0
    • Addeddelegate_task
    • Removedget_sync_context
    • Addedjob_cancel
    • Addedjob_status
    • Addedpoll_events
    • Addedpublish_event
    • Removedqueue_durable_fact
    • Removedupdate_focus
  5. 6 tool updatesv0.3.0
    • First observedget_sync_context
    • First observedhealth
    • First observedpull_truth
    • First observedqueue_durable_fact
    • First observedsync_offline_facts
    • First observedupdate_focus

TDQS

C2.9/5.0
Disambiguation3/5

Several tool pairs blur together: get_sync_context and pull_truth both pull remote truth, memory_bootstrap and memory_recall both retrieve memory, and route_task plus get_orchestration_policy both serve delegation decisions. The descriptions help clarify intent, but an agent could easily select the wrong tool when aiming for a sync or memory operation.

Naming Consistency3/5

Naming follows three conventions: verb_noun for most sync/delegation tools (queue_durable_fact, sync_offline_facts, delegate_task), bare nouns for infrastructure tools (health, job, events, session, list), and a memory_ prefix group (memory_bootstrap, memory_recall, memory_consolidation). Each pattern is readable on its own, but the mix makes the overall surface feel inconsistent.

Tool Count3/5

At 16 tools, this sits at the start of the heavy band (16-25) and spans four distinct domains: sync/facts, memory, delegation/orchestration, and events. The breadth is defensible for a unified agent-sync server, but several tools could have been consolidated, pushing it slightly past a well-scoped 3-15 tool set.

Completeness4/5

Core lifecycles are well covered: offline fact queueing and flushing, memory sessions with consolidation undo, delegation preview/execute with job lifecycle, and event pub/sub. Minor gaps exist, such as a read-only orchestration policy with no setter, no way to delete a durable fact, and no offline-queue inspection beyond depth in health, but agents can work around these.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A local-first MCP server for AI coding agents that shares structured execution state, routes context deltas, and provides preflight nudges to prevent conflicts and stale decisions.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A local-first MCP server that manages developer memory for coding agents, enabling shared project context, permissions, and audit trails across different agents.
    1
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adityarya24/mindsync-ai'

If you have feedback or need assistance with the MCP directory API, please join our Discord server