io.github.MRNAQA/sourceweave-web-search
SourceWeave Web Search
Search-first MCP-Server und CLI für die Web-Recherche.
[!NOTE]
sourceweave-search-mcpist der standardmäßige lokale Einstiegspunkt. Wenn expliziteSOURCEWEAVE_SEARCH_*-Endpunktvariablen nicht gesetzt sind, erkennt oder startet es den lokalen Docker-gestützten Stack automatisch. Wenn Sie die Dienste bereits selbst betreiben, setzen Sie explizite Endpunkte; dann verwendet es diese stattdessen.
Übersicht • Erste Schritte • Verwaltete lokale Laufzeit • MCP-Clients einrichten • CLI • Container-Deployments • OpenWebUI • Laufzeitkonfiguration • Entwicklung
Übersicht
SourceWeave Web Search stellt MCP-Clients einen kompakten Drei-Tool-Kontrakt für die Web-Recherche bereit:
search_web(query, domains?, urls?, effort?)ermittelt Quellen und liefert kompakte Ergebnisse mit stabilenpage_id-Kennungen.read_pages(page_ids, focus?)liest gespeicherte Seiten anhand derpage_id.read_urls(urls, focus?)liest direkte URLs, ohne vorher zu suchen.
Es kombiniert:
Komponente | Rolle |
SearXNG | Suche nach Quellen |
Crawl4AI | Extraktion von bereinigtem HTML |
Redis oder Valkey | Persistierter Seiten-Cache und |
MarkItDown | Dokumentenkonvertierung für PDFs und andere unterstützte Dateien |
Related MCP server: Deep Search MCP Server
Erste Schritte
Voraussetzungen
Python 3.12+
Docker mit Compose-Unterstützung für die standardmäßige verwaltete lokale Laufzeit
explizite
SOURCEWEAVE_SEARCH_*-Endpunkte nur, wenn Sie gehostete oder selbst verwaltete Dienste verwenden möchten
Verwaltete lokale Laufzeit
Starten Sie den Server aus dem veröffentlichten Paket:
uvx --from sourceweave-web-search sourceweave-search-mcpOder starten Sie den MCP-Server über HTTP:
uvx --from sourceweave-web-search sourceweave-search-mcp \
--transport streamable-http \
--host 127.0.0.1 \
--port 8000Wenn keine Endpunkt-Umgebungsvariablen gesetzt sind, gilt für sourceweave-search-mcp:
Modus | Was passiert |
Verwalteter Stack gefunden | Dem vorhandenen, von SourceWeave verwalteten Stack für das aktuelle Laufzeit-State-Verzeichnis beitreten. |
Gesunder externer Stack gefunden | Die kanonischen lokalen Ports |
Kein wiederverwendbarer Stack | Einen Docker-gestützten Stack auf kanonischen oder freien lokalen Ports starten und überwachen. |
Der verwaltete Zustand liegt unter ~/.sourceweave-local/managed-runtime. Mehrere MCP-Prozesse auf derselben Maschine teilen sich einen verwalteten Stack pro State-Verzeichnis.
[!IMPORTANT] Die verwaltete Laufzeit entfernt Container nur, wenn der letzte aktive, von SourceWeave verwaltete Prozess beendet wird. Benannte Volumes bleiben erhalten, sodass Cache-Daten Neustarts überleben. Wenn der ursprünglich besitzende Prozess stirbt, kann ein späterer Prozess denselben Stack anhand der Docker-Projektidentität und des persistierten Laufzeitzustands wiederherstellen.
Expliziter Endpunktmodus
Wenn Sie SearXNG, Crawl4AI und Redis oder Valkey bereits selbst betreiben oder auf gehostete Dienste zeigen möchten, setzen Sie explizite Endpunkte; der MCP-Einstiegspunkt umgeht dann den verwalteten Docker-Start:
SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL="http://127.0.0.1:19080/search?format=json&q=<query>" \
SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL="http://127.0.0.1:19235" \
SOURCEWEAVE_SEARCH_CACHE_REDIS_URL="redis://127.0.0.1:16379/2" \
uvx --from sourceweave-web-search sourceweave-search-mcpDirekte CLI
sourceweave-search führt das Tool direkt aus. Verwenden Sie es, wenn die unterstützenden Dienste bereits verfügbar sind oder Sie explizite Endpunkte angeben. Es startet kein Docker.
sourceweave-search --query "python programming" --read-first-pages 2
sourceweave-search --read-url "https://packaging.python.org/en/latest/"[!TIP] Die direkte CLI akzeptiert auch die Override-Optionen
--searxng-base-url,--crawl4ai-base-urlund--cache-redis-url.
MCP-Clients einrichten
OpenCode
Beispiel opencode.json / opencode.jsonc / ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sourceweave": {
"type": "local",
"command": [
"uvx",
"--from",
"sourceweave-web-search",
"sourceweave-search-mcp"
],
"enabled": true,
"timeout": 300000
}
}
}Für einen gemeinsamen HTTP-Endpunkt stattdessen:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sourceweave": {
"type": "remote",
"url": "http://127.0.0.1:18000/mcp",
"enabled": true,
"timeout": 300000
}
}
}VS Code Copilot
Beispiel .vscode/mcp.json:
{
"servers": {
"sourceweave": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"sourceweave-web-search",
"sourceweave-search-mcp"
]
}
}
}Für einen gemeinsamen HTTP-Endpunkt stattdessen:
{
"servers": {
"sourceweave": {
"type": "http",
"url": "http://127.0.0.1:18000/mcp"
}
}
}Claude Code
Beispiel .mcp.json:
{
"mcpServers": {
"sourceweave": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"sourceweave-web-search",
"sourceweave-search-mcp"
]
}
}
}Für eine projektbezogene gemeinsame Konfiguration platzieren Sie denselben Block in .mcp.json im Stammverzeichnis des Repositorys.
CLI
Die direkte CLI ist nützlich, sobald die unterstützenden Dienste bereits erreichbar sind. Sie bietet denselben Search-First-Workflow ohne den MCP-Wrapper.
sourceweave-search --query "react useEffect cleanup example" --read-first-page
sourceweave-search --query "HTTP overview" --domain developer.mozilla.org --read-first-page
sourceweave-search --read-url "https://packaging.python.org/en/latest/"Container-Deployments
Die verwaltete lokale Laufzeit ist für Veranstaltungen mit uvx oder uv run auf der Host-Seite gedacht. Containerisierte Deployments verwenden weiterhin eine explizite Endpunktverkabelung.
Image:
ghcr.io/mrnaqa/sourceweave-web-search-mcpRepo-lokaler Compose-Einstiegspunkt:
docker compose up -d --build mcp
Beispiel für einen Container-Start:
docker run --rm -p 8000:8000 \
-e SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL="http://host.docker.internal:19080/search?format=json&q=<query>" \
-e SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL="http://host.docker.internal:19235" \
-e SOURCEWEAVE_SEARCH_CACHE_REDIS_URL="redis://host.docker.internal:16379/2" \
ghcr.io/mrnaqa/sourceweave-web-search-mcp:latestOpenWebUI
Dieses Repository enthält außerdem eine eigenständig generierte OpenWebUI-Tool-Datei unter artifacts/sourceweave_web_search.py.
Überprüfen Sie in einem Repository-Checkout, dass sie mit der kanonischen Implementierung synchron ist:
uv run sourceweave-build-openwebui --checkFügen Sie dieses Artefakt in OpenWebUI ein, wenn Sie den eigenständigen Tool-Datei-Deployment-Pfad verwenden möchten. Die generierte Datei setzt die Standard-Endpunkte auf die repo-lokalen Compose-Dienstnamen um, sodass sie sofort zum Container-Deployment-Pfad passt.
Laufzeitkonfiguration
Optionale Umgebungsvariablen:
Variable | Zweck |
| URL-Vorlage für SearXNG. Muss |
| Basis-URL für Crawl4AI. |
| Redis- oder Valkey-URL für den Cache. |
| Host für |
| Port für |
Wenn die Endpunktvariablen nicht gesetzt sind, verwendet sourceweave-search-mcp standardmäßig die verwaltete lokale Laufzeit.
Die kanonischen Host-Endpunkte bleiben die bevorzugten Standardwerte und die Ziele für die Prüfung der externen Wiederverwendung.
Ein von SourceWeave verwalteter Stack kann andere freie Host-Ports verwenden, wenn die kanonischen Standardports bereits belegt sind.
Mehrere MCP-Prozesse auf derselben Maschine teilen sich einen verwalteten Stack pro lokalem Laufzeit-State-Verzeichnis.
Standardende-Werte:
SearXNG:
http://127.0.0.1:19080/search?format=json&q=<query>Crawl4AI:
http://127.0.0.1:19235Redis:
redis://127.0.0.1/16379/2
Bevorzugte Standard-Host-Ports für den verwalteten Start:
SearXNG:
19080Crawl4AI:
19235Redis:
16379MCP:
8000bei direkter Ausführung mituvx;18000unter/mcpbei Verwendung desmcp-Compose-Diensts des Repositorys
Entwicklung
git clone https://github.com/MRNAQA/sourceweave-web-search.git
cd sourceweave-web-search
uv sync --locked --group dev
uv run sourceweave-search-mcpNützliche Prüfungen:
uv run sourceweave-build-openwebui --check
uv run sourceweave-search-mcp --help
uv run pytest tests/test_config.py tests/test_packaging.py tests/test_tool.py tests/test_managed_runtime.py -m "not integration"This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables web search and site-specific search capabilities through the Deepsearch model. Provides unified access to broad web retrieval and targeted site search functionality within the MCP ecosystem.2115Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive search capabilities including web search, content extraction, news search, academic search, and AI-powered multi-source research. Enables natural language access to web content and research through a production-ready MCP server.
- AlicenseBqualityNot gradedmaintenanceProvides advanced Google Custom Search functionality, web content extraction, and specialized research tools such as search analytics, multi-site search, and fact checking. Works as an MCP server compatible with any MCP client.10MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to perform web searches and fetch web pages over HTTP, using Exa and Parallel AI as search providers without requiring API keys.MIT
Related MCP Connectors
Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.
Agentic search over your Dewey document collections from any MCP-compatible client.
Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MRNAQA/sourceweave-web-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server