Skip to main content
Glama

AgentDock

Languages: English · 简体中文 · 日本語

AgentDock is a local MCP gateway that gives ChatGPT bounded access to a developer workspace. The model remains the planner; AgentDock supplies repository evidence, local files and images, direct edits, command verification, and Git-aware review.

Status: early public release (0.1.x). Review the security model before exposing a local workspace through a public tunnel.

Why AgentDock

ChatGPT can reason about code, but a web session normally cannot inspect or modify arbitrary files on your computer. AgentDock bridges that gap through MCP while keeping workspace boundaries explicit.

The primary loop is intentionally simple:

ChatGPT model
  ├─ inspect/search repository evidence
  ├─ read text or images
  ├─ edit/write/apply patch
  ├─ run bounded verification commands
  └─ review the resulting Git changes
        ↓
   local workspace

AgentDock does not add a second server-side planning or execution layer. Planning stays with the model that is already driving the MCP tools.

Related MCP server: chatgpt-codex-tools-mcp

Features

  • Workspace isolation — open one or more explicitly allowed roots; path traversal, blocked files, and symlink escapes are guarded.

  • Repository analysis — bounded inventory, language/project detection, symbols, relationships, impact hints, related tests, and change-risk signals.

  • Text tools — tree, search, paged reads, exact edits, writes, and unified patches.

  • Image tools — image metadata, safe preview, rectangular crop, and tiled high-detail reads for JPEG/PNG/WebP files.

  • Verification — safe/full/off command modes plus Git-aware show_changes review.

  • HTTP + stdio transports — local MCP clients can use stdio; ChatGPT can connect through an HTTPS tunnel.

  • OAuth for public HTTP mode — OAuth discovery/PKCE is available when AgentDock has a stable public URL.

  • Multiple workspaces — open, list, close, and switch the default workspace inside an allowed root set.

  • Optional local Codex history reads — disabled by default and only enabled explicitly.

  • Linux service support — saved stable profiles can run as a per-workspace systemd --user service.

Requirements

For the recommended Windows + ChatGPT + ngrok setup, install:

  • Git — used to clone AgentDock and inspect workspace changes.

  • Node.js 20+node -v should report 20 or newer.

  • Python 3 — used by the image/PDF helper workers.

  • PyMuPDF — required for PDF text/page rendering and image processing: python -m pip install pymupdf.

  • ngrok — recommended for a stable public HTTPS address that ChatGPT can reach.

  • A ChatGPT account/workspace that exposes Developer Mode / custom MCP app creation. Availability and UI labels vary by plan and rollout; see the current OpenAI help page linked below.

You do not need to buy a domain from Namecheap for the recommended path. A free ngrok account currently includes one account-assigned development domain. If you already own a custom domain, the Cloudflare named-tunnel route is an optional alternative.

Zero-to-working deployment: Windows + ngrok + OAuth

This section is intentionally verbose. It is written so that a person—or a coding agent such as Codex/Claude Code—can follow the deployment from a clean machine without guessing missing steps.

Step 0 — Know what will happen

The final connection looks like this:

ChatGPT
  ↓ HTTPS + OAuth
your ngrok development domain
  ↓
AgentDock HTTP/MCP server on your computer (default port 8787)
  ↓
one explicitly allowed local workspace

There are three different credentials/identifiers that are easy to confuse:

Item

Where it comes from

Where it is used

Keep private?

ngrok authtoken

ngrok Dashboard

ngrok config add-authtoken ... on your computer

Yes

ngrok dev domain

ngrok Dashboard → Domains

AgentDock --hostname / setup wizard

No, it is a public hostname

AgentDock OAuth approval key

AgentDock setup/start output

AgentDock consent page opened during ChatGPT OAuth

Yes

The ngrok authtoken and AgentDock approval key are not the same thing.

Step 1 — Clone AgentDock

Open PowerShell, Windows Terminal, or another normal terminal:

git clone https://github.com/Nippori709/AgentDock.git
cd AgentDock

If the repository already exists locally, update it instead:

git pull

Step 2 — Install Node/Python dependencies and build

From the AgentDock repository:

npm install
python -m pip install pymupdf
npm run build

The build must finish without TypeScript errors. You can run the full local smoke suite as an optional sanity check:

npm run smoke

For easier daily use, you may also install this local checkout as a global CLI:

npm install -g .

That exposes the command local-workspace-bridge. If you skip this optional step, use node scripts/local-workspace-bridge.mjs ... in the commands below.

Step 3 — Create a free ngrok account and get your two ngrok values

  1. Create/sign in to an ngrok account.

  2. Open the ngrok Dashboard.

  3. Find your authtoken. This is a long secret string used only to authenticate the ngrok agent running on your computer.

  4. Open Domains and copy the development domain assigned to your account.

Do not invent the domain or blindly copy the suffix from this README. ngrok has changed domain suffixes over time. Depending on the account, you may see something such as:

example-name.ngrok-free.app

or an older assigned domain such as:

example-name.ngrok-free.dev

Copy exactly what the ngrok Dashboard shows for your account. Free plans generally provide an assigned development domain; choosing a custom name or bringing your own custom domain may require a paid ngrok plan.

Namecheap is not part of this recommended free path. Namecheap only becomes relevant if you separately buy/own a custom domain and choose an advanced custom-domain deployment.

Step 4 — Install and authenticate ngrok on Windows

ngrok currently recommends the Microsoft Store/WinGet path on Windows. One option is:

winget install ngrok -s msstore

You can also install it from ngrok's official download page. After installation, verify:

ngrok version

Then add the ngrok authtoken from Step 3:

ngrok config add-authtoken "YOUR_NGROK_AUTHTOKEN"

Do not paste this token into README files, source code, screenshots, issues, or ChatGPT prompts.

Step 5 — Run the AgentDock setup wizard

The easiest and least error-prone path is the interactive wizard:

node scripts/local-workspace-bridge.mjs setup

If you installed the global CLI in Step 2, this is equivalent to:

local-workspace-bridge setup

The wizard asks several questions. For the normal ChatGPT + ngrok setup, use the following answers.

5.1 Where is your project located?

Enter the folder that you actually want ChatGPT to inspect/edit, for example:

D:\Projects\MyApp

If you are intentionally exposing AgentDock itself, the AgentDock repository path is fine. Otherwise, do not accidentally expose the AgentDock source folder when you meant to expose another project.

5.2 Which local port should LocalWorkspaceBridge use?

Press Enter to keep the default unless port 8787 is already occupied.

Typical answer:

8787

5.3 Public access: quick, stable, ngrok, tailscale, or local?

For this guide, enter:

ngrok

