Brave 搜索 MCP 服务

这是一个部署在 Cloudflare Workers 上的远程 MCP 服务器,封装 Brave Search API,通过 HTTP 向任意兼容 MCP 的客户端提供网页、新闻、图片、视频、本地和 AI 摘要搜索能力。

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

使用说明

brave-search-mcp-cloudflare

A remote MCP server that wraps the official Brave Search MCP server and deploys it as a Cloudflare Worker with Durable Objects.

The official repo supports only stdio/Express transports. This project makes it a proper remote MCP server reachable over HTTP — usable by any MCP-compatible client without running a local process.

Tools

All 6 Brave Search tools are available:

Tool Description
brave_web_search General web search
brave_news_search News search
brave_image_search Image search
brave_video_search Video search
brave_local_search Local/maps search with POIs and descriptions
brave_summarizer AI-powered search summarization

Architecture

  • Runtime: Cloudflare Workers with Durable Objects (for McpAgent state)
  • MCP SDK: McpAgent from agents package + McpServer from @modelcontextprotocol/sdk
  • Auth: Cloudflare Access (Zero Trust) — protects /mcp endpoint
  • API key: Stored as a Wrangler secret (BRAVE_API_KEY), never committed

Deployment

Prerequisites

Deploy

npm install

# Set your Brave Search API key as a secret
wrangler secret put BRAVE_API_KEY

# Deploy to Cloudflare Workers
npm run deploy

The Worker will be available at https://brave-search-mcp-cloudflare.<your-subdomain>.workers.dev.

Health check

curl https://brave-search-mcp-cloudflare.<your-subdomain>.workers.dev/health
# {"status":"ok"}

Cloudflare Access Setup (recommended)

To protect the /mcp endpoint so only authorized clients can connect:

  1. Go to Zero Trust dashboard → Access → Applications
  2. Click Add an application → Self-hosted
  3. Set the application domain to your Worker URL with path /mcp
  4. Create a policy (e.g., allow specific email domains, or use Service Tokens for programmatic access)
  5. To create a Service Token: Access → Service Auth → Service Tokens → Create Service Token

Connecting an MCP client through Cloudflare Access

Use mcp-remote with your Service Token credentials:

{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://brave-search-mcp-cloudflare.<your-subdomain>.workers.dev/mcp",
        "--header",
        "CF-Access-Client-Id:<your-client-id>",
        "--header",
        "CF-Access-Client-Secret:<your-client-secret>"
      ]
    }
  }
}

Local development

# Set your API key in .dev.vars (never commit this file)
echo "BRAVE_API_KEY=your_key_here" > .dev.vars

npm run dev
# Worker available at http://localhost:8787
# MCP endpoint: http://localhost:8787/mcp

Test with MCP Inspector:

npx @modelcontextprotocol/inspector http://localhost:8787/mcp

License

MIT — see LICENSE