Webpawm is an MCP (Model Context Protocol) server that provides web search capabilities with multiple search engine support.
- Multiple Search Engines: Supports SearXNG, Google, Bing, Brave, Bing CN (China), and Arxiv
- Multiple Transport Modes:
- HTTP/SSE mode (via
webpawm webcommand) - Stdio mode (via
webpawmorwebpawm stdcommand)
- HTTP/SSE mode (via
- Smart Search: Intelligent query optimization with result aggregation
- Multi-Engine Search: Search across multiple engines simultaneously
- Flexible Configuration: Support for config file (~/.webpawm/config.json) and environment variables
- Access Logging: Built-in slog-based HTTP access logging
go install github.com/liut/webpawm@latestOr build from source:
git clone https://github.com/liut/webpawm.git
cd webpawm
go build -o webpawm .Run as a local MCP tool:
webpawmStart the web server:
webpawm web --listen localhost:8087The server provides two endpoints:
- HTTP:
http://localhost:8087/mcp - SSE:
http://localhost:8087/mcp/sse
With URI prefix:
webpawm web --listen localhost:8087 --uri-prefix /apiEndpoints become:
- HTTP:
http://localhost:8087/api/mcp - SSE:
http://localhost:8087/api/mcp/sse
Webpawm provides three MCP tools:
Search the web using a single search engine.
| Parameter | Type | Description |
|---|---|---|
| query | string | The search query (required) |
| engine | string | Search engine to use (optional) |
| max_results | integer | Maximum results (1-50, default: 10) |
| language | string | Language code (e.g., 'en', 'zh') |
| arxiv_category | string | Arxiv category for academic papers |
Search across multiple search engines simultaneously.
| Parameter | Type | Description |
|---|---|---|
| query | string | The search query (required) |
| engines | array | List of search engines (optional) |
| max_results_per_engine | integer | Max results per engine (1-20, default: 5) |
Intelligently search with query optimization and result aggregation.
| Parameter | Type | Description |
|---|---|---|
| question | string | User's question or search intent (required) |
| search_depth | string | 'quick', 'normal', or 'deep' |
| include_academic | boolean | Include academic papers from Arxiv |
Create ~/.webpawm/config.json:
{
"searchxng_url": "https://searchx.ng",
"google_api_key": "your-api-key",
"google_cx": "your-search-engine-id",
"bing_api_key": "your-bing-api-key",
"brave_api_key": "your-brave-api-key",
"max_results": 10,
"default_engine": "searchxng",
"listen_addr": "localhost:8087",
"uri_prefix": "",
"log_level": "info"
}| Variable | Description |
|---|---|
| WEBPAWM_SEARCHXNG_URL | SearXNG base URL |
| WEBPAWM_GOOGLE_API_KEY | Google Custom Search API key |
| WEBPAWM_GOOGLE_CX | Google Search Engine ID |
| WEBPAWM_BING_API_KEY | Bing Search API key |
| WEBPAWM_BRAVE_API_KEY | Brave Search API key |
| WEBPAWM_MAX_RESULTS | Default max results |
| WEBPAWM_DEFAULT_ENGINE | Default search engine |
| WEBPAWM_LISTEN_ADDR | HTTP listen address |
| WEBPAWM_URI_PREFIX | URI prefix for endpoints |
| WEBPAWM_LOG_LEVEL | Log level: debug, info, warn, error |
Configuration priority (highest to lowest):
- CLI flags
- Environment variables
- Config file
- Default values
MIT