The choices mean:

  • quick — temporary Cloudflare quick tunnel; easiest demo, but URL changes after restart.

  • ngrok — recommended here; reuse your account's stable ngrok development domain.

  • stable — Cloudflare named tunnel using a domain you control.

  • tailscale — Tailscale Funnel.

  • local — no public tunnel; ChatGPT on the web cannot normally reach 127.0.0.1 directly.

5.4 Ngrok domain or URL, without /mcp

Paste the exact development domain copied from the ngrok Dashboard, for example:

example-name.ngrok-free.app

Do not append /mcp; AgentDock adds the MCP route itself.

5.5 LocalWorkspaceBridge auth token for this workspace

The wizard provides a generated random default. For a normal setup, press Enter to accept it.

This saved secret is used by AgentDock's public HTTP authentication. When OAuth is active, the launcher prints it as the local OAuth approval key that you enter on the AgentDock consent page.

Do not publish this value.

5.6 Save this setup for future runs from this workspace?

Answer:

yes

AgentDock saves the per-workspace profile under:

~/.local-workspace-bridge

That is why later launches can reuse the same workspace, tunnel type, hostname, port, and local auth secret without asking everything again.

5.7 Start LocalWorkspaceBridge now?

Answer:

yes

Step 6 — Read the startup output carefully

A successful public OAuth launch prints a block containing values similar to:

LocalWorkspaceBridge ready
Workspace   D:\Projects\MyApp
Server URL  https://YOUR_ASSIGNED_NGROK_DOMAIN/mcp
Authentication: OAuth

OAuth approval key (enter once on the LocalWorkspaceBridge consent page):

  <private-generated-key>

Two values matter now:

  1. Server URL — copy the full HTTPS URL ending in /mcp into ChatGPT.

  2. OAuth approval key — keep the terminal open or copy the key somewhere private temporarily. You will enter it on AgentDock's own consent page during OAuth.

Do not append ?token=... to the Server URL. Query-string credentials are disabled by default and are easier to leak through browser history/logs.

Step 7 — Create the custom MCP app in ChatGPT

ChatGPT's UI is changing over time and can differ by plan/workspace. Current OpenAI documentation generally describes the path as Settings → Apps → Create (or the equivalent workspace Apps page). Some accounts/builds may still expose a Developer Mode / Plugins → + flow.

Use whichever custom-MCP creation UI your account exposes, then enter:

Name: AgentDock
Description: Local coding workspace bridge for ChatGPT
Connection: Server URL
Server URL: https://YOUR_ASSIGNED_NGROK_DOMAIN/mcp
Authentication: OAuth

If the UI has Scan Tools, start the scan. Because the server uses OAuth, ChatGPT should open/redirect to AgentDock's authorization page.

Current OpenAI help for Developer Mode/custom MCP apps:

https://help.openai.com/en/articles/12584461-developer-mode-apps-and-full-mcp-connectors-in-chatgpt-beta

Plan availability changes over time. If your ChatGPT account does not offer custom MCP app creation or blocks write/modify tools, check the current OpenAI plan/workspace requirements before debugging AgentDock itself.

Step 8 — Approve the OAuth request

On the AgentDock consent page:

  1. Confirm that you initiated this connection from ChatGPT.

  2. Check the requested client/redirect information.

  3. Paste the AgentDock OAuth approval key printed in your local terminal.

  4. Approve the request.

Do not paste your ngrok authtoken here. The consent page wants the AgentDock approval key, not the ngrok credential.

After approval, ChatGPT completes OAuth/PKCE and receives an access token. The MCP Server URL itself stays credential-free.

Step 9 — Verify the connection in ChatGPT

Start with a read-only request:

Use AgentDock to open the current workspace, inspect the repository, and summarize the architecture. Do not edit files.

Then verify a harmless tool such as tree, search, or read. Only after the read path works should you try write/edit/bash operations.

Step 10 — Daily startup after the first setup

If the profile was saved, you do not need to repeat the ngrok account setup or ChatGPT app creation each day.

From the AgentDock checkout:

node scripts/local-workspace-bridge.mjs start --root "D:\Projects\MyApp"

Or, if you installed the global CLI:

cd D:\Projects\MyApp
local-workspace-bridge start

The saved ngrok hostname remains the same, so the ChatGPT Server URL can remain unchanged.

Non-interactive ngrok launch

Once ngrok is installed/authenticated and you know the assigned domain, you can skip the wizard and launch explicitly:

node scripts/local-workspace-bridge.mjs ngrok --root "D:\Projects\MyApp" --hostname YOUR_ASSIGNED_NGROK_DOMAIN

For reproducible automation, prefer a saved workspace profile after the first interactive setup rather than putting private auth values directly on command lines.

What a coding agent can and cannot automate

If you ask Codex, Claude Code, or another local coding agent to deploy AgentDock from this README, it can usually automate:

  • cloning/pulling the repository;

  • checking Node.js, Python, Git, and ngrok availability;

  • running npm install, PyMuPDF installation, build, and smoke tests;

  • starting the AgentDock setup wizard or constructing the equivalent launch command;

  • diagnosing local port/process/build problems.

It normally cannot safely invent or bypass the account-interaction steps. Expect to perform or provide these yourself:

  1. Sign in/create the ngrok account.

  2. Copy the account's ngrok authtoken.

  3. Copy the exact assigned ngrok development domain.

  4. Enable the relevant Developer Mode/custom-app feature in ChatGPT if your plan/workspace requires it.

  5. Create/authorize the ChatGPT MCP app.

  6. Enter the locally printed AgentDock OAuth approval key on the consent page.

A good prompt for a coding agent is:

Clone https://github.com/Nippori709/AgentDock and deploy it by following README.md exactly.
Use the recommended Windows + ngrok + OAuth path.
Do not invent a domain, token, approval key, or ChatGPT account setting.
Perform all local terminal steps yourself. When an ngrok/ChatGPT account action is required,
tell me exactly what page/value you need, then continue from the value I provide.
Run the documented build and smoke checks before declaring the deployment complete.

Tunnel choices

Use this when you want the simplest persistent URL. The free plan currently includes an account-assigned development domain. Your actual hostname may use a suffix different from examples in older AgentDock releases, so always copy it from the ngrok Dashboard.

Temporary demo: Cloudflare quick tunnel

For a quick test with no stable URL requirement:

node scripts/local-workspace-bridge.mjs start

The quick-tunnel URL can change after restart. If ChatGPT was configured with that URL, you must update the app/connector when the URL changes.

Advanced: your own domain + Cloudflare named tunnel

If you already own a domain (for example one purchased from Namecheap), you can use a Cloudflare named tunnel. The domain must be configured appropriately in Cloudflare DNS. This is an advanced alternative; buying a Namecheap domain is not required for AgentDock.

Local-only

For MCP clients running on the same computer:

node scripts/local-workspace-bridge.mjs start --tunnel none

