项目简介
Brave Search MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在将 Brave Search API 的强大搜索能力标准化地提供给大型语言模型(LLM)客户端。它支持多种传输协议(默认为 STDIO,也可通过 HTTP 运行),允许 LLM 调用其提供的搜索工具,获取实时、丰富的上下文信息。
主要功能点
该服务器集成了 Brave Search API 的以下核心搜索功能:
- 网页搜索 (brave_web_search):执行全面的网页搜索,支持丰富的搜索结果类型和高级过滤选项,包括 AI 摘要键生成。
- 本地搜索 (brave_local_search):搜索本地企业和地点,提供详细信息如评分、营业时间和 AI 生成的描述。适用于“附近”、“在我所在区域”等地理位置相关的查询。
- 视频搜索 (brave_video_search):搜索视频内容,提供丰富的元数据和缩略图信息。
- 图片搜索 (brave_image_search):搜索图片并提供直接显示所需的 Base64 编码信息。
- 新闻搜索 (brave_news_search):搜索最新新闻文章,支持时间过滤和突发新闻指示。
- 摘要生成 (brave_summarizer):利用 Brave 的 AI 摘要 API,从网页搜索结果中生成 AI 驱动的摘要。使用此功能需先通过网页搜索获取摘要密钥。
安装步骤
在开始之前,您需要注册一个 Brave Search API 账户 并获取您的 API 密钥。
方式一:使用 Docker 运行
如果您已安装 Docker,可以通过以下命令构建并运行服务器:
- 构建 Docker 镜像:
docker build -t mcp/brave-search:latest . - 运行服务器:
在 MCP 客户端配置中,将 'BRAVE_API_KEY' 环境变量设置为您的实际 API 密钥。例如:
{ "mcpServers": { "brave-search": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"], "env": { "BRAVE_API_KEY": "YOUR_API_KEY_HERE" } } } }
方式二:使用 NPX 运行
如果您已安装 Node.js 和 npm,可以使用 'npx' 直接运行服务器(推荐):
- 运行服务器:
在 MCP 客户端配置中,将 'BRAVE_API_KEY' 环境变量设置为您的实际 API 密钥。例如:
请注意,'--transport http' 参数将使服务器以 HTTP 模式运行,以便 MCP 客户端通过 HTTP 连接。如果省略,默认为 STDIO 模式。{ "mcpServers": { "brave-search": { "command": "npx", "args": ["-y", "@brave/brave-search-mcp-server", "--transport", "http"], "env": { "BRAVE_API_KEY": "YOUR_API_KEY_HERE" } } } }
服务器配置(MCP客户端侧)
MCP 客户端(如 Claude Desktop 或 VS Code 的 MCP 扩展)需要配置如何启动和连接 Brave Search MCP 服务器。以下是典型的 JSON 配置示例,您需要将其添加到您的 MCP 客户端配置中(例如 'claude_desktop_config.json' 或 VS Code 的用户设置):
{ "inputs": [ { "password": true, "id": "brave-api-key", "type": "promptString", "description": "您的 Brave Search API 密钥" } ], "servers": { "brave-search": { "command": "docker", // 或 "npx" "args": ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"], // 或 ["-y", "@brave/brave-search-mcp-server", "--transport", "stdio"] "env": { "BRAVE_API_KEY": "${input:brave-api-key}" // 动态获取用户输入的API密钥 } } } }
配置说明:
- 'inputs': 定义了客户端在启动服务器前可能需要用户提供的输入,此处用于安全地获取 'BRAVE_API_KEY'。
- 'servers': 包含一个或多个 MCP 服务器的配置。
- 'brave-search': 这是您为该 MCP 服务器定义的唯一名称,客户端会使用此名称来引用它。
- 'command': 启动服务器所执行的程序或命令。根据您的安装方式,可以是 'docker' 或 'npx'。
- 'args': 传递给 'command' 的参数列表。
- Docker 方式: '["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"]',这会运行一个 Docker 容器,并传递 API 密钥。
- NPX 方式: '["-y", "@brave/brave-search-mcp-server", "--transport", "stdio"]',这会通过 npx 运行服务器包,并指定使用 STDIO 传输协议。如果需要 HTTP 传输,将 'stdio' 改为 'http'。
- 'env': 设置服务器运行时的环境变量,此处将 'BRAVE_API_KEY' 传递给服务器。'${input:brave-api-key}' 表示从 'inputs' 中定义的 'brave-api-key' 获取值。
基本使用方法
一旦 MCP 客户端配置并成功连接到 Brave Search MCP 服务器,LLM 即可通过调用服务器上注册的工具来执行搜索操作。例如,当 LLM 需要进行网页搜索时,它将识别并调用 'brave_web_search' 工具,并提供相应的查询参数。服务器会处理请求,调用 Brave Search API,并将结构化的搜索结果返回给 LLM。
示例(LLM视角):
- 如果LLM需要搜索“最新的AI新闻”,它可能会调用 'brave_news_search' 工具,参数为 'query: "latest AI news"'。
- 如果LLM需要查找“旧金山附近的意大利餐厅”,它可能会调用 'brave_local_search' 工具,参数为 'query: "Italian restaurants in San Francisco"'。
- 如果LLM需要获取一个关于某个主题的总结,它会先调用 'brave_web_search' 并设置 'summary: true',然后使用返回的 'key' 调用 'brave_summarizer'。
LLM 客户端将负责将用户的意图映射到正确的工具调用及其参数,并解析 MCP 服务器返回的结果。
信息
分类
网页与API