网页搜索API服务

OpenAI的网页搜索API服务,使AI模型能够在生成响应前搜索网络获取最新信息。

  • by MinimumDaan
  • 本地部署
  • 更新于
在 GitHub 查看 minimumdaan/openai-websearch-mcp

使用说明

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-preview
    • gpt-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密钥:

  1. 首选 OpenAI API密钥
  2. 创建新的API密钥
  3. 复制生成的密钥

使用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许可证获得许可。这意味着你可以自由地 根据条款和条件使用、修改和分发软件 麻省理工学院许可证。