This does not provide a public HTTPS URL for ChatGPT web.

OAuth vs credentials in the URL

Prefer:

https://YOUR_ASSIGNED_NGROK_DOMAIN/mcp
+ OAuth / PKCE

instead of:

https://YOUR_ASSIGNED_NGROK_DOMAIN/mcp?token=...

Query-string credentials are disabled by default, can leak through browser/history/log surfaces, and are unnecessary when the stable public URL uses AgentDock's OAuth flow.

Tool modes

LOCALWORKSPACEBRIDGE_TOOL_MODE controls how much of the MCP surface is advertised:

  • minimal — tight direct coding loop: workspace open, read/image, write/edit/patch, bash, change review.

  • standard — default; adds repository analysis, tree/search, skills, and workspace management.

  • full — adds advanced diagnostics, Git details, snapshot/inventory tools, and optional Codex-session tools.

Write behavior is separate:

LOCALWORKSPACEBRIDGE_WRITE_MODE=workspace   # direct workspace edits
LOCALWORKSPACEBRIDGE_WRITE_MODE=off         # read-only

Bash behavior is also separate:

LOCALWORKSPACEBRIDGE_BASH_MODE=safe
LOCALWORKSPACEBRIDGE_BASH_MODE=off
LOCALWORKSPACEBRIDGE_BASH_MODE=full

Use full only for repositories and commands you trust.

Repository analysis

inspect_workspace builds a bounded local map from manifests, source declarations, imports, tests, and Git state. Structured search can also use symbol/reference/impact intents.

The analysis layer provides evidence to the model; it does not decide or execute an implementation plan on the model's behalf.

Image access

Large images should not be pushed into model context at full resolution by default. AgentDock exposes a progressive path:

image_info → read_image preview → read_image_crop / read_image_tile when detail is needed

Image paths are subject to the same workspace guards as text files.

PDF and DOCX access

AgentDock can read PDF text with read_pdf, render a PDF page for visual inspection with read_pdf_page, and extract paragraphs/table rows from Word .docx files with read_docx.

PDF support uses PyMuPDF on the machine running AgentDock:

python -m pip install pymupdf

DOCX extraction reads OOXML directly and does not require Microsoft Word or an extra Python package.

Security model

Important defaults:

  • roots must be explicitly allowed;

  • .env, private keys, credential stores, dependency/build directories, and other blocked paths are denied;

  • secret-looking content is redacted on reads and blocked on writes;

  • public/non-loopback HTTP use requires authentication unless explicitly overridden;

  • query-string credentials are disabled by default;

  • safe Bash blocks high-risk shell patterns and environment expansion;

  • logs are designed not to contain source contents, prompts, credentials, or full command output by default.

AgentDock is a developer bridge, not an OS sandbox. See SECURITY.md.

Verification

npm run build
npm run smoke
npm run benchmark:quick

The benchmark is local and reproducible. It reports tool-schema size, a shared direct-agent workflow, security boundary checks, and generated-repository inventory/search timing. Machine-specific benchmark output is printed rather than committed.

Linux

See LINUX_SERVER.md for a headless systemd --user setup after you have created a stable tunnel profile.

Configuration

See config.example.env. Prefer per-workspace saved profiles over committing machine-specific settings.

Attribution

AgentDock is a derivative work based on the open-source CodexPro project. The original CodexPro copyright notice and MIT license are preserved in LICENSE.

This derivative focuses on a single direct ChatGPT-to-workspace agent loop, repository/image evidence, authentication hardening, and reproducible local evaluation. It should not be represented as a from-scratch implementation of the upstream project.

License

MIT. See LICENSE.

Available Tools

22 tools
apply_patchApply PatchA
Destructive

Apply one unified diff patch inside the workspace. Paths are validated before applying. Prefer edit for tiny replacements and apply_patch for multi-file diffs.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYesUnified diff patch to apply. File paths must stay inside the workspace and avoid blocked paths.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds useful safety-relevant context beyond the annotations: paths are validated before applying, and the patch is confined to the workspace. There is no contradiction between the description and annotations.

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 three short sentences, each earning its place: it states the operation, mentions a key safety behavior, and gives tool-selection guidance. There is no redundant filler or repetition of schema contents.

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

Completeness4/5

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

The tool has only two parameters, full schema coverage, and annotations that communicate destructive behavior. The description sufficiently covers scope, validation, and when to use it. Details like failure behavior or partial-apply semantics are not spelled out, but they are not necessary for selecting and invoking the tool 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 100%, so the schema already documents both patch and workspace_id. The description reinforces the path validation and workspace constraint, but it does not add meaningfully new parameter-level details such as patch formatting, defaults, or examples, so the baseline score applies.

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 opens with a specific verb and resource: 'Apply one unified diff patch inside the workspace.' It also distinguishes apply_patch from its nearest sibling edit by explicitly saying apply_patch is for multi-file diffs, so the agent can tell it apart without needing to inspect other tools.

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?

The description gives direct selection guidance: 'Prefer edit for tiny replacements and apply_patch for multi-file diffs.' This explicitly names the alternative and the condition for choosing each tool, leaving no ambiguity about when to use apply_patch.

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

bashBashA
Destructive

Run one allowlisted verification command in the workspace, such as tests, build, lint, typecheck, or a project script. Do not use for git status/diff or file inspection; use show_changes, tree, search, and read instead. Do not chain commands with &&, pipes, redirects, or shell file readers.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory relative to workspace root. Default: .
commandYesCommand to run.
session_idNoOptional bash session id. If configured on the server, a provided value must match it.
timeout_msNoTimeout in milliseconds. Default: 30000.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already carry the safety profile (destructiveHint=true, readOnlyHint=false, openWorldHint=true), so the bar is lower. The description adds genuinely useful behavioral constraints beyond the annotations: only allowlisted verification commands may run, only a single command (no chaining), and no shell redirection/pipe constructs. This meaningfully shapes agent behavior without contradicting the annotations.

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?

Three sentences with zero waste: purpose is front-loaded, exclusions and alternatives follow, then invocation constraints. Every sentence earns its place and the structure makes it skimmable for an agent.

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 safety-sensitive nature of a command runner, the combination of annotations (destructive/openWorld), full schema coverage, and the description covers what to run, when to run it, and how to constrain invocations. The main gap is the absence of an output schema and no description of the return format (stdout/stderr/exit code), but for a bash tool this is fairly standard and a minor omission.

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 100%, so all five parameters (command, cwd, session_id, timeout_ms, workspace_id) are already documented in the schema, warranting the baseline 3. The description adds marginal value by constraining what values the command parameter may take (single, allowlisted, un-chained), but provides no format or syntax detail beyond that.

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?

