Skip to main content
Glama
Jinddddd

websearch

by Jinddddd
README.md
# websearch_tool

Web search tool with two interfaces sharing one core. Serper primary, DuckDuckGo fallback (on error or empty results).

## Install

```bash
uv pip install -e .   # or: pip install -e .
export SERPER_API_KEY=<your-key>
```

## HTTP API

```bash
uvicorn websearch.http_api:app --port 8000
curl "http://127.0.0.1:8000/search?q=anthropic+claude&num=5"
```

| Endpoint | Params | Response |
|----------|--------|----------|
| `GET /search` | `q` (str), `num` (1-50, default 10) | `{query, source, results[]}` |
| `GET /health` | — | `{status}` |

`source` is `serper` or `ddg`. Each result has `title`, `url`, `snippet`.

## MCP Server

```bash
python -m websearch.mcp_server   # stdio transport
```

Exposes one tool: `web_search(query: str, num: int = 10)`.

MCP client config:

```json
{
  "mcpServers": {
    "websearch": {
      "command": "python",
      "args": ["-m", "websearch.mcp_server"],
      "env": { "SERPER_API_KEY": "<your-key>" }
    }
  }
}
```

## Library

```python
from websearch import search
resp = search("anthropic claude", num=5)   # reads SERPER_API_KEY from env
```

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between tools.

Naming Consistency5/5

With a single tool named 'web_search', naming is trivially consistent.

Tool Count3/5

One tool is minimal but acceptable for a focused search server; however, a more comprehensive set could include fetch or news tools.

Completeness2/5

The server only offers search functionality, lacking obvious features like fetching page content or news-specific search, which would be expected for a complete web search tool set.

Maintenance

ActivityInactive
ResponsivenessNo issues