ChatGPT MCP Server
The ChatGPT MCP Server allows AI assistants to interact with the ChatGPT desktop app on macOS through:
Send Prompts: Use
ask_chatgpt_toolto send prompts to ChatGPT and receive responsesRetrieve Responses: Use
get_chatgpt_response_toolto get the latest response from ChatGPTMCP Compatibility: Works with any MCP-compatible AI assistant for seamless integration
Language Support: Handles prompts in English and detects responses in Korean and English
Easy Setup: Can be installed via PyPI or manually
Enables AI assistants to interact with the ChatGPT desktop app on macOS, allowing them to send prompts to ChatGPT and receive responses.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ChatGPT MCP Serversummarize this article about climate change"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ChatGPT MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with the ChatGPT desktop app on macOS.
https://github.com/user-attachments/assets/a30c9b34-cdbe-4c0e-a0b0-33eb5054db5c
Language Support
Supported system languages for response detection:
Korean
English
If your macOS system language is not listed above, please follow these instructions:
Make sure ChatGPT desktop app is running
Run
show_all_button_names.applescriptand copy the output to create an issue for language support.
Related MCP server: MCP Bridge Server
Features
Send prompts to ChatGPT from any MCP-compatible AI assistant
Built with Python and FastMCP
Note: This server only supports English text input. Non-English characters may not work properly.
Installation
Prerequisites
macOS
ChatGPT desktop app installed and running
Python 3.10+
uv package manager
For Claude Code Users
Simply run:
claude mcp add chatgpt-mcp uvx chatgpt-mcpThat's it! You can start using ChatGPT commands in Claude Code.
For Other MCP Clients
Step 1: Install the MCP Server
Option A: Install from PyPI (Recommended)
# Install with uv
uv add chatgpt-mcpOption B: Manual Installation
# Clone the repository
git clone https://github.com/xncbf/chatgpt-mcp
cd chatgpt-mcp
# Install dependencies with uv
uv syncStep 2: Configure Your MCP Client
If installed from PyPI, add to your MCP client configuration:
{
"mcpServers": {
"chatgpt": {
"command": "uvx",
"args": ["chatgpt-mcp"]
}
}
}If manually installed, add to your MCP client configuration:
{
"mcpServers": {
"chatgpt": {
"command": "uv",
"args": ["run", "chatgpt-mcp"],
"cwd": "/path/to/chatgpt-mcp"
}
}
}Usage
Open ChatGPT desktop app and make sure it's running
Open your MCP client (Claude Code, etc.)
Use ChatGPT commands in your AI assistant:
"Send a message to ChatGPT"
The AI assistant will automatically use the appropriate MCP tools to interact with ChatGPT.
Available Tools
ask_chatgpt
Send a prompt to ChatGPT and receive the response.
ask_chatgpt(prompt="Hello, ChatGPT!")get_chatgpt_response
Get the latest response from ChatGPT after sending a message.
get_chatgpt_response()new_chatgpt_chat
Start a new chat conversation in ChatGPT.
new_chatgpt_chat()Development
Local Testing
To test the MCP server locally during development:
Install in editable mode
uv pip install -e .Test with MCP Inspector
npx @modelcontextprotocol/inspector chatgpt-mcp
The editable installation creates a chatgpt-mcp command that directly references your source code, so any changes you make are immediately reflected without reinstalling.
Running without installation
You can also run the server directly:
PYTHONPATH=. uv run python -m chatgpt_mcp.chatgpt_mcpLicense
MIT
Available Tools
3 toolsask_chatgpt_toolC
Send a prompt to ChatGPT and return the response.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure, but it only states the basic action. No mention of side effects, statelessness, authentication, rate limits, or output format, leaving significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no waste. However, more informative content could be included without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description provides the core action. However, it lacks details about response format, error conditions, or conversation state, which are relevant even for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies that the 'prompt' parameter is the text sent to ChatGPT, but it adds no extra meaning beyond the schema's type and title. With 0% schema coverage, the description should compensate but does not provide additional semantic or syntactic details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send a prompt) and the resource (ChatGPT), explicitly mentioning the response. However, it does not differentiate from siblings like get_chatgpt_response_tool or new_chatgpt_chat_tool, missing explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings. An agent cannot determine whether to use ask_chatgpt_tool, get_chatgpt_response_tool, or new_chatgpt_chat_tool based on the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chatgpt_response_toolA
Get the latest response from ChatGPT after sending a message.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description clearly indicates this is a read/retrieval operation. However, it does not disclose behavior when no prior message has been sent (e.g., returns null vs error), which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the purpose without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description adequately explains the tool's action. It could be more complete by mentioning the format or behavior when no response is available, but it is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the description adds no parameter-level detail, which is acceptable per the baseline guideline (0 params = baseline 4).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('get') and resource ('latest response from ChatGPT'), and the context of siblings (ask_chatgpt_tool, new_chatgpt_chat_tool) clearly distinguishes this as a retrieval action after messaging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after sending a message ('after sending a message') but does not explicitly state when to use it vs alternatives, nor does it discuss prerequisites or error conditions if no prior message exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_chatgpt_chat_toolA
Start a new chat conversation in ChatGPT.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the action without disclosing side effects like whether it creates a persistent conversation, destroys prior context, or requires authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no extra words. Perfectly concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a tool with no inputs and no output schema, but it fails to mention important details like whether the tool returns a conversation identifier or automatically activates the new chat, which would be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters with 100% coverage. Baseline for 0 parameters is 4, and the description adds no parameter info, which is acceptable as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Start a new chat conversation in ChatGPT' clearly states the verb 'start' and resource 'chat conversation', and it distinguishes from siblings like 'ask_chatgpt_tool' which likely sends messages within an existing chat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for initiating a conversation, and the context of siblings suggests it is the first step before using ask_chatgpt_tool, but no explicit when-not-to-use or alternatives are given.
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.
3 tool updates
v1.0.0- First observed
ask_chatgpt_tool - First observed
get_chatgpt_response_tool - First observed
new_chatgpt_chat_tool
TDQS
Scored across 3 tools
The 'ask_chatgpt_tool' returns the response immediately, making 'get_chatgpt_response_tool' redundant and causing confusion about when to use each. 'new_chatgpt_chat_tool' is distinct but the overlap between the first two tools leads to ambiguity.
All tools follow a snake_case pattern with a '_tool' suffix, maintaining consistency. However, the noun component varies (no noun in 'ask_chatgpt_tool', 'response' in 'get_chatgpt_response_tool', 'chat' in 'new_chatgpt_chat_tool'), which is a minor deviation.
Three tools is a reasonable number for a basic ChatGPT interaction server. It covers sending a prompt, retrieving the latest response, and starting a new conversation without being overly minimal or excessive.
The set covers sending prompts and managing conversations at a basic level, but lacks tools for listing past conversations, adjusting model parameters, or deleting chats, which are notable gaps for a chatbot interface.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Related MCP Servers
- AlicenseAqualityDmaintenanceA simple MCP server for interacting with OpenAI assistants. This server allows other tools (like Claude Desktop) to create and interact with OpenAI assistants through the Model Context Protocol.939MIT
- FlicenseBqualityDmaintenanceA macOS-native bridge server that enables communication between different AI clients like Claude and Cline, allowing them to interact with each other through the Model Context Protocol.23-
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables AI assistants to communicate with each other using Inter-Process Communication, featuring natural language commands and cross-platform compatibility.9133MIT
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server for Max messenger that lets AI assistants send and read messages, manage chats, and interact with the Max platform API.MIT