States a specific verb and resource ('Run one allowlisted verification command') with concrete examples (tests, build, lint, typecheck, project script). It also distinguishes itself from siblings by explicitly naming what it is not for (git status/diff, file inspection) and pointing to the correct alternatives, so an agent can route correctly without opening schemas.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance ('verification command') and exclusions ('Do not use for git status/diff or file inspection') with named sibling alternatives (show_changes, tree, search, read). Also gives hard constraints on invocation style (no &&, pipes, redirects, or shell file readers). Nothing is left to inference.

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

close_workspaceClose WorkspaceA
Read-only

Forget one opened workspace from this server session. This does not delete files.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idYesWorkspace id to close.

TDQS

A3.6/5.0
Behavior1/5

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

Annotation Contradiction: readOnlyHint is true, yet the description says the tool will 'Forget one opened workspace from this server session,' which is a state-changing action in the server session. This directly contradicts the read-only annotation. The clarification that it does not delete files is helpful, but the contradiction makes the behavioral transparency unreliable.

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 wasted words. The core action is front-loaded, and the second sentence earns its place by disambiguating from file deletion.

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

Completeness4/5

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

For a single-parameter tool with no nested objects or output schema, the description covers the core behavior, the session scope, and the non-destructive nature. It is adequate for an agent to invoke correctly, though the annotation contradiction prevents full completeness.

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 100% and the only parameter, workspace_id, is already described as 'Workspace id to close.' The description adds only the qualifier 'opened' to the workspace, which is mild extra context. With full schema coverage, the baseline of 3 is appropriate.

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 the specific verb 'Forget' with a clear resource, 'one opened workspace,' and scopes the action to 'this server session.' It also explicitly distinguishes itself from file-deleting operations by stating 'This does not delete files,' so an agent can separate it from filesystem tools and from open_workspace.

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 gives clear context: use this to forget one opened workspace from the current server session. It does not explicitly name alternatives or when-not-to-use conditions, but the intended use case is evident from the wording and sibling names.

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

editEdit FileA
Destructive

Apply a targeted exact text replacement inside a workspace text file. Returns a unified diff.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to workspace root.
new_textYesReplacement text.
old_textYesExact text to replace. Must match once unless replace_all=true.
replace_allNoReplace all occurrences. Default: false.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
expected_replacementsNoFail if actual replacement count differs.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate a destructive, non-read-only operation, and the description is consistent with that. It adds useful behavioral detail by emphasizing exact replacement and by disclosing the unified-diff return value.

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?

A single, front-loaded sentence that states the core action, the target scope, and the return value. Every element earns its place and there is no filler.

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 fully documented schema, the annotations, and the description's disclosure of the diff return value, the tool is sufficiently specified for correct invocation. The main missing piece is routing guidance relative to apply_patch, already penalized under usage guidelines.

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 100%, so the parameters are already well documented. The description reinforces the exact-replacement nature of old_text/new_text but does not add meaning beyond what the schema provides.

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 names a specific verb and resource ('Apply a targeted exact text replacement inside a workspace text file') and also states the return format. It is clear, though it does not explicitly contrast itself with sibling tools like apply_patch or write.

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 direct guidance on when to use this tool versus apply_patch or write, nor does it mention exclusions. The word 'targeted' implies surgical edits, but the agent must infer routing to this tool from context.

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

image_infoImage InfoA
Read-only

Inspect a workspace-local image without returning its pixels. Reports original dimensions/bytes and a recommended 1600 px-safe tile grid for high-detail follow-up reads.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesImage path relative to workspace root. Supported: .jpg, .jpeg, .png, .webp. Maximum input: 25 MiB.
tile_overlapNoFractional overlap used when recommending tiles. Default: 0.08 (8%).
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.

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 and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: the tool intentionally avoids returning pixel data and instead reports metadata plus a tile grid recommendation. This tells the agent what side effects it avoids and what kind of result to expect.

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, no filler. The first sentence defines the tool's core purpose and its key limitation, while the second sentence states the outputs. Every phrase contributes meaning, and the distinguishing 'without returning its pixels' is front-loaded.

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?

There is no output schema, so the description correctly takes responsibility for explaining what the tool returns: dimensions, bytes, and a recommended tile grid. Combined with the 100%-covered input schema and read-only annotations, an agent has enough information to invoke the tool correctly and interpret its result.

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 100%, so the schema fully documents path, tile_overlap, and workspace_id. The description mentions the tile grid concept, which loosely ties to tile_overlap, but adds little parameter-level detail beyond the schema. A baseline of 3 is appropriate when the schema already carries the parameter documentation burden.

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

Purpose5/5

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

The description states a specific action, 'Inspect a workspace-local image', and clearly distinguishes the tool from siblings by saying it does not return pixels. It then names the concrete outputs: original dimensions/bytes and a recommended tile grid. This makes the tool's purpose unambiguous even before looking at the schema.

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 phrase 'for high-detail follow-up reads' gives clear context for when to use this tool. The negative statement 'without returning its pixels' implicitly tells the agent not to use it when pixel data is required, though it does not explicitly name read_image or read_image_crop as the pixel-returning alternatives. This is strong but not fully explicit.

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

inspect_workspaceInspect WorkspaceB
Read-only

Build a bounded repository map with languages, project types, entrypoints, areas, symbols, relationships, and coverage warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoAnalysis depth. inventory/inventory_only skips symbol extraction; symbols skips dependency graph construction. Default: full, or inventory when symbols and relationships are disabled.
pathNoOptional workspace-relative area to emphasize. Default: entire workspace.
cursorNoOpaque continuation token from a previous limited response.
max_filesNoMaximum returned file records. Default: 300.
max_symbolsNoMaximum returned symbols. Analysis remains bounded by server config.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
include_symbolsNoInclude symbols in structured output. Default: true.
max_relationshipsNoMaximum returned relationships. Analysis remains bounded by server config.
include_relationshipsNoInclude relationships in structured output. Default: true.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds 'bounded' and 'coverage warnings,' hinting at output limitations, but it does not discuss pagination, truncation behavior, or analysis cost. This is adequate given the annotations, but not rich.

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 sentence with no filler. It front-loads the core action and output scope, then enumerates the components compactly. Every word earns its place.

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 tool with 9 parameters and no output schema, the description gives only a high-level output list. It does not cover mode selection, pagination/default limits, or when to choose this over siblings. The input schema fills parameter details, but the overall invocation context remains thin.

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 100%, so parameter semantics are already fully documented. The description does not repeat parameter details, but it aligns output concepts like symbols and relationships with include_symbols and include_relationships, adding marginal context. Baseline 3 is appropriate.

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 uses a specific verb ('Build') and resource ('bounded repository map') and enumerates the map's contents: languages, project types, entrypoints, areas, symbols, relationships, and coverage warnings. This clearly distinguishes it from file-level tools like read or tree, though it does not explicitly name any sibling alternative.

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 inspect_workspace versus related tools like tree, search, or list_workspaces. No conditions, exclusions, or alternative-routing hints are provided; the only signal is the tool's name.

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

