Hermes SearXNG MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NO_PROXY | No | Comma-separated list of hosts to bypass the proxy | |
| HTTP_PROXY | No | Proxy URL for HTTP requests (e.g., http://proxy:8080) | |
| HTTPS_PROXY | No | Proxy URL for HTTPS requests (e.g., http://proxy:8080) | |
| SEARXNG_HOST | No | HTTP host (only for HTTP transport) | 0.0.0.0 |
| SEARXNG_PORT | No | HTTP port (only for HTTP transport) | 8000 |
| SSL_CERT_FILE | No | Path to custom CA certificate bundle | |
| SEARXNG_BASE_URL | Yes | URL of your SearXNG instance (e.g., http://localhost:8888) | |
| SEARXNG_TRANSPORT | No | Transport type: stdio or http | stdio |
| REQUESTS_CA_BUNDLE | No | Path to custom CA certificate bundle (alternative to SSL_CERT_FILE) | |
| SEARXNG_USER_AGENT | No | Custom User-Agent header | Chrome UA |
| SEARXNG_HEADERS_JSON | No | JSON object with custom HTTP headers | {} |
| SEARXNG_TIMEOUT_SECONDS | No | Request timeout in seconds | 30 |
| SEARXNG_MAX_CONTENT_BYTES | No | Maximum content size in bytes (default: 5MB) | 5242880 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| web_searchA | Search the web using SearXNG and return results. This is the primary web search tool. Use it when you need to:
Args: query: Search query. Use specific keywords and quotes for exact phrases. num_results: Number of results to return (default: 5, max: 50). categories: Search category (general, news, images, videos, it, science, files, music). language: Language code (en, fr, es, de, etc.). time_range: Time filter (day, week, month, year) or None for no filter. include_content: If True, fetch and extract full page content for each result. This is slower but provides complete content without follow-up calls. Returns: Dictionary with "results" list, where each result has: - title: Result title - url: Result URL - snippet: Search snippet from SearXNG - content: Full page content (if include_content=True, otherwise empty string) - engine: List of search engines that returned this result Example: >>> await web_search("python async await", num_results=3) { "results": [ { "title": "Python Asyncio - Real Python", "url": "https://realpython.com/async-io-python/", "snippet": "Learn how to use Python's asyncio...", "content": "# Python Asyncio...", "engine": ["google", "bing"] } ] } Notes: - Requires SEARXNG_BASE_URL environment variable to be set. - Content extraction is best-effort and may fail for paywalled or protected content. - For large num_results with include_content=True, this can be slow due to parallel fetching. |
| get_contentA | This domain is for use in illustrative examples..." } |
| search_newsA | Search recent news articles using SearXNG. This is a convenience wrapper around web_search() optimized for news. Args: query: News topic or event to search for. num_results: Number of articles to return (default: 10). time_range: Time filter (day, week, month, year). Defaults to "week". language: Language code for results (default: "en"). Returns: Dictionary with "results" list of news articles. Example: >>> await search_news("artificial intelligence breakthrough", num_results=5) { "results": [ { "title": "Major AI Breakthrough Announced", "url": "https://example.com/ai-breakthrough", "snippet": "Researchers announce...", "content": "", "engine": ["google"] } ] } |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Server Configuration | Current server configuration and capabilities |
| Usage Guide | Complete guide for using all MCP tools |
TDQS
Scored across 3 tools
web_search and get_content are clearly distinct: one discovers URLs, the other fetches a known URL. search_news overlaps with web_search since it is a news-specific wrapper, but the descriptions clearly frame it as a convenience for news queries, so an agent can usually disambiguate.
All tool names follow the same lowercase snake_case verb_noun pattern: web_search, get_content, and search_news. There are no vague verbs or mixed naming conventions.
At 3 tools, the set is close to the ideal size and covers the core search-and-fetch workflow. search_news is somewhat redundant with web_search(categories='news'), so it does not fully earn its place, but the overall count is still reasonable.
The main workflow of discovering results and extracting page content is covered well. Minor gaps exist, such as pagination/offset for browsing deeper result sets, but agents can work around these via num_results and the supported categories.