Skip to main content
Glama

mcp-chatgpt

An MCP (Model Context Protocol) server that allows AI assistants (such as Google Antigravity, Claude Desktop, Cursor, VS Code Cline/Roo Code) to ask questions, chat, and interact with ChatGPT Web (https://chatgpt.com) directly through browser automation, Chrome Profiles, and a companion Chrome Extension.


🌟 特徴

  • 💬 質問とチャット: ChatGPT Web にシームレスに質問し、応答(フォーマット済みテキスト / Markdown)を受け取ります。

  • 🌐 Web検索トグル: ChatGPTのライブWeb検索(web_search: true)を有効にして、リアルタイムのWeb閲覧と引用を可能にします。

  • 🧠 推論とモデル選択: モデル(model: "o3-mini"、"gpt-4o"、"o1")を選択し、推論努力(reasoning_effort: "high" | "medium" | "low")を設定します。

  • 📎 ファイルと画像の添付: マルチモーダル分析のために画像(image_paths)やドキュメント/コード(file_paths)を添付します。

  • ⏩ 自動継続出力: 長い回答が途中で切れた場合に「Continue generating」/「สร้างต่อ」を自動的にクリックします。

  • 💻 コード抽出: extract_code_only: true でコードブロックのみを抽出して返します。

  • 👤 Chromeプロファイルセレクター: コンピューター上のすべてのGoogle Chromeプロファイル(Default、Profile 1、Work、Personal、メールアドレス)を自動検出し、どのアカウントでチャットするかを選択できます。

  • 🧩 付属のChrome拡張機能: extension/ にManifest V3拡張機能が含まれており、任意のChromeプロファイルに読み込んで、プロファイルロックの問題なしにChatGPTタブとリアルタイムでチャットできます。

  • 🔄 会話管理: 会話ID / URLを使用して、新しいチャットを開始したり、既存のスレッドを続行したりできます。

  • 💾 永続セッション: ブラウザプロファイルとログインCookieをローカルに保存するため、ログインは一度だけです。

  • 🖥️ ヘッド付き&ヘッドレスモード: バックグラウンドで静かに実行(ヘッドレス)するか、初期認証やCAPTCHA解決のために可視ウィンドウ(--login / --headed)を起動します。

  • 🔌 Chrome CDPサポート: --remote-debugging-port を介して、すでに実行中のGoogle Chromeインスタンスに接続します。

  • 🧰 ワークスペースツール: クロスプラットフォームの shell_command とルート制限付き apply_patch ツールを使用して、ファイルの検索、ビルド/テストの実行、コードの編集ができます。

  • 🌐 リモートMCPトンネル: Cloudflare Tunnel/ngrokまたは別のHTTPSトンネル向けに、Bearer認証付きのオプションのStreamable HTTPエンドポイント。


Related MCP server: agentify-desktop

🛠️ 提供されるMCPツール

ツール

パラメーター

説明

shell_command

command (string, 必須)workdir (string, 省略可能)shell (auto|powershell|bash, 省略可能)timeout_ms (number, 省略可能)

設定されたルートの下の作業ディレクトリでコマンドを実行します。WindowsではPowerShell、Linux/macOSではBashを自動選択します。

apply_patch

patch (string, 必須)

構造化パッチを使用して、設定されたシェルルートの下でファイルを追加、更新、削除、または移動します。

chatgpt_ask

message (string, 必須)web_search (boolean, 省略可能)model (string, 省略可能)reasoning_effort ("low"|"medium"|"high", 省略可能)image_paths (string[], 省略可能)file_paths (string[], 省略可能)extract_code_only (boolean, 省略可能)auto_continue (boolean, 省略可能)refresh_page (boolean, 省略可能)profile (string, 省略可能)new_chat (boolean, 省略可能)conversation_id (string, 省略可能)timeout_ms (number, 省略可能)

高度なコントロールを使用してChatGPT Webにプロンプト/質問を送信し、アシスタントの応答を返します。

chatgpt_reload

なし

現在のChatGPT Webページをリロードして更新し、スタック状態や接続の不具合から回復します。

chatgpt_list_models

なし

このアカウントで利用可能なすべてのAIモデル(GPT-5.6 Sol、GPT-5.5、o3、GPT-4o、o1)と推論努力オプションを一覧表示します。

chatgpt_list_conversations

limit (number, 省略可能)

ChatGPTサイドバーから最近の会話トピックとIDを直接一覧表示して、チャットを検索または再開します。

chatgpt_list_profiles

なし

このコンピューター上で検出されたすべてのGoogle Chromeプロファイルを、プロファイルID、名前、メールアドレスとともに一覧表示します。

chatgpt_select_profile

profile (string, 必須)

アクティブなChromeプロファイルを選択して切り替えます(Profile 1 などのID、名前、またはメールアドレスで指定)。

chatgpt_new_chat

なし

ChatGPT Webで新しいチャットセッションを開始します。

chatgpt_get_status

なし

ブラウザのステータス、アクティブなプロファイル、ブリッジのステータス、現在のURL、アクティブなモデルを取得します。

chatgpt_login

profile (string, 省略可能)

ログインするために、ChatGPT Webを可視のブラウザウィンドウで開きます。


🚀 クイックスタート

[!WARNING] shell_command は、MCPサーバーと同じオペレーティングシステム権限で任意のコマンドを実行できます。--shell-root は選択可能な開始作業ディレクトリを制限しますが、OSサンドボックスではありません。信頼できないクライアントを接続する場合は、制限されたユーザーまたはコンテナー内でサーバーを実行してください。apply_patch は、変更されたすべてのパスが --shell-root の下に留まることを強制します。

リモートMCPトンネル

ローカルの stdio がデフォルトのままです。リモート互換のMCPエンドポイントを公開するには、トークンを指定してHTTPモードを開始します:

mcp-chatgpt --http --http-token "change-this-token"

エンドポイントは http://127.0.0.1:8787/mcp です。その前にトンネルを配置します。例:

cloudflared tunnel --url http://127.0.0.1:8787

リモートMCPクライアントを、/mcp で終わる公開トンネルURLとヘッダー Authorization: Bearer change-this-token で構成します。/healthz はトンネルのヘルスチェックに使用できます。このプロセスまたはトンネルのいずれかが停止すると、リモートMCPリクエストは利用できなくなります。

1. インストールとビルド

# Clone the repository
git clone https://github.com/JonusNattapong/mcp-chatgpt.git
cd mcp-chatgpt

# Install dependencies and Chromium
npm install
npx playwright install chromium

# Build TypeScript
npm run build

# Install the MCP command globally
npm install -g .

インストール後、次のコマンドで確認します:

mcp-chatgpt --help

このパッケージはインストール中に npm run build を自動的に実行するため、ローカルチェックアウトからインストールした場合、グローバルコマンドは常に現在のTypeScriptソースを使用します。


👤 Chromeプロファイルの使用(2つのオプション)

オプション1: Chromeプロファイル自動検出(直接/ヘッドレス)

フォルダ名(例:Default、Profile 1)、表示名、またはメールアドレスで、システム内の任意のChromeプロファイルを選択できます:

# List all Chrome profiles in your system
node -e "import('./dist/profile-manager.js').then(m => console.table(m.ProfileManager.listProfiles()))"

# Login with a specific profile
node dist/index.js --login --profile "Profile 1"

または、chatgpt_askツールでprofileパラメータを直接渡すこともできます!


オプション2: コンパニオンChrome拡張機能(アクティブなChromeに推奨)

すでにログイン済みのChatGPTアカウントでGoogle Chromeを日常的に使用している場合は、コンパニオン拡張機能をインストールしてください:

  1. 目的のプロファイルでGoogle Chromeを開きます。

  2. chrome://extensionsに移動します。

  3. デベロッパーモード(右上)を有効にします。

  4. パッケージ化されていない拡張機能を読み込むをクリックし、d:\Projects\Github\mcp-chatgpt\extensionフォルダを選択します。

  5. ツールバーの拡張機能アイコンをクリックし、プロファイルタグ(例:「勤務先アカウント」)を設定して、保存して接続をクリックします。

  6. mcp-chatgptが実行されると、プロンプトがChromeタブを介して直接ルーティングされます!


⚙️ MCPクライアントの設定

mcp-chatgptは、Model Context Protocol(MCP)をサポートする任意のAIクライアントに接続できます:

1. Antigravity IDE / Gemini CLI

ファイルの場所:~/.gemini/config/mcp_config.json(Windows:C:\Users\<User>\.gemini\config\mcp_config.json)

{
  "mcpServers": {
    "chatgpt": {
      "command": "node",
      "args": [
        "d:/Projects/Github/mcp-chatgpt/dist/index.js"
      ]
    }
  }
}

2. Claude Desktop

  • Windows:%APPDATA%\Claude\claude_desktop_config.json

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "chatgpt": {
      "command": "node",
      "args": [
        "d:/Projects/Github/mcp-chatgpt/dist/index.js"
      ]
    }
  }
}

3. Cursor IDE

プロジェクトの.cursor/mcp.json、またはCursor設定 > 機能 > MCPに追加します:

{
  "mcpServers": {
    "chatgpt": {
      "command": "node",
      "args": [
        "d:/Projects/Github/mcp-chatgpt/dist/index.js"
      ]
    }
  }
}

4. VS Code(Cline / Roo Code / Roo Clinic)

ファイルの場所:

  • Cline:%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

  • Roo Code:%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json

{
  "mcpServers": {
    "chatgpt": {
      "command": "node",
      "args": [
        "d:/Projects/Github/mcp-chatgpt/dist/index.js"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

5. Windsurf Editor(Codeium)

ファイルの場所:~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "chatgpt": {
      "command": "node",
      "args": [
        "d:/Projects/Github/mcp-chatgpt/dist/index.js"
      ]
    }
  }
}

6. Zed Editor

~/.config/zed/settings.jsonに追加します:

{
  "context_servers": {
    "chatgpt": {
      "command": {
        "path": "node",
        "args": ["d:/Projects/Github/mcp-chatgpt/dist/index.js"]
      }
    }
  }
}

7. LibreChat(librechat.yaml)

librechat.yamlに追加します:

mcpServers:
  chatgpt:
    type: stdio
    command: node
    args:
      - d:/Projects/Github/mcp-chatgpt/dist/index.js

8. Cloudflare Tunnelによるリモート接続(リモートURL / SSE / mcp-remote)

ChatGPTブラウザまたはブリッジサーバーが自宅のコンピューターやVPSで実行されており、他のマシン/ラップトップ上のAIクライアントがCloudflare Tunnelを介してインターネット経由で安全に接続したい場合は、次の手順に従います:

ステップA:ホストマシンでブリッジサーバーを公開する

# Start Cloudflare Quick Tunnel (Free, no account required)
cloudflared tunnel --url http://127.0.0.1:18999

これにより、公開HTTPS URL(例:https://alpha-bravo-charlie.trycloudflare.com)が生成されます。


ステップB:リモートマシンでクライアントを設定する

1. Antigravity / Gemini CLI(リモートSSE / URL)

~/.gemini/config/mcp_config.jsonに追加します:

{
  "mcpServers": {
    "chatgpt-remote": {
      "serverUrl": "https://alpha-bravo-charlie.trycloudflare.com/sse"
    }
  }
}
2. Cursor IDE(リモートSSE)

.cursor/mcp.jsonまたはCursor設定に追加します:

{
  "mcpServers": {
    "chatgpt-remote": {
      "url": "https://alpha-bravo-charlie.trycloudflare.com/sse"
    }
  }
}
3. VS Code Cline / Roo Code(リモートSSE)

cline_mcp_settings.jsonに追加します:

{
  "mcpServers": {
    "chatgpt-remote": {
      "url": "https://alpha-bravo-charlie.trycloudflare.com/sse",
      "type": "sse",
      "disabled": false,
      "autoApprove": []
    }
  }
}
4. Claude Desktop / 任意のstdioクライアント(mcp-remote経由)

command(stdio)のみを受け付けるクライアントの場合は、mcp-remoteを使用してCloudflare Tunnel URLをブリッジします:

{
  "mcpServers": {
    "chatgpt-remote": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://alpha-bravo-charlie.trycloudflare.com/sse"
      ]
    }
  }
}
5. LibreChat(librechat.yaml)
mcpServers:
  chatgpt-remote:
    type: sse
    url: https://alpha-bravo-charlie.trycloudflare.com/sse
6. 直接HTTP REST API(cURL / Python / Node.js)

Cloudflareを介してブリッジエンドポイントと直接やり取りすることもできます:

# Query status
curl -s https://alpha-bravo-charlie.trycloudflare.com/status

# Ask a question
curl -X POST https://alpha-bravo-charlie.trycloudflare.com/ask \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello from Cloudflare Tunnel!"}'

📖 CLIオプション

Usage: mcp-chatgpt [options]

Options:
  --headed                 Run browser in headed (visible) mode (default: false)
  --login                  Open browser in interactive mode to log in to ChatGPT
  --profile <name_or_id>   Select specific Chrome Profile (e.g. "Default", "Profile 1", or Name/Email)
  --chrome                 Use installed Google Chrome browser (default: true)
  --no-chrome              Use Playwright bundled Chromium instead of Google Chrome
  --user-data-dir <path>   Custom browser profile directory
  --cdp <endpoint>         Connect to an existing Chrome browser via CDP endpoint
  --bridge-port <port>     Port for Chrome Extension bridge WebSocket (default: "18999")
  --bridge-only            Run only the Chrome Extension WebSocket bridge server
  --shell-root <path>      Restrict shell and patch tools to this directory (default: current directory)
  --shell-max-timeout <ms> Maximum shell command timeout in milliseconds (default: "300000")
  --http                   Expose an MCP Streamable HTTP endpoint for a tunnel/remote client
  --http-host <host>       HTTP bind host (default: "127.0.0.1")
  --http-port <port>       HTTP port for the MCP endpoint (default: "8787")
  --http-token <token>     Bearer token required by remote MCP clients (or MCP_HTTP_TOKEN)
  --timeout <ms>           Default timeout in milliseconds (default: "120000")
  -h, --help               Display help for command

🌟 ライブ対話型メモリ&コンテキスト保持デモ

以下は、mcp-chatgptを介してライブで実行された、実際の未編集のマルチターン対話セッションです:

ターン1:新しいセッションでのコンテキスト設定(new_chat: true)

リクエスト:

{
  "message": "สวัสดีครับ ผมชื่อ โจ๊กเกอร์ เป็น Software Architect ชอบเขียน Go และ TypeScript กำลังพัฒนาโปรเจกต์ชื่อ MCP-ChatGPT ฝากจำข้อมูลนี้ไว้หน่อยนะครับ ตอบสั้นๆ 1 ประโยคยืนยัน",
  "new_chat": true
}

ChatGPTの応答:

"จำไว้แล้วครับ: คุณชื่อโจ๊กเกอร์ เป็น Software Architect ชอบ Go และ TypeScript และกำลังพัฒนาโปรเจกต์ MCP-ChatGPT ครับ"

URL: https://chatgpt.com/c/6a86843c-8f30-83ec-b064-d27f7f832244


ターン2:フォローアップのメモリ呼び出し(conversation_id)

リクエスト:

{
  "message": "ไหนลองทบทวนดูซิว่า ผมชื่ออะไร ชอบเขียนภาษาอะไร และกำลังทำโปรเจกต์ชื่ออะไรอยู่?",
  "conversation_id": "6a86843c-8f30-83ec-b064-d27f7f832244"
}

ChatGPTの応答(6秒で呼び出し):

"คุณชื่อ โจ๊กเกอร์ ชอบเขียน Go และ TypeScript และกำลังพัฒนาโปรเจกต์ชื่อ MCP-ChatGPT อยู่ครับ 🫡"


🤖 AIアシスタントのシステムプロンプト&統合手順

以下の指示をAIアシスタント(Cursor Rules、Claude System Prompt、Antigravity Custom Instructions、Cline、Roo Code)に直接コピー&ペーストすると、AIがmcp-chatgptをいつ、どのように呼び出すかを自動的に認識します:

# 🛠️ Instruction: Setup and Integrate `mcp-chatgpt` MCP Server

You are integrated with the `mcp-chatgpt` MCP server, granting you direct access to ChatGPT Web capabilities (o3-mini, o1, GPT-4o, live Web Search, DALL-E, and multimodal file analysis).

### 🎯 When to Automatically Use `chatgpt_ask`:

1. **Deep Reasoning & Hard Coding Tasks**:
   - For complex architecture designs, difficult debugging, or advanced algorithms, call `chatgpt_ask` with:
     `{ "model": "o3-mini", "reasoning_effort": "high", "extract_code_only": true }`
2. **Live Web Information & Current News**:
   - When the user asks for up-to-date news, today's market data, or the latest documentation of newly updated packages, call:
     `{ "web_search": true }`
3. **Image Generation (DALL-E 3)**:
   - When the user requests an image, logo, or icon design, request it via `chatgpt_ask` and present the returned `imageUrls` directly to the user.
4. **Heavy Document & File Analysis**:
   - When analyzing CSV, Excel spreadsheets, PDFs, or large source code files, attach them via `file_paths` or `image_paths`.
5. **Continuous Conversations**:
   - Always track and pass `conversation_id` to continue in the same thread, or pass `new_chat: true` when starting an unrelated topic.
6. **Finding Past Chats**:
   - Call `chatgpt_list_conversations` to search for existing topic IDs before resuming a specific past conversation.

📄 ライセンス

MIT

Available Tools

12 tools
apply_patchA

Safely add, update, delete, or move files inside the configured shell root using an *** Begin Patch / *** End Patch patch. Prefer this over shell redirection for code edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYesPatch text containing Add File, Update File, or Delete File operations.

TDQS

A3.8/5.0
Behavior2/5

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

The description labels the operation as 'Safely' apply a patch, implying a non-destructive or managed operation, but provides no specifics on what safety means, whether it checks for errors, or what side effects occur. With no annotations provided, the description carries the full burden, and this is insufficient for a file-modifying tool.

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

Conciseness5/5

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

Description is two sentences, front-loaded with the primary action and patch format, and the usage guidance is concise. No filler.

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 that this tool can modify files (possibly destructive), but has no annotations and output schema, the description is too sparse. It doesn't explain what 'safely' means, how errors are handled, or what happens on malformed patches. It covers the basic purpose but misses important context for a file-editing 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 coverage is 100%, and the schema describes the patch parameter as containing Add File, Update File, or Delete File operations. The description adds the patch markers and file operations list, but does not add depth on syntax or constraints. 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 clearly states the tool applies a patch to add, update, delete, or move files within a specific root. It names the patch format and explicitly contrasts with shell redirection, distinguishing it from sibling tools like shell_command.

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 says 'Prefer this over shell redirection for code edits', providing direct usage guidance and an alternative to avoid. This distinguishes when to use this tool versus shell_command.

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

chatgpt_askB

Send a question or prompt to ChatGPT Web (chatgpt.com) and get the assistant response. Supports Web Search, o1/o3-mini reasoning, model selection, code extraction, image/file attachments, and Chrome profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoTarget ChatGPT model name (e.g. "gpt-4o", "o3-mini", "o1", "canvas").
messageYesThe message, question, or instruction to send to ChatGPT Web.
profileNoOptional Chrome profile name or ID (e.g. "Default", "Profile 1", or email/name) to send this question through.
new_chatNoSet to true to start a new chat conversation before asking.
file_pathsNoList of absolute file paths to documents/code files to upload/attach.
timeout_msNoOptional timeout in milliseconds to wait for the complete answer.
web_searchNoEnable live Web Search toggle in ChatGPT for up-to-date web information.
image_pathsNoList of absolute file paths to images to upload/attach for multimodal analysis.
refresh_pageNoSet to true to reload/refresh the ChatGPT page before sending this message (useful when stuck).
auto_continueNoAutomatically click "Continue generating" if response is cut off (default: true).
conversation_idNoOptional conversation ID (e.g. "67b...") or conversation URL (e.g. "https://chatgpt.com/c/...") to continue a specific thread.
reasoning_effortNoSet reasoning effort for o-series models (low, medium, high).
extract_code_onlyNoIf true, extracts and returns only the code blocks from the ChatGPT response.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior but only lists supported features. It omits critical details like state changes to chat history, authentication/login requirements, potential hang or failure modes, and what exactly 'get the assistant response' returns.

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 that front-loads the action ('Send a question...'), enumerates key features efficiently, and contains no filler—every clause adds meaningful information.

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?

With 13 parameters and no output schema, the description is underspecified. It does not explain return format, error handling, or how to combine features (e.g., web_search + reasoning), and lacks guidance on prerequisites like login or browser 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?

The schema covers all parameters with descriptions, so baseline is 3. The description adds a high-level summary mapping capabilities to parameters but does not provide deeper semantics or usage nuances beyond what the schema already states.

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 sends a prompt to ChatGPT Web and returns a response, lists key capabilities (web search, reasoning, models, attachments, profiles), and implicitly distinguishes it from siblings like chatgpt_get_latest_response which only retrieves.

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 this is the primary ask tool by listing its features, but it does not explicitly state when to use it versus alternatives (e.g., chatgpt_new_chat, chatgpt_get_latest_response) or mention any exclusions—leaving context inferred.

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

chatgpt_get_latest_responseA

Fetch and recover the latest assistant response (including text, code blocks, and images) from the current or specified conversation without asking a new question. Useful after recovering from a timeout or reload.

ParametersJSON Schema
NameRequiredDescriptionDefault
refresh_firstNoWhether to reload the page before reading the latest response (default: true).
conversation_idNoOptional conversation ID or URL to fetch the latest answer from.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. It mentions that the tool does not ask a new question and returns text, code blocks, and images, but it omits side-effect context like the default page reload implied by refresh_first and possible failure modes.

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 the main purpose front-loaded. It communicates function, content, scope, and use case with no wasted words.

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 retrieval tool with no output schema, it adequately describes what is returned, when to use it, and conversation scope. It could mention failure conditions or authentication dependencies, but these are not essential for this complexity.

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% for both parameters, so the schema already documents refresh_first and conversation_id well. The description adds 'current or specified conversation' and timeout/reload context, but does not substantially extend parameter 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 ('Fetch and recover') with a clear resource ('latest assistant response') and scope ('current or specified conversation'). It distinguishes from siblings by noting 'without asking a new question', separating it from chatgpt_ask and other conversation tools.

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?

Provides an explicit use case: 'Useful after recovering from a timeout or reload.' It implicitly discourages use for new questions, but does not explicitly name alternatives like chatgpt_ask or chatgpt_reload.

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

chatgpt_get_statusA

Get the current status of ChatGPT Web automation (initialized, logged in, active profile, extension bridge status, current conversation URL, title, model).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/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. It enumerates the exact fields returned, which is transparent. However, it does not mention side effects, potential errors, or behavior when automation is not initialized. The explicit list of return fields adds value beyond the empty 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?

A single, well-structured sentence lists all key status elements. No fluff, no redundancy, and the information is 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 status getter with no parameters and no output schema, the description adequately specifies the return contents. It lacks error-handling or 'not available' cases, but given the simplicity, it is reasonably 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?

There are zero parameters, so schema coverage is 100% trivially. Baseline for 0 params is 4. The description adds no parameter details because none exist, which is appropriate. No compensation 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 clearly states the tool's purpose: to get the current status of ChatGPT Web automation. It lists specific aspects (initialized, logged in, active profile, extension bridge, conversation URL, title, model), making it distinct from sibling tools like chatgpt_ask or chatgpt_new_chat, which perform actions.

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 does not explicitly mention when to use this tool versus alternatives, but its purpose is self-evident as a status-checking tool. No exclusions or alternative tool references are given, though the context implies it's for pre-flight checks or diagnostics.

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

chatgpt_list_conversationsA

List recent conversation history topics and IDs from the ChatGPT sidebar so you can select and resume any previous chat.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of recent conversations to retrieve (default: 30).

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states the tool lists recent conversations and mentions a default limit, which is useful. However, it doesn't disclose details like whether it only shows a fixed number, whether it includes archived chats, or any side effects (though it's clearly a read operation). The description is adequate 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, concise sentence that front-loads the purpose and includes the key detail about the sidebar and resuming chats. No wasted words.

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 (one optional parameter, no output schema), the description is complete enough. It explains what the tool does and why you'd use it. It could mention that the output includes IDs, but that's implied by 'topics and IDs.' The sibling context shows this is part of a chat management suite, and the description fits well.

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% for the single 'limit' parameter, which is already described as 'Maximum number of recent conversations to retrieve (default: 30).' The description adds the context of 'recent' and 'sidebar' but doesn't add much beyond the schema. Baseline 3 is appropriate since the schema fully documents the parameter.

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 lists recent conversation history topics and IDs from the ChatGPT sidebar, with the purpose of selecting and resuming previous chats. It distinguishes itself from sibling tools like chatgpt_new_chat and chatgpt_ask by focusing on listing existing conversations.

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 implies usage: use this to get conversation IDs for resuming chats, which is clear context. It doesn't explicitly state when not to use it or name alternatives, but the purpose is specific enough that an agent can infer it's for browsing history before selecting a conversation.

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

