Skip to main content
Glama

mcp-chatgpt

AI 어시스턴트(예: Google Antigravity, Claude Desktop, Cursor, VS Code Cline/Roo Code)가 브라우저 자동화, Chrome 프로필, 그리고 함께 제공되는 Chrome 확장 프로그램을 통해 ChatGPT Web(https://chatgpt.com)에 직접 질문하고 대화하며 상호작용할 수 있게 해주는 MCP(Model Context Protocol) 서버입니다.


🌟 주요 기능

  • 💬 질문 및 채팅: ChatGPT Web에 원활하게 질문하고 응답(형식화된 텍스트/마크다운)을 받습니다.

  • 🌐 웹 검색 토글: ChatGPT의 실시간 웹 검색(web_search: true)을 활성화하여 실시간 웹 브라우징과 인용을 지원합니다.

  • 🧠 추론 및 모델 선택: 모델(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 탭과 실시간으로 대화할 수 있습니다.

  • 🔄 대화 관리: Conversation ID / URL을 사용하여 새 채팅을 시작하거나 기존 스레드를 이어갑니다.

  • 💾 영구 세션: 브라우저 프로필과 로그인 쿠키를 로컬에 저장하여 한 번만 로그인하면 됩니다.

  • 🖥️ 헤디드 및 헤드리스 모드: 백그라운드에서 조용히 실행하거나(헤드리스), 초기 인증이나 캡차 해결을 위해 보이는 창(--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 프로필을 선택하고 전환합니다(ID Profile 1, 이름 또는 이메일로).

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 클라이언트 구성

Model Context Protocol(MCP)을 지원하는 모든 AI 클라이언트에 mcp-chatgpt를 연결할 수 있습니다:

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