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 download
go build -o mcp-search ./cmd/search
./mcp-search --brave-api-key=YOUR_BRAVE_API_KEY
The 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.0
Contributions 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.