chatgpt_list_modelsA

List all available AI models (e.g. GPT-5.6 Sol, GPT-5.5, o3, gpt-4o, o1) and reasoning effort options for this ChatGPT account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It does not state read-only nature, potential errors, or side effects, though listing implies no mutation. Lacks explicit transparency about operational 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?

The description is a single, clear sentence with useful examples, no unnecessary fluff, and well-structured 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 simple list operation with no parameters and no output schema, the description is sufficiently complete: it states what is listed, for whom, and includes example items. Minor gap: it does not mention output format, but that is often inferred.

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?

There are no parameters, so schema coverage is effectively 100%. The description adds no parameter details, but none are needed, matching the baseline for high 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 clearly states the tool's function: listing all available AI models and reasoning effort options. It is specific and distinguishes this tool from siblings like listing profiles or conversations.

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 implicitly suggests use for retrieving model options before selection, but does not explicitly state when to use this tool versus alternatives or note any prerequisites or exclusions.

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

chatgpt_list_profilesA

List all detected Google Chrome profiles available on this machine (including Profile Folder ID, Display Name, Email).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states the action (list) and the data returned, but does not clarify that it is read-only, nor does it mention any potential side effects or conditions (e.g., requiring Chrome installed). For a simple listing tool, this is acceptable but could be more explicit.

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, well-structured sentence that front-loads the action and lists the included fields. No wasted words.

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 listing tool with no output schema, the description covers the essential information: what is listed and what data is returned. It could explicitly mention that it's a read-only operation (since there are no annotations), but the simplicity of the tool makes this sufficient.

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 description coverage is 100% (trivially). Baseline of 4 applies since no parameters exist, and the description doesn't need to add parameter details.

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 verb 'List' and the resource 'all detected Google Chrome profiles', with specific attributes (Profile Folder ID, Display Name, Email). This distinguishes it from sibling tools like chatgpt_select_profile and chatgpt_list_conversations.

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 usage: to list profiles, but does not explicitly state when to use this over alternatives or provide context like 'run before selecting a profile'. It's adequate but lacks explicit guidance on placement in a workflow.

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

