Skip to content

stablekernel/mcp-search

Repository files navigation

MCP Search Server

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.

Overview

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.

Features

  • Internet search via Brave Search API
  • Text extraction from search results
  • Safe search filtering
  • MCP-compatible interface

Requirements

  • Go 1.19 or higher
  • A Brave Search API key (free tier available)

Installation

git clone https://github.com/stablekernel/mcp-search.git
cd mcp-search
go mod download

Usage

Building

go build -o mcp-search ./cmd/search

Running

./mcp-search --brave-api-key=YOUR_BRAVE_API_KEY

The server runs in stdio mode, which is compatible with MCP clients.

Using Pre-built Binaries

You can download pre-built binaries from the Releases page. We provide binaries for:

  • Linux (amd64, arm64)
  • Windows (amd64)

Getting a Brave API Key

  1. Visit Brave Search API
  2. Sign up for a developer account
  3. Create a new API key in the developer dashboard
  4. The free tier provides a limited number of requests per month

Development

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

CI/CD Pipeline

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

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This is a prototype implementation and may have limitations or bugs. It is provided as-is for demonstration purposes.

About

An MCP for searching the internet. Leverages the Brave Search API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages