Skip to main content
Glama
AxelHu
by AxelHu

chatgpt-web-agent

Eine lokale MCP-Klebeschicht, die es der ChatGPT-Weboberfläche ermöglicht, über den OpenAI Secure MCP Tunnel lokale Werkzeuge zu nutzen.

Dies ist eine ausführbare Referenzimplementierung, kein fertiges Produkt für die Ein-Klick-Installation; sie dient hauptsächlich dazu, einen praktisch validierten Integrationsansatz zu teilen. Benutzer können mit Hilfe des Agenten schnell an ihre lokale Umgebung anpassen.

Die MCP-Schnittstelle des Projekts selbst bleibt stabil, die eigentlichen Werkzeuge werden durch ein austauschbares LocalToolBackend bereitgestellt. Das erste Backend verwendet direkt das OpenClaw Plugin SDK, ohne den OpenClaw-Quellcode zu ändern und ohne Datei-, Shell-, Patch- und Hintergrundprozess-Werkzeuge neu zu implementieren.

Aktueller Status

P0 stellt vier OpenClaw-Werkzeuge bereit:

  • read

  • exec

  • process

  • apply_patch

Optional aktivierbare Google Drive-Dateiaustauschwerkzeuge:

  • drive_list

  • drive_search

  • drive_stat

  • drive_upload

  • drive_download

  • drive_export

  • drive_mkdir

Standardmäßig sind zwei schreibgeschützte OpenClaw Skills-Werkzeuge aktiviert:

  • skills_list(query?, limit?)

  • skill_read(name)

skills_list() gibt ein kompaktes Namensverzeichnis der aktuell berechtigten + modellsichtbaren Skills zurück; mit einer natürlichen Sprachabfrage query kann es über eine separate QMD-Collection eine kleine Anzahl von Kandidaten mit Namen und Beschreibung zurückgeben. skill_read akzeptiert nur den Skill-Namen/-Schlüssel, der kanonische SKILL.md-Pfad wird immer durch das Live-OpenClaw skills.status aufgelöst, der Client liefert keinen Dateipfad. Die MCP-Initialisierungsanweisungen weisen den Client außerdem an: Skills nur dann aktiv zu entdecken, wenn die Aufgabe offensichtlich von lokalen Werkzeugen, Diensten, Workflows oder Betriebsrichtlinien abhängt und der aktuelle Kontext unzureichend ist; normale eigenständige Aufgaben fragen keine Skills ab.

Standardmäßig dürfen Datei- und Patch-Werkzeuge nur auf den konfigurierten Arbeitsbereich zugreifen; exec.workdir muss sich ebenfalls innerhalb des Arbeitsbereichs befinden. Die OpenClaw-internen Parameter host/security/ask/node/elevated werden nicht an den MCP-Client weitergegeben.

Für einen eigenständigen Connector, der nur für vertrauenswürdige ChatGPT-Arbeitsbereiche autorisiert ist, kann CHATGPT_WEB_AGENT_WORKSPACE_ONLY=false gesetzt werden. In diesem Fall ist der Arbeitsbereich nur der Zielort für relative Pfade und das Standard-cwd, read/apply_patch/exec.workdir kann auf externe absolute Pfade zugreifen. Dieser Modus ist keine Sicherheitssandbox.

Die exec.workdir-Grenze ist keine Befehlssandbox. Ein Client mit exec-Berechtigung kann dennoch über den Befehlstext auf andere Systembereiche zugreifen; der Tunnel sollte nur an vertrauenswürdige ChatGPT-Arbeitsbereiche autorisiert werden und bei Bedarf die OpenClaw-Allowlist/Approval-Richtlinie verwenden.

Related MCP server: agent-mcp-gateway

Entwicklung

Erfordert Node.js 22.22.3 oder eine kompatible OpenClaw-Node-Version sowie pnpm.

pnpm install
pnpm check
pnpm smoke

Ausführung

export CHATGPT_WEB_AGENT_WORKSPACE=/path/to/workspace
# 可信独立 Connector 如需把 workspace 仅作为默认工作目录:
# export CHATGPT_WEB_AGENT_WORKSPACE_ONLY=false
pnpm build
node dist/cli.js