chatgpt_loginA

Open ChatGPT Web in a visible (headed) browser window so the user can log in or solve Captcha challenges.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoOptional Chrome profile to log into.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It transparently notes the browser is visible, indicating user interaction, and mentions the specific actions (login/captcha). It does not mention potential side effects or return values, but these are likely minor.

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 concise, two sentences, and directly states the action and purpose. No redundant or ambiguous wording.

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 and the lack of annotations/output schema, the description provides enough context: it opens a visible browser for authentication. It does not explain post-login behavior, but that is not essential for basic usage.

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 only parameter 'profile' is described as 'Optional Chrome profile to log into,' which adds meaning beyond the schema type (string). Since schema coverage is 100%, this description is sufficient and clear.

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's purpose: to open a visible browser window for logging in or solving captchas. It distinguishes this from sibling tools that handle chat, profiles, and queries.

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

Usage Guidelines3/5

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

The description implies when to use (when user needs to log in or solve a captcha), but does not explicitly contrast with alternatives like chatgpt_ask or chatgpt_list_profiles. More explicit guidance would improve clarity.

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

chatgpt_new_chatA

Start a clean/new conversation on ChatGPT Web.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosure. It states the action but does not mention side effects on the current conversation, authentication requirements, or whether it resets state irreversibly. The wording 'clean/new' hints at a fresh start, but without annotations, details like rate limits or blocking behavior 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the key information: what it does ('start') and what entity ('a clean/new conversation'). 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, no-output tool, the description is complete enough to understand its function. It could briefly mention any effect on the existing conversation, but given the simplicity, the provided text is adequate.

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, so the schema coverage is 100% vacuously. According to the rubric, a baseline of 4 applies here, and the description adds no parameter information, which is appropriate and sufficient.

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 'Start' with the object 'clean/new conversation' and notes the platform 'ChatGPT Web', clearly distinguishing it from sibling tools like chatgpt_ask. It is precise and immediately understandable.

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 usage for beginning a fresh conversation but does not explicitly state when to use it over alternatives like chatgpt_ask or chatgpt_get_latest_response. It also lacks any mention of preconditions or typical scenarios, placing it at the 'implied usage' level.

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

