Brave搜索MCP服务器

集成Brave搜索API的MCP服务器,提供网页搜索、本地兴趣点搜索、视频搜索、图片搜索、新闻搜索及LLM上下文搜索功能。

  • by mikechao
  • TypeScript
  • 本地部署
  • 130 星标
  • 更新于
在 GitHub 查看 mikechao/brave-search-mcp

使用说明

Brave Search MCP服务器

集成了以下功能的MCP服务器实现 勇敢搜索API,提供Web搜索、本地兴趣点搜索、视频搜索、图像搜索、新闻搜索和LLM上下文搜索功能

特征

  • 网络搜索:定期在网上搜索
  • 图像搜索:在网上搜索图片。
  • 新闻搜索:在网上搜索新闻
  • 视频搜索:在网上搜索视频
  • 本地兴趣点搜索:搜索当地的物理位置、企业、餐馆、服务等
  • LLM上下文搜索:获取并提取针对阅读和合成源进行优化的完整网页内容

工具

  • 勇敢的网络搜索

    • 使用Brave的API执行网络搜索
    • 输入:
      • query (string):在互联网上搜索的术语
      • count (number,可选):要返回的结果数(最大20,默认10)
      • offset (number,可选,默认为0):分页偏移量
      • freshness (enum,可选):根据搜索结果的发现时间进行筛选
        • 支持以下值
          • pd:在过去24小时内发现。
          • pw:在过去7天内发现。
          • 下午:在过去31天内发现。
          • py:在过去365天内发现
          • YYYY MM DD到YYYY MM DD:自定义日期范围(例如,2022-04-01到2022-07-30)
  • 勇敢图片搜索

    • 从网络上获取与查询相关的图像
    • 输入:
      • query (string):在互联网上搜索以下图片的术语
      • count (number,可选):要返回的图像数量(最大50,默认10)
  • 勇敢_新闻_搜索

    • 在网上搜索新闻
    • 输入:
      • query (string):在互联网上搜索新闻文章、热门话题或最近事件的术语
      • count (number,可选):要返回的结果数(最大20,默认10)
      • offset (数字,可选,默认0):分页的从零开始的偏移量(最大9)
      • freshness (enum,可选):根据搜索结果的发现时间进行筛选
        • 支持以下值
          • pd:在过去24小时内发现。
          • pw:在过去7天内发现。
          • 下午:在过去31天内发现。
          • py:在过去365天内发现
          • YYYY MM DD到YYYY MM DD:自定义日期范围(例如,2022-04-01到2022-07-30)
  • 勇敢的探索

    • 搜索当地企业、服务和兴趣点
    • 如果没有找到位置结果,则返回到初始页面上的brave_web_search
    • 输入:
      • query (string):本地搜索词
      • count (number,可选):要返回的结果数(最大20,默认5)
      • offset (数字,可选,默认0):分页的从零开始的偏移量(最大9)
  • 勇敢_视频_搜索

    • 在网上搜索视频
    • 输入:
      • query:(string):用于搜索视频的术语
      • count:(数字,可选):要返回的视频数量(最多20个,默认10个)
      • offset (数字,可选,默认0):分页的从零开始的偏移量(最大9)
      • freshness (enum,可选):根据搜索结果的发现时间进行筛选
        • 支持以下值
          • pd:在过去24小时内发现。
          • pw:在过去7天内发现。
          • 下午:在过去31天内发现。
          • py:在过去365天内发现
          • YYYY MM DD到YYYY MM DD:自定义日期范围(例如,2022-04-01到2022-07-30)
  • brave_llm_context_search

    • 预提取的web内容针对AI代理、LLM基础和RAG管道进行了优化。
    • 使用Brave的 balanced 上下文阈值模式 compact 模式并禁用Brave相关性过滤 full 模式。
    • 输入:
      • query (string):搜索查询。最多400个字符和50个单词。
      • url (字符串,可选):目标的可选URL。如果提供了查询和URL,则会将其组合起来进行检索,并且只返回此确切URL的片段。
      • count (number,可选,默认8):考虑的最大搜索结果数。最小1,最大50。
      • maximumNumberOfUrls (number,可选,默认8):响应中包含的URL的最大数量。最小1,最大50。
      • maximumNumberOfTokens (number,可选,默认2048):返回上下文中令牌的大致最大数量。最小1024,最大32768。
      • maximumNumberOfSnippets (number,可选,默认16):所有URL中的最大代码段数。最小1,最大100。
      • maximumNumberOfTokensPerUrl (number,可选,默认512):每个URL的最大令牌数。最小512,最大8192。
      • maximumNumberOfSnippetsPerUrl (number,可选,默认值2):每个URL的最大代码段数。最小值1,最大值100。
      • responseMode (枚举,可选,默认 compact): compact 应用Brave的 balanced 相关性过滤加上局部片段过滤/截断。 full 禁用Brave的相关性过滤,并返回未经本地过滤或截断的原始片段。
      • maxSnippetChars (数字,可选,默认400):压缩模式下每个代码段的最大字符数。最小80,最大4000。
      • maxOutputChars (数字,可选,默认8000):紧凑模式下的最大序列化响应大小。最低1000,最高100000。

