A search MCP (Model Context Protocol) server implementation for searching the internet. This server leverages the Brave Search API to provide search capabilities through a standardized MCP interface.
This project demonstrates the usage of protoc-gen-go-mcp to create an MCP-compatible search service. It serves as a prototype for integrating search functionality into MCP-enabled applications.
- Internet search via Brave Search API
- Text extraction from search results
- Safe search filtering
- MCP-compatible interface
- Go 1.19 or higher
- A Brave Search API key (free tier available)
git clone https://github.com/stablekernel/mcp-search.git
cd mcp-search
go mod downloadgo build -o mcp-search ./cmd/search./mcp-search --brave-api-key=YOUR_BRAVE_API_KEYThe server runs in stdio mode, which is compatible with MCP clients.
You can download pre-built binaries from the Releases page. We provide binaries for:
- Linux (amd64, arm64)
- Windows (amd64)
- Visit Brave Search API
- Sign up for a developer account
- Create a new API key in the developer dashboard
- The free tier provides a limited number of requests per month
This is a prototype project intended to demonstrate MCP server implementation using protoc-gen-go-mcp. The codebase is organized as follows:
/cmd/search: Entry point for the application/internal/brave: Brave Search API client/internal/crawler: Web page extraction functionality/internal/search: Core search service implementation/gen: Generated code from protocol buffers
This project uses GitHub Actions for continuous integration and deployment:
- Automated tests run on all PRs and pushes to main branch
- Binaries are built for Linux and Windows platforms
- Release artifacts are automatically generated when tags are pushed
- Versioning information is embedded in the binaries
To create a new release:
git tag v1.0.0
git push origin v1.0.0Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This is a prototype implementation and may have limitations or bugs. It is provided as-is for demonstration purposes.