chatgpt_reloadA

Reload and refresh the current ChatGPT Web page to fix stuck conversations or connection glitches.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the tool reloads/refreshes the current page and the intended effect, but it does not mention possible side effects such as losing unsaved input or how the reload is performed. This is adequate 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, front-loaded sentence that states the action, target, and purpose without any filler or repetition.

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 tool with no output schema, the description is complete: it explains what the tool does and when to use it. No additional information is necessary for an agent to invoke it correctly.

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 schema coverage is 100%, so no parameter explanation is needed. The baseline of 4 applies because the description correctly implies this tool takes no arguments.

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 identifies the action ('Reload and refresh'), the target resource ('current ChatGPT Web page'), and the intended purpose ('fix stuck conversations or connection glitches'). It is distinct from sibling tools like chatgpt_ask, chatgpt_new_chat, and chatgpt_list_conversations.

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 states a clear usage context: use when conversations are stuck or there are connection glitches. It does not explicitly mention alternatives or when not to use, but the guidance is sufficient for a simple refresh tool.

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

chatgpt_select_profileA

Select which Chrome profile to use for ChatGPT Web automation (by Profile Folder ID, Display Name, or Email).

ParametersJSON Schema
NameRequiredDescriptionDefault
profileYesThe profile ID (e.g. "Default", "Profile 1"), Display Name, or Email to activate.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It does disclose the three accepted profile identification types (Folder ID, Display Name, Email), which is useful matching behavior. However, it omits what 'activate' means for subsequent calls, failure behavior on unknown profiles, or whether selection persists across calls.

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 efficiently communicates purpose and key scoping detail without waste. Everything present 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 low-complexity tool with one fully-documented parameter and no output schema, the description is nearly complete: it defines the action, scope, and accepted value formats. Minor gaps—such as clarifying that profiles can be enumerated with chatgpt_list_profiles or what happens on invalid input—keep it from a 5.

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% (the 'profile' parameter is fully documented with examples). The description's parenthetical largely mirrors the schema rather than adding new meaning, so the baseline of 3 is appropriate—it neither improves nor degrades parameter understanding.

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?