OpenAI应用程序和MCP应用程序支持


▶️ Click to watch the demo video

现在支持 OpenAI应用程序 和 MCP应用程序 在这个MCP服务器中。当为每个工具启用UI模式时,都有一个相应的UI小部件,让您控制添加到模型上下文中的内容。请参阅中的说明 使用ChatGPT部分.

配置

获取API密钥

  1. 注册一个 勇敢搜索API帐户
  2. 选择一个计划
  3. 生成API密钥 从开发人员仪表板

运行时模式

默认情况下,MCP服务器在stdio模式下运行。

BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp

要启用流式HTTP模式:

BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http

默认情况下,服务器监听端口3001。 URL为:

http://0.0.0.0:3001/mcp

有两种配置模式:

  • Env模式: BRAVE_MCP_CONFIG 未设置。功能切换来自环境变量,与之前的版本完全相同。
  • 文件模式: BRAVE_MCP_CONFIG=/path/to/config.toml 已设置。TOML文件成为功能设置的唯一真实来源,重叠的功能环境变量将被忽略并发出警告。

仅环境设置

无论模式如何,这些设置始终从流程环境中读取:

  • BRAVE_API_KEY (必需):勇敢搜索API密钥。
  • PORT (可选):HTTP端口(默认值: 3001).
  • HOST (可选):要绑定的接口(默认值: 0.0.0.0).
  • BRAVE_MCP_CONFIG (可选):功能设置的TOML配置文件的绝对或相对路径。

环境模式功能设置

当 BRAVE_MCP_CONFIG 如果未设置,则支持以下功能env变量:

  • ALLOWED_HOSTS (仅限HTTP模式):以逗号分隔的主机名列表,用于主机头验证。
    • 例子: ALLOWED_HOSTS=localhost,127.0.0.1,my-app.ngrok-free.app
    • 仅使用主机名(无方案/路径),例如。 my-app.ngrok-free.app 不 https://my-app.ngrok-free.app/mcp
  • BRAVE_MCP_POLICY_FILE:JSON策略文件路径。
  • BRAVE_MCP_POLICY_REDACT: true 编辑匹配的文本,而不是将其屏蔽。
  • BRAVE_MCP_REQUEST_LIMIT:正整数请求上限。
  • BRAVE_MCP_WINDOW_SECONDS:非负整数滚动窗口大小。
  • BRAVE_MCP_COOLDOWN_SECONDS:超过限制后的非负整数冷却时间。
  • BRAVE_MCP_AUDIT_LOG: true 以发出审计日志。
  • BRAVE_MCP_AUDIT_LOG_RAW: true 在审计日志中包含原始查询文本。
  • BRAVE_MCP_REQUIRE_JUSTIFICATION: true 拒绝没有 justification 弦。

示例:

# Local only
HOST=127.0.0.1 ALLOWED_HOSTS=localhost,127.0.0.1 BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http
# Local with ngrok tunnel
HOST=127.0.0.1 ALLOWED_HOSTS=localhost,127.0.0.1,my-app.ngrok-free.app BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http --ui

文件模式(BRAVE_MCP_CONFIG)

当 BRAVE_MCP_CONFIG 设置后,该文件控制功能配置,包括HTTP主机分配列表。

[auth]
httpApiKey = "sk-..."
requireAuth = true
callerId = "team-a"

[auth.jwt]
jwksUri = "https://idp.example.com/.well-known/jwks.json"
audience = "brave-search-mcp"
clockSkewSeconds = 30

[auth.oauth]
issuer = "https://idp.example.com"
audience = "brave-search-mcp"
clientId = "client-123"
clientSecret = "super-secret"
verifyStrategy = "jwks"

[audit]
enabled = true
logRaw = false
hmacSecret = "audit-secret"

[policy]
file = "/etc/brave-mcp/policy.json"
redact = false

[guardrail]
requestLimit = 100
windowSeconds = 60
cooldownSeconds = 10
requireJustification = false

[server]
allowedHosts = [
  "localhost",
  "127.0.0.1",
  "my-app.ngrok-free.app",
]