list_workspacesList WorkspacesA
Read-only

List currently opened LocalWorkspaceBridge workspaces for this server/config.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the scoping detail that only currently opened workspaces for the server/config are returned, which is useful, but it does not disclose return format or pagination behavior.

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?

A single sentence with no filler; the verb and scope are front-loaded. Every word earns its place.

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

Completeness4/5

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

For a zero-parameter read-only list tool, the description is mostly complete: it states what is listed and the scope. However, with no output schema, it does not describe the return shape (e.g., workspace names vs. metadata), leaving a small gap.

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?

There are zero parameters and schema coverage is 100%, so the baseline of 4 applies. The description adds no parameter information because there is nothing to document.

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 the specific verb 'List' and identifies the resource: currently opened LocalWorkspaceBridge workspaces, scoped to the server/config. This distinguishes it clearly from sibling tools like open_workspace, close_workspace, or inspect_workspace.

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 prefer this tool over related siblings such as inspect_workspace or open_current_workspace. The phrase 'currently opened' implies a use case, but there is no explicit when/when-not or alternative routing.

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

load_skillLoad SkillA
Read-only

Load the bounded SKILL.md body for a discovered workspace, user, or plugin skill by name. Does not accept arbitrary paths; use after open_current_workspace/open_workspace shows skill_inventory.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesExact skill name from skill_inventory or local_workspace_bridge_inventory.
pathNoExact sanitized path from skill_inventory when name/source are still ambiguous.
sourceNoOptional source when multiple skills share a name.
max_bytesNoMaximum bytes to return from SKILL.md. Default: 40000.
max_skillsNoMaximum skills to scan while resolving the requested skill. Default: 500.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
include_global_skillsNoAlso scan installed user/plugin skills. Default: auto when source/path is not workspace.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful behavioral context by noting the load is bounded and path-restricted, but it does not explain response format, truncation behavior, or 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.

Conciseness5/5

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

Two sentences, no fluff, with the core operation and the most important usage constraint front-loaded. Every clause earns its place.

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

Completeness4/5

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

For a read-only tool with 7 well-documented parameters, the description gives the essential sequence (inventory first, then load by name) and the critical restriction on paths. It does not detail output shape, but 'SKILL.md body' communicates the main return value, and annotations cover safety.

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 100%, so the schema already documents all 7 parameters. The description adds the key constraint that names come from skill_inventory and that arbitrary paths are rejected, which complements the path/name parameters but does not need to repeat the full schema.

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 ('Load') and a specific resource ('bounded SKILL.md body') for discovered workspace, user, or plugin skills. It also distinguishes itself from arbitrary file reading by explicitly rejecting arbitrary paths.

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

Usage Guidelines5/5

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

It clearly states the precondition: use after open_current_workspace/open_workspace shows skill_inventory. It also gives a negative guideline ('Does not accept arbitrary paths'), helping the agent know when this tool is not appropriate.

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

local-workspace-bridgeLocalWorkspaceBridge SupertoolA
Destructive

Stable wrapper for advanced ChatGPT connector setups. Pass action plus args to call an already-registered LocalWorkspaceBridge tool without changing the visible schema; it cannot call tools disabled by the current mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments for the selected action. Same shape as the wrapped LocalWorkspaceBridge tool.
actionNoAction or registered tool name. Use list_actions to see what this server mode allows.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds value by stating it cannot call tools disabled by the current mode, which is behavioral context beyond the annotations. This justifies a score above the baseline.

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 two sentences with no filler. The purpose is front-loaded ('Stable wrapper'), and the constraint is placed at the end. It is concise and well-structured, though the phrase 'advanced ChatGPT connector setups' is slightly vague but not verbose enough to warrant a 3.

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

Completeness4/5

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

For a wrapper tool with two parameters and no output schema, the description covers the core mechanics, the mode constraint, and directs to list_actions. It does not explain potential side effects beyond annotations, but annotations already cover destructive behavior. Overall it is complete enough for an agent to call 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 100%, so the baseline is 3. The description does not add anything beyond what the schema already provides for the two parameters; it simply echoes 'pass action plus args' without enriching the meaning.

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 it is a stable wrapper that passes action plus args to an already-registered LocalWorkspaceBridge tool, which is a specific verb-resource combination. It distinguishes itself as a generic dispatcher, though it does not explicitly compare to sibling tools, so it gets a 4 rather than 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 Guidelines3/5

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

It implies use for advanced ChatGPT connector setups and for invoking an already-registered tool without schema changes. It provides a constraint (cannot call disabled tools) but does not explicitly state when to use this vs alternatives or when not to use it, so it is adequate but incomplete.

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

local_workspace_bridge_self_testLocalWorkspaceBridge Self TestA
Read-only

Run a controlled local diagnostic for workspace access, tool registration, skills, git, and the configured bash policy without modifying workspace files.

ParametersJSON Schema
NameRequiredDescriptionDefault
bash_probeNoCheck bash policy with safe local commands only. Default: true.
max_skillsNoMaximum skills to inspect during the inventory check. Default: 40.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
include_global_skillsNoInclude user/plugin skill discovery in the inventory check. Default: true.

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful context by stating the test will not modify workspace files and is 'controlled' and 'local.' It also clarifies the scope of checks, which goes beyond the annotations, though it does not describe what output the diagnostic produces.

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, dense sentence that front-loads the core action and then lists the diagnostic scope without wasted words. Every phrase contributes to understanding the tool's behavior and constraints.

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 description is adequate for selecting and invoking the tool, and the schema covers all parameters. However, there is no output schema and the description does not explain what the diagnostic returns or how an agent should interpret the result, which is a notable gap for a self-test tool.

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 100%, so all four parameters are already well documented in the schema. The main description does not add parameter-level detail, but that is acceptable because the schema carries the full burden. Baseline 3 is appropriate here.

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 names a specific verb ('Run'), a clear resource ('a controlled local diagnostic'), and enumerates the exact areas covered: workspace access, tool registration, skills, git, and bash policy. It also adds the key constraint 'without modifying workspace files,' which distinguishes this self-test from file-inspection siblings like inspect_workspace.

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 'controlled local diagnostic' implies this tool is for verifying bridge health, but the description does not explicitly state when to prefer it over alternatives such as inspect_workspace or tree. Usage context is implied rather than spelled out, and no exclusions or alternative recommendations are given.

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

open_current_workspaceOpen Current WorkspaceA
Read-only