Clear verb (select) + resource (Chrome profile) + domain context (ChatGPT Web automation). The parenthetical explicitly names the three accepted identification modes, which sharpens the tool's role and distinguishes it from siblings like chatgpt_list_profiles (list vs. select).

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 it's used—before automation, to activate a profile—but never explicitly states context such as 'list available profiles first with chatgpt_list_profiles' or 'select one profile before calling chatgpt_ask'. No exclusions or alternative comparisons are given.

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

shell_commandA

Run a command with a working directory inside the configured shell root. Uses PowerShell on Windows and Bash on Linux/macOS by default. The command has the same OS permissions as this MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault
shellNoShell to use (default: auto).
commandYesCommand to execute.
workdirNoWorking directory relative to the configured shell root (default: root).
timeout_msNoCommand timeout in milliseconds (default: 30000; bounded by server configuration).

TDQS

A4.2/5.0
Behavior3/5

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

Without annotations, the description carries full responsibility. It discloses the command's OS permissions and the shell selection behavior, but does not mention potential side effects (e.g., arbitrary system changes, interactive input, or output/exit code format). The provided info is useful but incomplete for a high-risk shell tool.

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, front-loaded with the core action, and contains no fluff. Each sentence adds a new piece of relevant information, making it appropriately concise and well-structured.

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 complexity and lack of output schema, the description covers the essential behavioral aspects (execution scope, environment, permissions). It could mention the return structure (stdout/stderr/exit code), but for a generic shell tool, the current level is sufficient. The schema covers all parameters, and the description adds enough context to be 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. The description adds value by clarifying that workdir is relative to the configured shell root and by stating OS permissions, which enriches the command parameter meaning. It does not repeat schema details but complements them.

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?

