使用说明
OpenAI Web搜索MCP服务器
用于OpenAI的Web搜索API的MCP服务器,使AI模型能够搜索Web 在生成响应之前获取当前信息。
特性
-
始终在线网络搜索:当使用具有专用功能的聊天完成API时 搜索模型,始终检索网络信息
-
有条件的Web搜索:使用Responses API时,仅当 回答询问所必需的
-
地理定制:根据用户位置优化搜索结果
-
可配置的上下文大小:质量、成本和延迟之间的平衡
-
自动引用:包括内联引用和注释 使用的来源
工具
web_search_chat_completion
使用具有搜索功能模型的OpenAI的Chat Complexions API进行网络搜索。
输入:
model(string):用于网络搜索的模型gpt-4o-search-previewgpt-4o-mini-search-preview
messages(数组):对话消息role(string):消息角色(user,assistant,或system)content(string):消息内容
web_search_options(对象,可选):网络搜索的配置选项user_location(对象,可选):用于优化搜索结果的用户位置type(string):始终“近似”approximate(对象):country(字符串,可选):两个字母的ISO国家代码(例如“US”)city(字符串,可选):城市名称(例如“旧金山”)region(字符串,可选):地区或州(例如“加利福尼亚州”)timezone(string,可选):IANA时区(例如。, “美国/失败者天使”)
search_context_size(字符串,可选):从中检索的上下文量 网络low:最少的上下文、最低的成本、最快的响应medium(默认):平衡上下文、成本和延迟high:最全面的背景、最高的成本、较慢的响应
退货: 使用模型生成的内容和引用进行响应
web_search_responses
使用OpenAI的Responses API和web_search_preview工具执行web搜索。
输入:
model(string):用于生成响应的模型tools(array):模型可以使用的工具- 必须包含一个工具对象:
{ "type": "web_search_preview", "web_search_preview": { // Same options as web_search_options above } }
- 必须包含一个工具对象:
messages(数组):对话消息(与上述格式相同)
退货: 使用模型生成的内容和引用进行响应
设置
个人访问令牌
创建一个可访问所需模型的OpenAI API密钥:
- 首选 OpenAI API密钥
- 创建新的API密钥
- 复制生成的密钥
使用Claude Desktop
要在Claude Desktop中使用此功能,请将以下内容添加到您的
claude_desktop_config.json:
使用NPX
{
"mcpServers": {
"websearch": {
"command": "npx",
"args": [
"-y",
"openai-websearch-mcp"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}
使用Docker
从中提取图像 GitHub容器注册表(ghrc.io):OpenAI WebSearch 主控程序
docker pull ghcr.io/tiovikram/openai-websearch-mcp
docker tag ghcr.io/tiovikram/openai-websearch-mcp openai-websearch-mcp
{
"mcpServers": {
"websearch": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENAI_API_KEY",
"openai-websearch-mcp"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}
例子
基本网络搜索
// Using web_search_chat_completion
const result = await agent.callTool("web_search_chat_completion", {
model: "gpt-4o-search-preview",
messages: [
{ role: "user", content: "What are the latest AI advancements this month?"
}
]
});
特定位置搜索
// Search with location context
const result = await agent.callTool("web_search_chat_completion", {
model: "gpt-4o-search-preview",
web_search_options: {
user_location: {
type: "approximate",
approximate: {
country: "GB",
city: "London",
region: "London"
}
}
},
messages: [
{ role: "user", content: "What are the best restaurants around Granary
Square?" }
]
});
调整搜索上下文大小
// Using lower context size for faster, cheaper results
const result = await agent.callTool("web_search_chat_completion", {
model: "gpt-4o-search-preview",
web_search_options: {
search_context_size: "low"
},
messages: [
{ role: "user", content: "What movie won best picture in 2025?" }
]
});
带响应的条件搜索API
// Using web_search_responses for conditional search
const result = await agent.callTool("web_search_responses", {
model: "gpt-4o",
tools: [
{
type: "web_search_preview",
web_search_preview: {
search_context_size: "medium",
user_location: {
type: "approximate",
approximate: {
country: "US",
city: "New York"
}
}
}
}
],
messages: [
{ role: "user", content: "What's playing at Broadway theaters this week?" }
]
});
响应格式
服务器返回OpenAI API响应,其中包括:
- 从模型生成的内容
- 引用源的内联引用
- 带有详细引文信息的注释
- 文本中引用源的位置
示例响应片段:
{
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "According to recent reports, NASA's Artemis program has
reached a new milestone...[1]",
"annotations": [
{
"type": "url_citation",
"url_citation": {
"start_index": 158,
"end_index": 161,
"url": "https://www.nasa.gov/artemis-news/",
"title": "NASA Artemis Program Updates"
}
}
]
},
"finish_reason": "stop"
}
]
}
局限性
- 此工具不支持零数据保留或数据驻留
- 支持搜索的模型仅支持API参数的子集
- 当在响应API中用作工具时,网络搜索具有分层速率限制
- 向最终用户显示搜索结果时,必须进行内联引用 在用户界面中清晰可见且可点击
构建
Docker构建:
docker build -t mcp/websearch -f src/websearch/Dockerfile .
许可证
此MCP服务器根据MIT许可证获得许可。这意味着你可以自由地 根据条款和条件使用、修改和分发软件 麻省理工学院许可证。
