Brave Search MCP Server
This project implements a Model Context Protocol (MCP) server for Brave Search, allowing integration with AI assistants like Claude.
Prerequisites
- Python 3.11+
- uv - A fast Python package installer and resolver
Installation
Installing via Smithery
To install Brave Search MCP server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @thomasvan/mcp-brave-search --client claude
Manual Installation
-
Clone the repository:
git clone https://github.com/thomasvan/mcp-brave-search.git cd mcp-brave-search -
Create a virtual environment and install dependencies using uv:
uv venv source .venv/bin/activate # On Windows, use: .venv\\Scripts\\activate uv pip install -r requirements.txt -
Set up your Brave Search API key:
export BRAVE_API_KEY=your_api_key_hereOn Windows, use:
set BRAVE_API_KEY=your_api_key_here
Usage
-
Configure your MCP settings file (e.g.,
claude_desktop_config.json) to include the Brave Search MCP server:{ "mcpServers": { "brave-search": { "command": "uv", "args": [ "--directory", "path-to\\\\mcp-python\\\\mcp-brave-search\\\\src", "run", "server.py" ], "env": { "BRAVE_API_KEY": "YOUR_BRAVE_API_KEY_HERE" } } } }Replace
YOUR_BRAVE_API_KEY_HEREwith your actual Brave API key. -
Start the Brave Search MCP server by running your MCP-compatible AI assistant with the updated configuration.
-
The server will now be running and ready to accept requests from MCP clients.
-
You can now use the Brave Search functionality in your MCP-compatible AI assistant (like Claude) by invoking the available tools.
Available Tools
The server provides two main tools:
brave_web_search: Performs a web search using the Brave Search API.brave_local_search: Searches for local businesses and places.
Refer to the tool docstrings in src/server.py for detailed usage information.
Development
To make changes to the project:
- Modify the code in the
srcdirectory as needed. - Update the
requirements.txtfile if you add or remove dependencies:uv pip freeze > requirements.txt - Restart the server to apply changes.
Testing
The project includes both unit tests and integration tests:
Installing Test Dependencies
uv pip install pytest pytest-asyncio pytest-cov
Running Unit Tests
Unit tests can be run without an API key and use mocks to simulate API responses:
# Run all unit tests
python -m pytest tests/unit/
# Run with verbose output
python -m pytest tests/unit/ -v
Running Integration Tests
Integration tests require a valid Brave API key and make real API calls:
# Run integration tests with your API key
BRAVE_API_KEY_INTEGRATION="your_api_key_here" python -m pytest tests/integration/ -v
Test Coverage
To check test coverage:
python -m pytest --cov=src/mcp_brave_search
Troubleshooting
If you encounter any issues:
- Ensure your Brave API key is correctly set.
- Check that all dependencies are installed.
- Verify that you're using a compatible Python version.
- If you make changes to the code, make sure to restart the server.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Recommend MCP Servers 💡
ai-coder-tools
Provides a collection of Model Context Protocol (MCP) server implementations, including tools for Azure DevOps, Git, Kusto, and general search, designed to extend Roo Code capabilities for AI-assisted coding.
@1mcp/agent
A unified Model Context Protocol server implementation that aggregates multiple MCP servers into one.
kukapay/whereami-mcp
A lightweight MCP server that provides geolocation information based on IP address.
akr4/claude-code-mcp-docker
A Dockerized Claude Code MCP server designed for secure code execution, providing an isolated development environment for AI interactions.
Chazzychouse/weather-mcp-server
A basic MCP server implementation for weather data using the NOAA API, providing forecast and alert tools.
@renant/mcp-tabnews
An MCP server providing tools to interact with TabNews, including fetching content, user-specific data, analytics, and RSS feeds.