Der Dienst verwendet MCP stdio, die Standardausgabe trägt nur das MCP-Protokoll.

Konfiguration

Kopieren Sie .env.example, um die verfügbaren Umgebungsvariablen zu sehen. Die Standard-Tool-Whitelist lautet:

read,exec,process,apply_patch

exec verwendet standardmäßig allowlist + on-miss. Kann explizit überschrieben werden:

export CHATGPT_WEB_AGENT_EXEC_SECURITY=allowlist
export CHATGPT_WEB_AGENT_EXEC_ASK=on-miss

Für einen ersten vertrauenswürdigen lokalen Smoke-Test kann vorübergehend verwendet werden:

export CHATGPT_WEB_AGENT_EXEC_SECURITY=full
export CHATGPT_WEB_AGENT_EXEC_ASK=off

Architektur

ChatGPT Web
  → OpenAI Secure MCP Tunnel
  → chatgpt-web-agent MCP Server
  → LocalToolBackend
      → OpenClawBackend
      → SkillsBackend → OpenClaw Gateway (live status)
                      → QMD MCP (optional semantic discovery)
      → NativeBackend / other backend(后续按需)

Das Skills-Backend dient nur der Capability-Erkennung/-Lektüre; QMD ist lediglich ein Beschleuniger für die Kandidatensuche, das Live-OpenClaw-Inventar ist stets die maßgebliche Quelle für Berechtigung, Modellsichtbarkeit und kanonischen Skill-Pfad.

Semantische Skills-Erkennung

Es wird empfohlen, den semantischen Katalog in einem separaten QMD-named-Index zu platzieren, nicht im gemeinsamen Memory-Index. Der Vektor-ANN von QMD 2.5.3 holt zuerst Kandidaten aus dem gesamten Index und wendet dann den Collection-Filter an; das Mischen von einigen Dutzend Skills mit Zehntausenden von Memory-Dokumenten würde die kleine Collection von Kandidaten aus dem gesamten Index überfluten lassen.

Die aktuelle Bereitstellung verwendet:

local catalog: <workspace>/skills-catalog/
M4 mirror:     ~/qmd-data/skills-chatgpt-web-agent/
QMD index:     skills-chatgpt-web-agent
collection:    skills-chatgpt-web-agent
MCP endpoint:  http://192.168.0.96:8182/mcp

Die Suche verwendet Qwen3-Embedding-0.6B, nur Vektoren, rerank=false, keine Query-Expansion / HyDE. QMD-Treffer sind nur Kandidaten; vor der Rückgabe wird die Schnittmenge mit dem Live-skills.status gebildet. Das Katalogschema/-inventar wird über catalogHash auf Generationsungültigkeit geprüft; bei Nichtverfügbarkeit von QMD oder veraltetem Katalog wird automatisch auf das Live-Names-only-Katalog zurückgegriffen.

Google Drive

Drive ist ein optionaler Datenkanal, keine Hintergrundsynchronisation, Festplatteneinbindung oder vollständige Datenträgerspiegelung. Die Implementierung verwendet direkt die Google Drive API v3, MCP stellt nur kleine, stabile Dateioperationsprimitive bereit.

Standardmäßig können lokale Upload-/Download-/Exportpfade von Drive nur in:

<CHATGPT_WEB_AGENT_WORKSPACE>/exchange

Diese Einschränkung ist unabhängig von CHATGPT_WEB_AGENT_WORKSPACE_ONLY und dient dazu, das Risiko zu verringern, dass Drive-Werkzeuge als Kanal für den Export beliebiger lokaler Daten missbraucht werden. Bei Bedarf kann der Bereitsteller dies über CHATGPT_WEB_AGENT_DRIVE_LOCAL_ROOT und CHATGPT_WEB_AGENT_DRIVE_LOCAL_ROOT_ONLY anpassen.