Use this once at the start to open the configured default workspace without accepting a path. Do not call open_workspace after this unless switching roots.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_depthNoTree depth when include_tree=true. Default: 2.
include_treeNoInclude a compact file tree. Default: false for speed.
include_skillsNoDiscover skills by name/description. Default: false for speed.
include_global_skillsNoAlso scan installed user/plugin skills when include_skills=true. Default: false.

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description does not contradict them. It adds useful beyond-schema context: the tool is intended as the initial workspace-opening call, it accepts no path, and it establishes a root context such that following it with open_workspace means switching roots.

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 compact sentences with zero padding. The main instruction is front-loaded and the alternative-tool warning appears in the second sentence, giving a clear and efficient structure.

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 simple optional-parameter tool, the description covers the core invocation rule, the no-path constraint, and the relationship to open_workspace. The schema covers parameter details, and the annotations cover safety, so nothing essential for selecting and calling this tool is missing.

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?

All four parameters are fully documented in the input schema (types, ranges, defaults, and behavior such as 'Default: false for speed'), so the description does not need to add much. The description adds no parameter-specific guidance, matching the baseline for high schema coverage.

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 names a specific verb ('open'), a specific resource ('the configured default workspace'), and an explicit constraint ('without accepting a path'). It also contrasts directly with open_workspace, making it easy for an agent to distinguish this from the 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?

It gives an explicit usage trigger ('Use this once at the start') and an explicit exclusion ('Do not call open_workspace after this unless switching roots'). This tells the agent both when to invoke this tool and when not to invoke the obvious alternative.

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

open_workspaceOpen WorkspaceA
Read-only

Open a local project directory as a LocalWorkspaceBridge workspace. Returns a workspace_id plus git status, AGENTS.md, and a compact file tree.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAlias for root. Useful for clients that naturally send path instead of root.
rootNoProject directory to open. Omit to use LOCALWORKSPACEBRIDGE_ROOT/current working directory. Supports ~/ paths.
max_depthNoTree depth. Default: 3.
max_filesNoAlias for maximum tree entries. Default: 500.
include_treeNoInclude a compact file tree. Default: true.
include_skillsNoDiscover skills by name/description. Default: false for speed.
include_global_skillsNoAlso scan installed user/plugin skills when include_skills=true. Default: false.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already provide the safety profile (read-only, non-destructive). The description goes beyond them by detailing the workspace_id plus git status, AGENTS.md, and compact file tree that will be returned, giving the agent a concrete expectation of the response. It does not discuss potential scan costs or non-idempotent behavior, but this is minor given the parameter schema and hints.

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 short sentences carry the purpose and the output contract with no filler. The return value list is front-loaded after the verb phrase, making the core behavior immediately readable.

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?

Although there is no output schema, the description names the important returned fields. All optional parameters are documented in the schema, and the annotations cover safety concerns, so an agent has enough context to invoke the tool and interpret its result.

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?

All seven parameters are fully described in the schema (100% coverage), so the baseline applies. The description's mention of 'local project directory' simply echoes the path/root parameter without adding syntax or edge-case detail beyond the schema.

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

Purpose5/5

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

The description states a specific action ('Open a local project directory as a LocalWorkspaceBridge workspace') and names the key results (workspace_id plus git status, AGENTS.md, and file tree). This clearly differentiates it from siblings like open_current_workspace, which works on the current directory rather than a user-supplied root.

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?

Usage is implied: call this when you need to open a local project directory into a workspace. However, the description does not explicitly contrast it with open_current_workspace or say when to prefer one over the other, leaving the agent to infer routing.

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

readRead FileA
Read-only

Read a specific text file with line numbers. Avoid rereading files after write/edit/apply_patch unless exact final content is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to workspace root.
end_lineNoLast line to read. Default: end of file.
max_bytesNoMaximum bytes returned in this page. Capped by the server and MCP response limits.
start_lineNoFirst line to read. Default: 1.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.

TDQS

A4/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that output includes line numbers and counsels against redundant rereads, which is useful but modest behavioral context; no pagination or encoding behavior is disclosed.

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 purpose and the key usage caveat are front-loaded in a compact, easily parsed form.

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?

All five parameters are documented in the schema, annotations cover safety, and the description adds the one non-obvious operational tip about avoiding redundant rereads. There is no output schema, but mentioning line numbers gives a rough return-format expectation; minor omissions like pagination behavior are inferable from max_bytes and start_line parameters.

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 covers 100% of parameters with descriptions, so baseline is 3. The description adds no parameter-specific detail beyond 'text file' and line numbers; start_line, end_line, max_bytes, and workspace_id semantics live in the schema.

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?

Description opens with 'Read a specific text file with line numbers,' identifying the verb, resource, and output format. It clearly distinguishes itself from sibling tools like write/edit and read_image by restricting scope to text files.

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 explicit when-not guidance: avoid rereading after write/edit/apply_patch unless exact final content is needed. It does not explicitly name alternative listing/search tools, but the text-file scope and read-only safety make the intended use clear.

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

read_imageRead ImageA
Read-only

Read a workspace-local JPEG, PNG, or WebP as native MCP image content. Safe default previews use a 1600 px longest side; values above 1600 up to 4096 are experimental in ChatGPT. For pixel-level detail, prefer image_info plus read_image_crop/read_image_tile.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesImage path relative to workspace root. Supported: .jpg, .jpeg, .png, .webp. Maximum input: 25 MiB.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
max_dimensionNoPreview longest-side dimension. Default: 1600. Values above 1600 are experimental and may be unstable in ChatGPT's MCP image path.
return_originalNoReturn original bytes when they fit within the 3 MiB output safety limit. Default: false. This bypasses safe pixel-dimension previewing and is experimental for large-dimension images.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare the operation is read-only and non-destructive, so the bar is lower. The description adds valuable behavioral context beyond the annotations: default preview sizing of 1600 px, the experimental nature of values above 1600 in ChatGPT, and the guarantee of returning native MCP image content. It does not fully describe failure behavior or output-size edge cases, but the schema covers those partially.

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 uses only three sentences, each earning its place: purpose, sizing behavior, and alternative routing. It front-loads the core purpose and avoids redundant restatement of the tool name or schema details.

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 read-only preview tool with fully documented parameters and annotations, the description is complete. It clarifies the output type (native MCP image content), supported formats, preview sizing limits, and the available sibling tools for pixel-level work. No output schema exists, but the description sufficiently covers what the agent needs to know.

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 100%, so the schema already documents path, workspace_id, max_dimension, and return_original with detailed constraints. The description adds no new parameter-specific meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb-resource pair: 'Read a workspace-local JPEG, PNG, or WebP as native MCP image content.' It clearly differentiates from the closely related siblings image_info, read_image_crop, and read_image_tile by naming them as alternatives for pixel-level detail rather than whole-image previews.

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?