笔记:

  • BRAVE_API_KEY, PORT,以及 HOST 即使在文件模式下,也只保留环境。
  • 如果设置重叠功能环境变量,例如 BRAVE_MCP_REQUEST_LIMIT 或 ALLOWED_HOSTS 旁边 BRAVE_MCP_CONFIG,初创公司警告称,他们被忽视了。
  • 未知的TOML键也会发出警告,例如拼写错误 [guardrails] 在调试运行时行为之前可见。

要在不启动服务器的情况下验证配置文件,请在构建应用程序工作区后使用打包的入口点:

pnpm -C apps/brave-search-mcp run build
node apps/brave-search-mcp/dist/index.js --check-config ./apps/brave-search-mcp/test/fixtures/config.valid.toml

要在文件模式下运行构建的本地入口点,请执行以下操作:

pnpm -C apps/brave-search-mcp run build
BRAVE_API_KEY="your_key_here" BRAVE_MCP_CONFIG="$PWD/apps/brave-search-mcp/test/fixtures/config.valid.toml" node apps/brave-search-mcp/dist/index.js --http

使用ChatGPT

Brave Search MCP服务器可以与ChatGPT的web UI一起使用。这需要几个步骤。

1.在ChatGPT中启用开发人员模式

设置→ Apps → 高级设置→ 开发者模式

附加说明 这里

2.在HTTP模式和UI模式下运行Brave Search MCP

BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http --ui

3.创建本地隧道,将MCP服务器暴露给ChatGPT

注册并配置 吸烟,免费计划有效。

ngrok http 3001

记下转发URL。

...
Forwarding                    https://john-joe-asdf.ngrok-free.dev -> http://localhost:3001
...

4.将Brave Search MCP添加为ChatGPT的连接器

打开 ChatGPT应用程序设置

单击应用程序

单击“创建应用程序”

使用步骤3中的URL作为MCP服务器URL填写表格,但添加 /mcp.

https://john-joe-asdf.ngrok-free.dev/mcp

对于身份验证,选择“无身份验证”

勾选“我理解并想继续”复选框

然后单击“创建”。

5.使用Brave Search MCP服务器

在ChatGPT UI中,单击“+”按钮,滚动到“”。..more',选择新创建的Brave Search应用程序,然后输入您的查询。

使用Claude代码

对于 克劳德代码 用户,运行以下命令:

窗户:

claude mcp add-json brave-search '{"command":"cmd","args":["/c","npx","-y","brave-search-mcp"],"env":{"BRAVE_API_KEY":"YOUR_API_KEY_HERE"}}'

Linux/macOS:

claude mcp add-json brave-search '{"command":"npx","args":["-y","brave-search-mcp"],"env":{"BRAVE_API_KEY":"YOUR_API_KEY_HERE"}}'

替换 YOUR_API_KEY_HERE 使用实际的Brave Search API密钥。

使用Claude Desktop

MCP束(MCPB)

  1. 下载 mcpb 文件来自 发布
  2. 使用Claude Desktop打开它 或 转到文件->设置->扩展,将.mcpb文件拖动到窗口进行安装

码头工人

  1. 克隆仓库
  2. 从repo根构建映像
docker build -t brave-search-mcp:latest -f apps/brave-search-mcp/Dockerfile .
  1. 如果你想要HTTP模式,直接运行它:
docker run --rm -p 3001:3001 -e BRAVE_API_KEY="YOUR_API_KEY_HERE" brave-search-mcp:latest --http
  1. 将此添加到您的 claude_desktop_config.json 对于stdio模式:
{
  "mcp-servers": {
    "brave-search": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "BRAVE_API_KEY",
        "brave-search-mcp"
      ],
      "env": {
        "BRAVE_API_KEY": "YOUR API KEY HERE"
      }
    }
  }
}

NPX

将此添加到您的 claude_desktop_config.json:

{
  "mcp-servers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "brave-search-mcp"
      ],
      "env": {
        "BRAVE_API_KEY": "YOUR API KEY HERE"
      }
    }
  }
}

使用LibreChat

将此添加到librechat.yaml

brave-search:
  command: sh
  args:
    - -c
    - BRAVE_API_KEY=API KEY npx -y brave-search-mcp

贡献

欢迎投稿!看 贡献.md 用于开发设置、monorepo结构和发布说明。 有关UI构建工作流的详细信息,包括入口点编排器,请参阅 UI构建编排器.

免责声明

此库与Brave Software没有正式关联。它是Brave Search API的第三方实现,带有MCP服务器。

许可证

此项目根据GNU通用公共许可证v3.0获得许可-请参阅 许可证 文件以获取详细信息。