Einmalige OAuth-Konfiguration

  1. Aktivieren Sie die Drive-API in Google Cloud und erstellen Sie einen Desktop-OAuth-Client.

  2. Speichern Sie das heruntergeladene OAuth-JSON als:

    <workspace>/.credentials/google-drive/credentials.json

    Oder setzen Sie CHATGPT_WEB_AGENT_DRIVE_CREDENTIALS auf einen anderen lokalen privaten Pfad.

  3. Führen Sie aus:

    CHATGPT_WEB_AGENT_WORKSPACE=/path/to/workspace pnpm drive:auth

    Nach Abschluss der Browser-Autorisierung wird ein Authorized-User-Token mit Berechtigung 0600 erstellt. Das OAuth-Client-Secret und das Refresh-Token sollten nicht in Git committet und nicht über MCP zurückgegeben werden.

  4. Setzen Sie beim Start des Dienstes:

    export CHATGPT_WEB_AGENT_DRIVE_ENABLED=true

In den Drive-Werkzeugen verwenden folderId / fileId direkt die Drive-API-ID. Normale Binärdateien verwenden drive_download; Google Docs/Sheets/Slides verwenden drive_export zum Export in den angegebenen MIME-Typ.

Available Tools

6 tools
apply_patchapply_patchC

Apply a patch to one or more files using the apply_patch format. The input should include *** Begin Patch and *** End Patch markers.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesPatch content using the *** Begin Patch/End Patch format.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It states the tool applies patches and uses markers, but it does not mention side effects like file modification, potential for partially applied patches, rollback capability, or whether it creates files that don't exist. Key behavioral traits are missing.

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

Conciseness4/5

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

The description is brief and front-loaded with the core purpose. It uses two sentences effectively, but the repeated mention of 'apply_patch format' is slightly redundant.

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

Completeness2/5

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

Given the tool modifies files, it lacks details on safety, rollback, or how partial patches are handled. With no output schema and no annotations, the description should cover failure modes and post-conditions, which it omits.

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 coverage is 100%, and the description adds minor context about the format markers beyond the schema's generic 'Patch content' description. However, it does not explain the patch syntax (e.g., unified diff), allowed operations, or error handling if format is invalid.

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

Purpose4/5

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

The description clearly states the tool applies a patch to files and specifies the patch format with markers. However, it does not distinguish itself from siblings like 'exec' or 'process', which might also apply changes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like 'read' or 'exec'. The description lacks context on prerequisites, such as whether files must exist or be writable, and does not mention that 'apply_patch' is specifically for applying patch diffs versus directly editing files.

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

execexecA

Execute shell commands with background continuation for work that starts now. Use yieldMs/background to continue later via process tool. For long-running work started now, rely on automatic completion wake when it is enabled and the command emits output or fails; otherwise use process to confirm completion. Use process whenever you need logs, status, input, or intervention. Use pty=true for TTY-required commands (terminal UIs, coding agents).

ParametersJSON Schema
NameRequiredDescriptionDefault
envNo
ptyNoRun in a pseudo-terminal (PTY) when available (TTY-required CLIs, coding agents)
commandYesShell command to execute
timeoutNoTimeout in seconds (optional, kills process on expiry)
workdirNoWorking directory. Blank/whitespace values are invalid; omit to use the default cwd.
yieldMsNoMilliseconds to wait before backgrounding (default 10000)
backgroundNoRun in background immediately

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains backgrounding behavior, automatic completion wake, and the necessity of using 'process' for interaction. However, it does not detail security restrictions, output handling, or timeout effects beyond what is in the schema.

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 four sentences, front-loaded with the core purpose, followed by concise usage rules. Every sentence contributes unique information with no redundancy or 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?

The tool has no output schema, so the description should clarify return values. It does not mention what the initial call returns (e.g., immediate output or a handle). However, it covers the backgrounding workflow, including the role of 'process' for logs and status, making the overall completeness high despite the ambiguity about immediate response.

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 high (86%), so baseline is 3. The description adds usage context for 'yieldMs', 'background', and 'pty', but does not significantly elaborate on parameter meaning beyond what the schema already provides. It ties parameters to scenarios but does not introduce new semantic information.

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 'Execute shell commands' and elaborates on background continuation, distinguishing itself from sibling tools like 'process' which handles logs/status. It provides a specific verb-resource combination and explicitly differentiates usage.

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 explicit guidance on when to use alternative tool 'process' (for logs, status, input, intervention) and when to enable 'pty=true' (TTY-required commands). It also explains the 'yieldMs/background' mechanism for continuing work later, leaving no ambiguity about context.

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