Clearly states the tool runs a command with a working directory inside a configured shell root, and explicitly mentions default shells (PowerShell/Bash) and OS permissions. This uniquely identifies its function and distinguishes it from unrelated siblings like chatgpt_* or apply_patch.

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?

Provides clear context about the execution environment (working directory, default shells, permissions) but does not explicitly state when to use it vs alternatives or when not to. Since no direct alternative exists among siblings, the absence of exclusions is acceptable, but explicit guidance is lacking.

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. 12 tool updatesv1.0.0
    • First observedapply_patch
    • First observedchatgpt_ask
    • First observedchatgpt_get_latest_response
    • First observedchatgpt_get_status
    • First observedchatgpt_list_conversations
    • First observedchatgpt_list_models
    • First observedchatgpt_list_profiles
    • First observedchatgpt_login
    • First observedchatgpt_new_chat
    • First observedchatgpt_reload
    • First observedchatgpt_select_profile
    • First observedshell_command

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation4/5

The ChatGPT tools mostly map to distinct lifecycle stages, such as selecting a profile, asking a question, reloading the page, and fetching status. The main potential confusions are shell_command vs apply_patch for file operations and chatgpt_ask vs chatgpt_get_latest_response for retrieving assistant output, though the descriptions provide reasonable separation.

Naming Consistency4/5

The 10 chatgpt_* tools consistently use a readable, mostly verb-first style with a common prefix. Two tools, shell_command and apply_patch, break away from the chatgpt_ prefix and use different naming conventions, which makes the overall set slightly inconsistent.

Tool Count4/5

With 12 tools, the count is reasonable, and most tools are clearly relevant to ChatGPT Web automation. The shell_command and apply_patch pair broadens the server beyond ChatGPT-specific tasks, feeling slightly like an additional generic toolkit rather than a core part of the same domain.

Completeness4/5

The core ChatGPT Web workflow is covered well: profile selection, login/status, starting a chat, asking questions, recovering responses, listing conversations, listing models, and reloading. Obvious gaps are conversation management actions such as delete or rename, and there is no explicit tool name for select/resume a previous conversation, though this may be handled through parameters in ask or get_latest_response.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers