An MCP Server implementation that integrates the Brave Search API, providing, Web Search, Local Points of Interest Search, Video Search, Image Search and News Search capabilities
- Web Search: Perform a regular search on the web
- Image Search: Search the web for images. Image search results will be available as a Resource
- News Search: Search the web for news
- Video Search: Search the web for videos
- Local Points of Interest Search: Search for local physical locations, businesses, restaurants, services, etc
-
brave_web_search
- Execute web searches using Brave's API
- Inputs:
query
(string): The term to search the internet forcount
(number, optional): The number of results to return (max 20, default 10)offset
(number, optional, default 0): The offset for paginationfreshness
(enum, optional): Filters search results by when they were discovered- The following values are supported
- pd: Discovered within the last 24 hours.
- pw: Discovered within the last 7 Days.
- pm: Discovered within the last 31 Days.
- py: Discovered within the last 365 Days
- YYYY-MM-DDtoYYYY-MM-DD: Custom date range (e.g., 2022-04-01to2022-07-30)
- The following values are supported
-
brave_image_search
- Get images from the web relevant to the query
- Inputs:
query
(string): The term to search the internet for images ofcount
(number, optional): The number of images to return (max 3, default 1)
-
brave_news_search
- Searches the web for news
- Inputs:
query
(string): The term to search the internet for news articles, trending topics, or recent eventscount
(number, optional): The number of results to return (max 20, default 10)freshness
(enum, optional): Filters search results by when they were discovered- The following values are supported
- pd: Discovered within the last 24 hours.
- pw: Discovered within the last 7 Days.
- pm: Discovered within the last 31 Days.
- py: Discovered within the last 365 Days
- YYYY-MM-DDtoYYYY-MM-DD: Custom date range (e.g., 2022-04-01to2022-07-30)
- The following values are supported
-
brave_local_search
- Search for local businesses, services and points of interest
- REQUIRES subscription to the Pro api plan for location results
- Falls back to brave_web_search if no location results are found
- Inputs:
query
(string): Local search termcount
(number, optional): The number of results to return (max 20, default 5)
-
brave_video_search
- Search the web for videos
- Inputs:
query
: (string): The term to search for videoscount
: (number, optional): The number of videos to return (max 20, default 10)freshness
(enum, optional): Filters search results by when they were discovered- The following values are supported
- pd: Discovered within the last 24 hours.
- pw: Discovered within the last 7 Days.
- pm: Discovered within the last 31 Days.
- py: Discovered within the last 365 Days
- YYYY-MM-DDtoYYYY-MM-DD: Custom date range (e.g., 2022-04-01to2022-07-30)
- The following values are supported
- Sign up for a Brave Search API account
- Choose a plan (Free tier available with 2,000 queries/month)
- Generate your API key from the developer dashboard
- Clone the repo
- Docker build
docker build -t brave-search-mcp:latest -f ./Dockerfile .
- Add this to your
claude_desktop_config.json
:
{
"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"
}
}
}
}
Add this to your claude_desktop_config.json
:
{
"mcp-servers": {
"brave-search": {
"command": "npx",
"args": [
"-y",
"brave-search-mcp"
],
"env": {
"BRAVE_API_KEY": "YOUR API KEY HERE"
}
}
}
}
Add this to librechat.yaml
brave-search:
command: sh
args:
- -c
- BRAVE_API_KEY=API KEY npx -y brave-search-mcp
Contributions are welcome! Please feel free to submit a Pull Request.
-
Clone the repo
-
Install Dependencies and build it
npm install
- Build the app
npm run build
⚠ Does not seem to work on Windows 10/11, but works in WSL2
Use the VS Code Run and Debug launcher with fully functional breakpoints in the code:
- Locate and select the run debug.
- Select the configuration labeled "
MCP Server Launcher
" in the dropdown. - Select the run/debug button. We can debug the various tools using MCP Inspector and VS Code.
To set up local debugging with breakpoints:
-
Store Brave API Key in the VS Code
- Open the Command Palette (Cmd/Ctrl + Shift + P).
- Type
Preferences: Open User Settings (JSON)
. - Add the following snippet:
{ "brave.search.api.key": "your-api-key-here" }
-
Create or update
.vscode/launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "MCP Server Launcher",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/node_modules/@modelcontextprotocol/inspector/cli/build/cli.js",
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"env": {
"BRAVE_API_KEY": "${config:brave.search.api.key}",
"DEBUG": "true"
},
"args": ["dist/index.js"],
"sourceMaps": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"preLaunchTask": "npm: build:watch"
},
{
"type": "node",
"request": "attach",
"name": "Attach to Debug Hook Process",
"port": 9332,
"skipFiles": ["<node_internals>/**"],
"sourceMaps": true,
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
},
{
"type": "node",
"request": "attach",
"name": "Attach to REPL Process",
"port": 9333,
"skipFiles": ["<node_internals>/**"],
"sourceMaps": true,
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
}
],
"compounds": [
{
"name": "Attach to MCP Server",
"configurations": ["Attach to Debug Hook Process", "Attach to REPL Process"]
}
]
}
- Create
.vscode/tasks.json
:
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "build:watch",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$tsc"]
}
]
}
This library is not officially associated with Brave Software. It is a third-party implementation of the Brave Search API with a MCP Server.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.