processprocessA

Manage running exec sessions for commands already started: list, poll, log, write, send-keys, submit, paste, kill. Use poll/log when you need status, logs, quiet-success confirmation, or completion confirmation when automatic completion wake is unavailable. Use poll/log also for input-wait hints. Use write/send-keys/submit/paste/kill for input or intervention.

ParametersJSON Schema
NameRequiredDescriptionDefault
eofNoClose stdin after write
hexNoHex bytes to send for send-keys
dataNoData to write for write
keysNoKey tokens to send for send-keys
textNoText to paste for paste
limitNoLog length
actionYesProcess action (list|poll|log|write|send-keys|submit|paste|kill|clear|remove)
offsetNoLog offset
literalNoLiteral string for send-keys
timeoutNoFor poll: wait up to this many milliseconds before returning; max 30000 ms, higher values are clamped to 30000
bracketedNoWrap paste in bracketed mode
sessionIdNoSession id for actions other than list

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool manages running sessions and that poll can wait up to 30000 ms (clamped). However, it doesn't mention that actions modify session state (e.g., writing data, killing), which is reasonably inferred. It also doesn't state that list returns session IDs needed for other actions, though the schema makes that somewhat clear. Very good but not exhaustive.

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

Conciseness5/5

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

The description is a tight 4-sentence paragraph. The first sentence front-loads all actions and the tool's purpose. The next two sentences give precise when-to-use guidance. The last sentence covers the remaining actions. Every sentence earns its place; 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 12 parameters, 100% schema coverage, and no output schema, the description fills the behavioral gap well. It explains when to use each action type. The only missing element is a brief note that some actions (e.g., kill) are destructive or irreversible, which would have pushed completeness to 5. Still strong and sufficient for an agent.

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 coverage is 100%, so baseline is 3. The description does not add meaning beyond schema property descriptions – it simply names the action groups. The schema already describes each property's purpose (e.g., 'Hex bytes to send for send-keys'). The description adds no new parameter details or usage patterns, so it stays at baseline.

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 lists all eight supported actions (list, poll, log, write, send-keys, submit, paste, kill) and clearly states the tool manages running exec sessions. It even details specific use cases like confirming completion or getting input-wait hints. This fully distinguishes it from siblings like exec (which starts sessions) and read/apple_patch (which operate on files).

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 explicitly tells the agent when to use poll/log for status, logs, or input-wait hints, and when to use write/send-keys/submit/paste/kill for input/intervention. It also mentions the fallback when automatic completion wake is unavailable, giving actionable guidance to select among the tool's own actions. No sibling-level exclusions are needed because the tool manages already-started sessions – distinct from siblings.

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

readreadA

Read the contents of a file. Supports text files and images (jpg, png, gif, webp, bmp). Images are sent as attachments. For text files, output is truncated to 2000 lines or 50KB (whichever is hit first). Use offset/limit for large files. When you need the full file, continue with offset until complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file to read (relative or absolute)
limitNoMaximum number of lines to read
offsetNoLine number to start reading from (1-indexed)

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: truncation to 2000 lines or 50KB, offset/limit pagination, and image handling as attachments. This goes well beyond the input schema's parameter descriptions, providing critical operational details.

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 sentences long, front-loaded with the purpose, and every sentence provides essential information. No unnecessary words or repetition, making it highly efficient for an AI agent to parse.

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 tool's simplicity (3 parameters, no output schema), the description covers purpose, supported file types, truncation limits, and pagination strategy. It does not explicitly describe the return format for text files, but the information provided is sufficient for most use cases. A minor gap for completeness.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the intended use of offset/limit for pagination ('Use offset/limit for large files') and clarifying that offset is 1-indexed, which is implicit in the schema but reinforced 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 clearly states the specific verb 'read' and resource 'file', and lists supported file types (text and images). It distinguishes from sibling tools like 'exec' (command execution) and 'skill_read' (reading skills) by focusing on general file reading.

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 guidance on when to use the tool (for reading text and image files) and how to handle large files via offset/limit pagination ('use offset/limit for large files'). It lacks explicit exclusions (e.g., binary files other than images) but the context is sufficient for correct usage.

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

