@semidark/mcp-litellm-searxng
by semidark
README.md
# @semidark/mcp-litellm-searxng
MCP server for searching the web through a LiteLLM proxy's SearXNG-backed search endpoint.
## Installation
No local installation required — the server is executed on-demand via `npx`:
```json
{
"mcp": {
"azurelit-search": {
"type": "local",
"command": ["npx", "-y", "@semidark/mcp-litellm-searxng"],
"environment": {
"LITELLM_SEARCH_URL": "https://your-litellm-proxy/v1/search/searxng-search",
"LITELLM_API_KEY": "sk-your-key",
"LITELLM_TIMEOUT_MS": "30000"
}
}
}
}
```
With OpenCode, you can usually reuse your existing secret file:
```json
{
"mcp": {
"azurelit-search": {
"type": "local",
"command": ["npx", "-y", "@semidark/mcp-litellm-searxng"],
"environment": {
"LITELLM_SEARCH_URL": "https://litellm-proxy.example.com/v1/search/searxng-search",
"LITELLM_API_KEY": "{file:~/.secrets/azure-lit.key}",
"LITELLM_TIMEOUT_MS": "30000"
}
}
}
}
```
## Development
Run the server locally:
```sh
npm start
```
Run the integration test harness:
```sh
LITELLM_SEARCH_URL="https://your-litellm-proxy/v1/search/searxng-search" \
LITELLM_API_KEY="sk-your-key" \
npm test
```
`npm test` is an integration test against a real LiteLLM endpoint. It does not mock the network and fails fast if `LITELLM_SEARCH_URL` or `LITELLM_API_KEY` is missing.
## Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
| `LITELLM_SEARCH_URL` | Yes | — | Full URL to the LiteLLM search endpoint |
| `LITELLM_API_KEY` | Yes | — | Bearer token for API authentication |
| `LITELLM_TIMEOUT_MS` | No | `30000` | Request timeout in milliseconds |
## Tools
### `web_search`
Search the web using the configured LiteLLM proxy search backend.
**Parameters:**
- `query` (string, required): Search query
- `max_results` (number, optional, default 10): Max results to return (1–50)
**Returns:**
- text output formatted for chat clients
- `structuredContent.results` as the raw LiteLLM result array
## License
MIT
TDQS
A3.8/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion between tools. The single tool has a clear, distinct purpose.
Naming Consistency5/5
The sole tool 'web_search' follows a clear verb_noun pattern. Consistency is not an issue with a single tool.
Tool Count3/5
A single tool is minimal but acceptable for a focused search server. However, it feels thin compared to typical MCP servers.
Completeness4/5
The server provides exactly what its name implies: web search. For a narrow-purpose tool, it covers the core functionality without obvious gaps.
Maintenance
ActivityInactive
ResponsivenessNo issues