beacon
README.md
# beacon
A zero-config **web search MCP server** for any MCP client (opencode, Claude Desktop, Cursor, etc.).
Gives your local models the ability to **search the web** and **read page content** — no API keys, no Docker, no setup beyond `pip install`.
## What it gives you
Two MCP tools:
| Tool | Description |
|------|-------------|
| `beacon_search(query, max_results=5)` | Web search via DuckDuckGo. Returns `{title, url, snippet}` hits. |
| `beacon_fetch(url, max_chars=8000)` | Fetches a URL and returns its main readable text (HTML-stripped, boilerplate removed). |
## Install
```bash
git clone <your-fork-url> beacon
cd beacon
python3 -m venv .venv
.venv/bin/pip install -e .
```
## Register with an MCP client
### opencode
Add to your `opencode.json`:
```json
{
"mcp": {
"beacon": {
"type": "local",
"command": ["/absolute/path/to/beacon/.venv/bin/beacon-mcp"]
}
}
}
```
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"beacon": {
"command": "/absolute/path/to/beacon/.venv/bin/beacon-mcp"
}
}
}
```
## Manual testing (CLI)
```bash
.venv/bin/beacon search "python async patterns"
.venv/bin/beacon fetch https://example.org
```
## Configuration (optional, via env vars)
| Variable | Default | Purpose |
|----------|---------|---------|
| `BEACON_TIMEOUT` | `15` | HTTP timeout (seconds) for fetch |
| `BEACON_USER_AGENT` | Firefox-like string | User-Agent for outbound requests |
| `BEACON_LOG_LEVEL` | `INFO` | Logging verbosity |
No state is written to disk. No database. No API keys required.
## Development
```bash
.venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest -v
```
## License
MIT.
TDQS
A4.7/5.0
Scored across 2 tools
Disambiguation5/5
The two tools have clearly distinct purposes: one searches the web for URLs and the other fetches a specific URL's content. There is no overlap or confusion between them.
Naming Consistency5/5
Both tools use a consistent 'beacon_' prefix followed by a simple verb ('search' and 'fetch'), forming a predictable and coherent naming pattern.
Tool Count3/5
With only two tools, the server feels minimally scoped for a web search/fetch utility. While each tool is essential, the count is borderline and may leave users wanting additional capabilities like URL validation or cached results.
Completeness5/5
The server provides a complete workflow: search for URLs, then fetch and read content. It covers the core domain of web searching and extraction without obvious gaps or dead ends.
Maintenance
ActivitySlowing
ResponsivenessNo issues