The description explicitly tells the agent when not to use this tool: 'For pixel-level detail, prefer image_info plus read_image_crop/read_image_tile.' It also implies the correct use case through 'Safe default previews' and the mention of returning native MCP image content. This is explicit enough for an agent to route correctly.

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

read_image_cropRead Image CropA
Read-only

Read a rectangular crop directly from the original image, rendered at a safe maximum longest side of 1600 px. Coordinates are original-image pixels from the top-left corner.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesCrop left coordinate in original-image pixels.
yYesCrop top coordinate in original-image pixels.
pathYesImage path relative to workspace root.
widthYesCrop width in original-image pixels.
heightYesCrop height in original-image pixels.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
max_dimensionNoCrop output longest-side dimension. Default/max: 1600 pixels.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds genuinely useful behavior beyond that: the crop is 'rendered at a safe maximum longest side of 1600 px' (so output may be downscaled) and coordinates are 'original-image pixels from the top-left corner.' No contradiction with annotations.

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 zero waste: purpose first, then the two critical constraints (rendering cap and coordinate frame). Every sentence earns its place and nothing is redundant with the schema.

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 7-parameter tool with no output schema, the description covers purpose, coordinate system, and rendering cap, but omits out-of-bounds behavior and any guidance on how this tool relates to read_image and read_image_tile. An agent can invoke it correctly, but the sibling selection context is left unresolved.

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 100%, so the baseline of 3 applies. The description adds the 'from the top-left corner' origin clarification and the 1600 px cap context for max_dimension, but most parameter semantics (x/y/width/height in original-image pixels) are already fully documented in the schema, making the description's additive value modest.

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 names a specific operation ('Read a rectangular crop directly from the original image') with a clear resource and scope. 'Rectangular crop' plus 'directly from the original image' separates it from sibling tools like read_image and read_image_tile without needing to open their schemas.

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

Usage Guidelines3/5

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

The description implies when to use it — when a rectangular region of the original image is needed — but it never names read_image or read_image_tile as alternatives, and gives no explicit when-not-to-use guidance. Usage context is inferable rather than stated.

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

read_image_tileRead Image TileA
Read-only

Read one tile from an automatically recommended high-detail grid. Tiles come directly from original pixels, default to 8% overlap, and are kept within the safe 1600 px longest-side path.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowYes1-based tile row from image_info's recommended grid.
pathYesImage path relative to workspace root.
columnYes1-based tile column from image_info's recommended grid.
overlapNoFractional tile overlap. Default: 0.08 (8%). Use the same value as image_info if overridden.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
max_dimensionNoTile output longest-side dimension. Default/max: 1600 pixels.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and non-destructive. The description adds useful behavioral details beyond that: tiles come from original pixels, default to 8% overlap, and are capped at a 1600 px longest side. This helps set expectations about fidelity and output limits.

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 purpose and packs only high-value behavioral details. No filler or repetition of schema information.

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

Completeness4/5

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

The tool has six parameters and no output schema, but the schema itself is detailed with 100% coverage. The description covers the essential behavior, overlap default, and size limit. It does not explicitly connect to image_info or rule out alternatives, but the schema and sibling names fill most of that gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining that tiles are original-pixel-based and constrained to a safe 1600 px path, which clarifies the intent behind overlap and max_dimension parameters even before reading their descriptions.

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 opens with a specific verb and resource: 'Read one tile from an automatically recommended high-detail grid.' This clearly differentiates it from whole-image reading and arbitrary cropping tools among the siblings.

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 high-detail grid tiles, and schema parameters reference image_info's recommended grid, but the description itself does not explicitly say when to use this tool versus read_image_crop or read_image, nor does it state prerequisites like calling image_info first.

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

server_configServer ConfigA
Read-only

Show LocalWorkspaceBridge server configuration, safety modes, limits, and blocked paths. Does not reveal auth tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and non-destructive, and the description reinforces this by saying it 'Shows' configuration. It adds meaningful behavioral disclosure with 'Does not reveal auth tokens,' telling agents what sensitive data will not be exposed.

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 with no filler. The core purpose is front-loaded in the first sentence, and the important privacy constraint is succinctly added in the second.

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 zero-parameter read-only configuration inspection tool, the description is complete: it states what is shown, implies read-only behavior, and explicitly discloses the auth-token exclusion. Nothing needed for correct invocation is missing.

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?

The tool has zero parameters and the schema coverage is 100%, so there are no parameter semantics for the description to clarify. The baseline of 4 applies because no parameter documentation is needed.

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 'Show' with a clear resource: 'LocalWorkspaceBridge server configuration.' It further specifies the exact contents (safety modes, limits, blocked paths), making it easy to distinguish from file/workspace manipulation siblings like write, edit, and inspect_workspace.

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 clearly indicates this tool is for reading server configuration and safety-related settings, with zero parameters and no prerequisites. It does not explicitly name alternatives or exclusions, but the sibling tools are mostly file/workspace operations, so the usage context is clear enough.

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

set_default_workspaceSet Default WorkspaceB
Read-only

Set an already-opened workspace as the default and active workspace for omitted workspace_id calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idYesWorkspace id from open_workspace/list_workspaces.

TDQS

B3.2/5.0
Behavior1/5

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

The description says the tool 'Set[s]' a workspace as default/active, which implies a state change. This directly contradicts the annotation readOnlyHint=true, which indicates the tool does not modify state. Therefore the description contradicts the annotations.

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, front-loaded sentence with no filler. Every part contributes meaning: the target workspace, the precondition that it is already opened, and the effect on omitted workspace_id calls.

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 one-parameter tool, the core effect is stated, but the contradiction with readOnlyHint leaves the behavioral profile unreliable. The description also does not clarify persistence, session scope, or whether this changes any stored server state.

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 100% and the schema already explains that workspace_id comes from open_workspace/list_workspaces. The tool description adds no additional parameter semantics beyond the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Set'), a specific resource ('an already-opened workspace'), and the exact purpose ('default and active workspace for omitted workspace_id calls'). The phrase 'already-opened' also distinguishes it from open_workspace, which actually opens a workspace.

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 it: after a workspace is already opened and when you want it to be the default for calls that omit workspace_id. However, it does not explicitly mention alternatives like list_workspaces/open_workspace or state when not to use the tool.

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

show_changesShow ChangesA
Read-only

