web-search-mcp
Provides read-only access to a Home Assistant installation, enabling plain-language entity search and retrieval of live states, sensor history statistics, and camera person-detection events.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@web-search-mcpsearch the web for today's top technology news"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
web-search-mcp
An MCP server that gives a local language model live information and a read only view of a Home Assistant installation. It was built for a voice assistant that runs on Ollama, where the model has no internet access and no knowledge of the house.
The server speaks MCP over streamable HTTP on port 8765. Any MCP client can use it, for example Home Assistant's MCP client, Open WebUI through mcpo, or a script.
Tools
Tool | What it does |
| Searches the web and the news, ranks the hits against the query, reads the top pages in parallel and returns the passages that match, with dates. Drops old years from the query unless asked for history. |
| Current conditions and a forecast of up to 7 days from Open-Meteo, for the home location or any city. |
| Official table, results and fixtures from OpenLigaDB. An example of wrapping a free sports API. |
| Finds any Home Assistant entity from plain words ("kitchen shutter", "solar power"). Matches names, areas, device names and aliases, handles synonyms, and returns the live state with units spelled out for text to speech. |
| Minimum, maximum and average of a sensor over the last 1 to 168 hours, or the number of state changes for non numeric entities. |
| Person detections per camera: detected now, last detection time and count in the window. Cameras are configured in |
| Semantic search over a document collection that Open WebUI keeps in Qdrant. Returns passages with file names so the model can cite the source. |
Related MCP server: Web Search MCP Server
Design notes
Small answers. Each page is cut to the paragraphs that match the query (650 characters by default). A voice model with a small context window cannot use a full page.
Parallel fetching. Search, news and page downloads run in a thread pool with a 4 second page timeout, so one slow site does not stall the answer.
Read only. The Home Assistant tools only read. Use a token for a user that cannot call services.
Tool descriptions carry the routing. The docstrings tell the model when to use each tool and how to phrase the query. Most of the tuning went into them.
Failures are plain sentences. A tool that fails returns a short message the model can read out, never a stack trace.
Run
cp .env.example .env # fill in what you need
docker build -t web-search-mcp .
docker run -d --name web-search-mcp --env-file .env -p 127.0.0.1:8765:8765 web-search-mcpThe MCP endpoint is http://127.0.0.1:8765/mcp.
Security
The server has no authentication of its own. Anyone who can reach port 8765 can call every tool, including the Home Assistant ones. Keep it bound to localhost or a private network, or put a reverse proxy with a token in front of it. Do not publish the port to the internet.
Tested with
Python 3.14, mcp 2.3.0, ddgs 9.16.0, trafilatura 2.3.1.
Tests
pip install -r requirements.txt pytest # for agent-memory-mcp: pip install fastapi uvicorn httpx psycopg2-binary pgvector "mcp>=1.30,<2" pytest
pytest8 tests run without a database, Home Assistant or internet. They cover the parts that are easy to get wrong: query and year handling, picking the right paragraphs from a page, ranking of Home Assistant entities, plain answers when a tool is not configured, and the exact tool list.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Web search and page reading for AI agents, including JSON APIs, RSS feeds and YouTube.
Web data for agents: YouTube transcripts, screenshots, Google News, WHOIS, jobs, tech stack, more.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search the web using DuckDuckGo and extract clean text content from websites for real-time research, with all processing happening locally for complete privacy.3MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search the web, fetch news, and retrieve page content via DuckDuckGo or Brave Search, with domain whitelisting and audit logging.-
- AlicenseAqualityCmaintenanceEnables local LLMs to search the web and fetch clean content from URLs without API keys, using SearxNG and Mozilla Readability.240MIT
- AlicenseAqualityBmaintenanceEnables web search, scraping, and live package version lookup for local LLMs, with no API keys required.52MIT