skill_readA

Read one currently eligible/model-visible OpenClaw Skill by its name or skillKey. Use after skills_list identifies a likely match. This tool does not accept filesystem paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It mentions 'currently eligible/model-visible' but does not specify behavior on missing skills, read-only guarantee, or potential errors. The description is minimal regarding side effects or failure conditions.

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 concise sentences, no redundant wording. Every clause adds value—purpose, usage timing, and a key constraint.

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

Completeness3/5

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

Given no output schema, the description could clarify what is returned (e.g., skill content, metadata). It does not mention output details, but the tool's purpose is clear enough for selection. Slightly incomplete in describing the full interaction.

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

Parameters5/5

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

The only parameter 'name' is clarified to accept either the skill name or skillKey, and explicitly excludes filesystem paths. This adds significant meaning beyond the bare string type, compensating for the lack of schema-level description.

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 reads a skill by name or skillKey, distinguishing it from sibling tools like skills_list (which lists) and read/apply_patch/exec/process (which operate on files or processes). It is specific and unambiguous.

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?

Explicitly instructs to use after skills_list identifies a likely match, and provides a clear constraint (does not accept filesystem paths). This fully guides when and how 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.

skills_listA

Discover local OpenClaw Skills available to ChatGPT Web. Pass a natural-language task description in query to get a small semantic top-k with descriptions. Without query, returns the compact names-only live catalog. Only currently eligible and model-visible Skills are surfaced.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum semantic candidates; defaults to 8.
queryNoNatural-language task or capability to discover.

TDQS

A3.9/5.0
Behavior4/5

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

No annotations present, so description carries full burden. It explains the tool surfaces only 'currently eligible and model-visible Skills' and describes two distinct outputs. This is adequate for a read-operation.

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

Conciseness5/5

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

Two sentences pack purpose, dual behavior, and constraints with zero waste. Every sentence contributes meaning.

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 tool's simplicity (2 optional params, no output schema, no annotations), the description covers core functionality, parameter options, and eligibility. It could mention the return format, but is largely complete.

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 baseline is 3. Description adds value by explaining that 'query' triggers semantic top-k search with descriptions, while omitting it yields a names-only catalog. This clarifies the parameter's effect beyond the schema.

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 that the tool discovers local OpenClaw Skills for ChatGPT Web. It distinguishes between query and no-query modes, but doesn't explicitly differentiate from sibling tool 'skill_read'.

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

Usage Guidelines3/5

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

Provides clear context on when to pass a query vs. not, but does not mention alternatives or when to avoid using this tool.

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.

  1. 6 tool updatesv0.1.0
    • First observedapply_patch
    • First observedexec
    • First observedprocess
    • First observedread
    • First observedskill_read
    • First observedskills_list

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a distinct purpose: file reading, patch application, command execution, process management, and skills listing/reading. Descriptions clearly differentiate them.

Naming Consistency4/5

Most tools use verb-like names with a mix of underscore and no-underscore styles (e.g., 'read' vs 'skills_list'). The convention is not fully uniform but remains understandable.

Tool Count5/5

Six tools is appropriate for a coding-agent server, covering core operations without being excessive or sparse.

Completeness5/5

The suite covers file access, modifications, command execution, background process management, and skill discovery, leaving no obvious gaps for common agent workflows.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables ChatGPT Web to securely access local files and run commands via MCP, with optional OpenCode agent mode for autonomous tasks.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Turns ChatGPT web into a local coding agent, enabling file edits, shell commands, Git operations, patches, and process management through 40+ MCP tools.
    MIT