Summarize the current workspace changes in one review-oriented result with git status, diff stats, and optional diff. Use this instead of bash git status, bash git diff, git_status, or git_diff when reviewing work.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional file path relative to workspace root.
sinceNoUse last_shown to suppress unchanged repeated reviews. Default: last_shown.
stagedNoShow staged diff. Default: false.
include_diffNoInclude the unified diff. Default: true.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
mark_reviewedNoUpdate the last-shown review checkpoint after this call. Default: true.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish read-only and non-destructive behavior. The description adds that the tool aggregates multiple git views into a single review-oriented result and clarifies the optional diff. It doesn't explicitly surface the mark_reviewed checkpoint side effect, but that is already documented in the parameter schema, so the description is not misleading.

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 core action and output are front-loaded, and the routing guidance is in the second sentence. Every phrase earns its place.

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

Completeness4/5

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

For a read-only tool with 6 self-describing parameters and no output schema, the description provides a clear output sketch and usage context. It could be more explicit about the review-checkpoint behavior, but the parameter docs and annotations cover the remainder.

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?

All 6 parameters are covered at 100% in the schema, so the description needn't repeat details. It adds a high-level mapping to output components like diff stats and optional diff, but no parameter-specific meaning beyond the schema.

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?

Description uses a specific verb (summarize), names the exact resource (current workspace changes), and enumerates output components (git status, diff stats, optional diff). It also explicitly contrasts with sibling git/bash tools, so an agent can distinguish show_changes from them.

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?

States the use case ('when reviewing work') and explicitly says 'Use this instead of bash git status, bash git diff, git_status, or git_diff'. This gives both a positive trigger and named alternatives to avoid.

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

treeFile TreeB
Read-only

List files and directories inside the workspace, excluding blocked paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory relative to workspace root. Default: .
max_depthNoMaximum depth. Default: 4.
max_entriesNoMaximum entries. Default: 800.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.
include_hiddenNoInclude dotfiles/dotfolders that are not blocked. Default: false.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral limitation, 'excluding blocked paths', but does not disclose output format or truncation behavior; still a reasonable mid-level contribution.

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 focused sentence that states the action, scope, and a key limitation with no filler. It is concise and front-loaded, every word contributing value.

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

Completeness4/5

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

For a simple read-only listing tool, the description combined with the rich schema and safety annotations is largely complete. It does not describe the exact return format, which is a minor gap, but an agent likely has enough context to invoke the tool 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?

All five parameters are fully described in the input schema, so the schema carries the semantic weight. The description itself adds no parameter-level detail beyond what is already structured, matching the baseline for high schema coverage.

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 a specific action ('List'), a resource ('files and directories'), and a scope ('inside the workspace'), so an agent can tell it apart from content-reading or searching tools. It does not explicitly name a sibling alternative, but the behavior is unambiguous.

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 explicit guidance about when to choose tree over related tools like search, read, or inspect_workspace. The intended use is implied by the action 'List files and directories', but no conditions or alternatives are provided.

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

writeWrite FileA
Destructive

Create or overwrite a meaningful text file inside the workspace. Returns a unified diff; do not create empty placeholder files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to workspace root.
contentYesComplete file contents to write.
overwriteNoAllow overwriting existing files. Default: true.
create_dirsNoCreate parent directories if missing. Default: true.
workspace_idNoWorkspace id from open_workspace. Omit to use default workspace.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description reinforces this with 'overwrite.' Beyond annotations, it discloses that the tool returns a unified diff and warns against empty placeholder files, adding useful behavioral context. It does not contradict the annotations.

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 concise sentences with no filler. The primary action is front-loaded first, followed by the return behavior and a key usage rule. Every phrase carries necessary information.

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

Completeness4/5

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

For a 5-parameter tool with no output schema, the description covers the essential context: workspace scope, create/overwrite behavior, return format, and a critical guideline about placeholders. It relies appropriately on the schema for parameter details and annotations for destructive behavior. It is nearly complete, though it does not discuss failure modes or diff formatting in more depth.

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 100%, so the baseline is 3; the schema itself documents path, content, overwrite, create_dirs, and workspace_id. The description adds little parameter-level detail beyond 'meaningful text file' and 'inside the workspace.' This meets the baseline but does not exceed it.

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 creates or overwrites a text file inside the workspace, which differentiates it from sibling tools like edit or apply_patch that modify existing content. The scope is specific: a meaningful text file within the workspace. It leaves no ambiguity about the core operation.

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 provides clear usage context: use this tool to create or overwrite files in the workspace. It also gives an explicit constraint, 'do not create empty placeholder files,' which guides agent behavior. However, it does not directly name alternatives or state when to prefer edit or apply_patch over write, so it stops short of full exclusions.

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. 22 tool updatesv0.1.0
    • First observedapply_patch
    • First observedbash
    • First observedclose_workspace
    • First observededit
    • First observedimage_info
    • First observedinspect_workspace
    • First observedlist_workspaces
    • First observedload_skill
    • First observedlocal_workspace_bridge_self_test
    • First observedlocal-workspace-bridge
    • First observedopen_current_workspace
    • First observedopen_workspace
    • First observedread
    • First observedread_image
    • First observedread_image_crop
    • First observedread_image_tile
    • First observedsearch
    • First observedserver_config
    • First observedset_default_workspace
    • First observedshow_changes
    • First observedtree
    • First observedwrite

TDQS

A3.7/5.0
Disambiguation4/5

Most tools target distinct operations—workspace management, file read/write/edit, image inspection, and change review—with descriptions that explicitly separate them. The main sources of ambiguity are the generic local-workspace-bridge wrapper, which can call other tools indirectly, and the write/edit/apply_patch cluster, though their intended use cases are clarified.

Naming Consistency4/5

The vast majority of tools follow a clear verb_noun snake_case pattern like open_workspace, read_image, and show_changes. The hyphenated local-workspace-bridge and the single-word bash/tree are noticeable outliers, but they are isolated deviations rather than a systematic mixing of conventions.

Tool Count3/5

22 tools is on the heavy side and exceeds the typical 3–15 tool sweet spot. The count is somewhat justified by the broad scope—workspace lifecycles, file editing, image handling, diagnostics, and verification—but it still feels like more surface area than necessary.

Completeness4/5

The toolset covers workspace open/list/close/default management, file tree/search/read/write/edit/apply_patch, image inspection and cropping, bash verification, change summarization, skills, and self-test/config. Obvious gaps like an explicit delete/rename tool or git commit are absent, but apply_patch can handle file deletion and the remaining gaps are workable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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 desktop launcher and local MCP workspace server that enables ChatGPT and other MCP clients to securely read, edit, search, run commands, and show changes in selected local project folders.
    1
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Turns local project directories into persistent MCP workspaces, allowing AI agents to read files, modify code, run commands, manage Git, and save session progress across conversations.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables ChatGPT Web Developer Mode to interact with local repositories through MCP, providing tools for file editing, shell execution, Git worktrees, semantic navigation, and checkpoints.
    161
    2
    MIT

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/Nippori709/AgentDock'

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