Lets Claude talk to ChatGPT through OpenAI's Responses API, keep conversation state, and use ChatGPT's web search.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add chatgpt-responses --env DEFAULT_MODEL='<DEFAULT_MODEL>' --env DEFAULT_TEMPERATURE='<DEFAULT_TEMPERATURE>' --env MAX_TOKENS='<MAX_TOKENS>' --env OPENAI_API_KEY='<OPENAI_API_KEY>' -- npx -y @smithery/cli install @billster45/mcp-chatgpt-responses --client claude~/.codex/config.toml
[mcp_servers.chatgpt-responses]
command = "npx"
args = ["-y", "@smithery/cli", "install", "@billster45/mcp-chatgpt-responses", "--client", "claude"]
env = { DEFAULT_MODEL = "<DEFAULT_MODEL>", DEFAULT_TEMPERATURE = "<DEFAULT_TEMPERATURE>", MAX_TOKENS = "<MAX_TOKENS>", OPENAI_API_KEY = "<OPENAI_API_KEY>" }
# codex mcp add chatgpt-responses --env DEFAULT_MODEL='<DEFAULT_MODEL>' --env DEFAULT_TEMPERATURE='<DEFAULT_TEMPERATURE>' --env MAX_TOKENS='<MAX_TOKENS>' --env OPENAI_API_KEY='<OPENAI_API_KEY>' -- npx -y @smithery/cli install @billster45/mcp-chatgpt-responses --client claude~/.cursor/mcp.json
{
"mcpServers": {
"chatgpt-responses": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@billster45/mcp-chatgpt-responses",
"--client",
"claude"
],
"env": {
"DEFAULT_MODEL": "<DEFAULT_MODEL>",
"DEFAULT_TEMPERATURE": "<DEFAULT_TEMPERATURE>",
"MAX_TOKENS": "<MAX_TOKENS>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"chatgpt-responses": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@billster45/mcp-chatgpt-responses",
"--client",
"claude"
],
"env": {
"DEFAULT_MODEL": "<DEFAULT_MODEL>",
"DEFAULT_TEMPERATURE": "<DEFAULT_TEMPERATURE>",
"MAX_TOKENS": "<MAX_TOKENS>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"chatgpt-responses": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@billster45/mcp-chatgpt-responses",
"--client",
"claude"
],
"env": {
"DEFAULT_MODEL": "<DEFAULT_MODEL>",
"DEFAULT_TEMPERATURE": "<DEFAULT_TEMPERATURE>",
"MAX_TOKENS": "<MAX_TOKENS>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"chatgpt-responses": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@billster45/mcp-chatgpt-responses",
"--client",
"claude"
],
"env": {
"DEFAULT_MODEL": "<DEFAULT_MODEL>",
"DEFAULT_TEMPERATURE": "<DEFAULT_TEMPERATURE>",
"MAX_TOKENS": "<MAX_TOKENS>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"chatgpt-responses": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@billster45/mcp-chatgpt-responses",
"--client",
"claude"
],
"env": {
"DEFAULT_MODEL": "<DEFAULT_MODEL>",
"DEFAULT_TEMPERATURE": "<DEFAULT_TEMPERATURE>",
"MAX_TOKENS": "<MAX_TOKENS>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}Environment variables
DEFAULT_MODELDEFAULT_TEMPERATUREMAX_TOKENSOPENAI_API_KEY
Replace the placeholders with your own credentials and keep them out of version control.