使用说明
项目简介
Ask ChatGPT MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它将 OpenAI 的 ChatGPT 模型作为一个工具暴露出来,允许其他 LLM 应用(如 LangGraph 助手)通过 MCP 协议调用 ChatGPT 的能力。该服务器使用标准输入/输出 (stdio) 作为传输协议,易于集成和部署。
主要功能点
- 工具注册与调用: 服务器注册了一个名为 'ask_chatgpt' 的工具,LLM 客户端可以调用此工具将文本内容发送给 ChatGPT 模型进行处理,例如进行高级推理、文本摘要、内容分析、选项比较等。
- 基于 Stdio 的 MCP 服务器: 使用标准输入/输出进行通信,简化了部署和集成过程,尤其是在容器化环境中。
- 易于配置: 通过环境变量 'OPENAI_API_KEY' 配置 OpenAI API 密钥,支持 Docker 部署和手动运行。
- 单次请求模式: 支持 '--oneshot' 参数,用于快速测试和单次请求处理。
- LangGraph 集成: 提供了 LangGraph 框架的集成示例,方便用户将此 MCP 服务器集成到 LangGraph 驱动的 LLM 应用中。
安装步骤
-
准备 OpenAI API 密钥: 您需要拥有 OpenAI 的 API 密钥。
-
Docker 部署 (推荐):
- 克隆仓库或下载 Dockerfile。
- 构建 Docker 镜像:
docker build -t ask-chatgpt-mcp . - 运行 Docker 容器,并设置 'OPENAI_API_KEY' 环境变量:
docker run -e OPENAI_API_KEY=YOUR_OPENAI_KEY -i ask-chatgpt-mcp - 将 'YOUR_OPENAI_KEY' 替换为您的实际 OpenAI API 密钥。
-
手动运行 (Python 环境):
- 确保已安装 Python 3 和 'openai', 'requests', 'python-dotenv' 库 (通常 Docker 镜像已包含)。
- 设置 'OPENAI_API_KEY' 环境变量。可以通过以下两种方式设置:
- 创建 '.env' 文件,内容为 'OPENAI_API_KEY=YOUR_OPENAI_KEY'
- 或者在终端中导出环境变量:'export OPENAI_API_KEY=YOUR_OPENAI_KEY'
- 运行服务器脚本:
python3 server.py
服务器配置
对于 MCP 客户端,您需要配置 MCP 服务器的启动命令和参数。以下是一个 JSON 格式的 MCP 服务器配置示例,适用于 'chatGPT_MCP':
{ "mcpServers": { "chatgpt": { "command": "python3", // 启动命令,使用 python3 解释器 "args": [ "server.py" // 启动参数,运行 server.py 脚本 ], "env": { "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>" // 环境变量,用于传递 OpenAI API 密钥,请替换为您的密钥 } } } }
配置说明:
- '"chatgpt"': 服务器名称,可以自定义。
- '"command"': 指定启动服务器的命令,这里是 'python3',假设您的环境中 'python3' 命令可以执行 Python 3 解释器。
- '"args"': 启动命令的参数,这里是 'server.py',表示要运行的 Python 脚本文件名。
- '"env"': 环境变量配置,'OPENAI_API_KEY' 用于传递 OpenAI 的 API 密钥。请务必将 '<YOUR_OPENAI_API_KEY>' 替换为您自己的 OpenAI API 密钥。 MCP 客户端在启动服务器时会自动设置这些环境变量。
基本使用方法
启动服务器后,MCP 客户端可以向服务器发送符合 MCP 协议的 JSON-RPC 请求。
发现工具 (tools/discover)
客户端可以发送 'tools/discover' 方法来查询服务器提供的工具信息。服务器会返回 'ask_chatgpt' 工具的描述和参数定义。
调用工具 (tools/call)
客户端可以使用 'tools/call' 方法调用 'ask_chatgpt' 工具,并传递 'content' 参数作为要发送给 ChatGPT 的文本内容。例如,发送以下 JSON 数据到服务器的标准输入:
{"method":"tools/call","params":{"name":"ask_chatgpt","arguments":{"content":"请总结一下这篇文章的内容:[文章内容]"}}}
服务器会将请求发送给 ChatGPT,并将 ChatGPT 的响应结果通过标准输出返回给客户端。
单次测试
您可以使用 'oneshot' 模式进行快速测试,例如:
echo '{"method":"tools/call","params":{"name":"ask_chatgpt","arguments":{"content":"Summarize this config..."}}}' | OPENAI_API_KEY=YOUR_OPENAI_KEY python3 server.py --oneshot
请将 'YOUR_OPENAI_KEY' 替换为您的 OpenAI API 密钥。
信息
分类
AI与计算