53_FastMCP 2.x 中文文档之FastMCP集成AI助手:ChatGPT 指南
本文介绍了如何将FastMCP服务器连接到ChatGPT的两种使用模式:聊天模式和深度研究模式。通过构建和部署支持HTTP传输的FastMCP服务器,并在ChatGPT中启用开发者模式添加连接器,用户可以在对话中直接调用工具或进行系统性信息检索。文章详细说明了服务器创建、公开部署、工具实现方法,以及如何在ChatGPT中配置连接器和使用工具。特别强调了聊天模式需要开发者模式支持,而深度研究模式必须
一、ChatGPT 🤝 FastMCP
在聊天模式和深度研究模式下将 FastMCP 服务器连接到 ChatGPT
ChatGPT 通过远程 HTTP 连接在两种模式下支持 MCP 服务器:聊天模式用于交互式对话,深度研究模式用于全面的信息检索。
提示:聊天模式需要开发者模式:要在常规 ChatGPT 对话中使用 MCP 服务器,必须先在 ChatGPT 设置中启用开发者模式。此功能适用于 ChatGPT Pro、Team、Enterprise 和 Edu 用户。
注意:OpenAI 的官方 MCP 文档和示例是使用 FastMCP v2 构建的!从他们的 MCP 文档 和 开发者模式指南 了解更多信息。
二、构建服务器
首先,让我们创建一个简单的 FastMCP 服务器:
from fastmcp import FastMCP
import random
mcp = FastMCP("Demo Server")
@mcp.tool
def roll_dice(sides: int = 6) -> int:
"""掷骰子,指定面数。"""
return random.randint(1, sides)
if __name__ == "__main__":
mcp.run(transport="http", port=8000)
部署服务器
您的服务器必须可以从互联网访问。开发环境可使用 ngrok:
python server.py
# 或
ngrok http 8000
记录您的公共 URL(例如 https://abc123.ngrok.io)用于后续步骤。
三、聊天模式
聊天模式允许您在 ChatGPT 对话中直接使用 MCP 工具。请参阅 OpenAI 的开发者模式指南 了解最新要求。
3.1 添加到 ChatGPT
启用开发者模式
-
打开 ChatGPT 并进入 设置 → 连接器
-
在 高级 下,切换 开发者模式 为启用状态
创建连接器
-
在 设置 → 连接器 中,点击 创建
-
输入:
-
名称: 您的服务器名称
-
服务器 URL: https://your-server.ngrok.io/mcp/
-
-
勾选 我信任此提供商
-
如果需要,添加认证
-
点击 创建
注意:没有开发者模式: 如果您没有搜索/获取工具,ChatGPT 将拒绝该服务器。启用开发者模式后,聊天模式不需要搜索/获取工具。
在聊天中使用
-
开始新的聊天
-
点击 + 按钮 → 更多 → 开发者模式
-
启用您的 MCP 服务器连接器(必需 - 连接器必须显式添加到每个聊天中)
-
现在您可以使用您的工具:
使用示例:
-
“掷一个 20 面的骰子”
-
“掷骰子”(使用默认的 6 面)
提示:连接器必须通过开发者模式在每个聊天会话中显式启用。一旦添加,它将在整个对话期间保持活动状态。
3.2 跳过确认
使用 annotations={“readOnlyHint”: True} 为只读工具跳过确认提示:
@mcp.tool(annotations={"readOnlyHint": True})
def get_status() -> str:
"""检查系统状态。"""
return "所有系统运行正常"
@mcp.tool() # 无注解 - ChatGPT 可能会要求确认
def delete_item(id: str) -> str:
"""删除一个项目。"""
return f"已删除 {id}"
四、深度研究模式
深度研究模式提供带引用的系统性信息检索。请参阅 OpenAI 的 MCP 文档 了解最新的深度研究规范。
警告:需要搜索和获取工具:没有开发者模式,ChatGPT 将拒绝任何没有 search 和 fetch 工具的服务器。即使在开发者模式下,深度研究也只使用这两个工具。
4.1 工具实现
深度研究工具必须遵循以下模式:
@mcp.tool()
def search(query: str) -> dict:
"""
搜索与查询匹配的记录。
必须返回 {"ids": [字符串 ID 列表]}
"""
# 您的搜索逻辑
matching_ids = ["id1", "id2", "id3"]
return {"ids": matching_ids}
@mcp.tool()
def fetch(id: str) -> dict:
"""
按 ID 获取完整记录。
返回完整记录数据供 ChatGPT 分析。
"""
# 您的获取逻辑
return {
"id": id,
"title": "记录标题",
"content": "完整记录内容...",
"metadata": {"author": "Jane Doe", "date": "2024"}
}
4.2 使用深度研究
-
确保您的服务器已添加到 ChatGPT 的连接器中(与聊天模式相同)
-
开始新的聊天
-
点击 + → 深度研究
-
选择您的 MCP 服务器作为来源
-
提出研究问题
ChatGPT 将使用您的 search 和 fetch 工具来查找和引用相关信息。
更多推荐




所有评论(0)