← Back to directory
K

Kindly Web Search MCP Server

Community
Web search plus robust content retrieval for AI coding tools and agents
Category
Dev Tools #133 of 438
Stars
★ 399 Very popular
Transport
stdio (local process) · Streamable HTTP · SSE
Runtime
Python 3.13+ · Prebuilt binary Chromium-based brows
Credentials
API key / credential required
License
MIT
Last commit
Tools
2
59FMRS · C

Kindly Web Search MCP Server is a content-quality-focused search MCP service: specialized API integrations deliver full StackExchange, GitHub Issues/Discussions, Wikipedia and arXiv content to the model in one call, while a headless Chromium browser parses other pages in real time, with multiple search providers and proxy support. It suits users who want less scraping round-tripping and better AI coding context, but it requires a local browser and at least one search key, and its remote HTTP mode is unauthenticated and unencrypted by default, so deployment needs extra protection.

Strongest · Documentation 14/20 Weakest · Reliability 9/20

Reliability
9/20
Security and permissions
13/20
Maintenance
11/20
Documentation
14/20
Setup experience
12/20
Why each score
Reliability 9/20
Static review sees only the README description; no verifiable source files, committed tests, or CI workflows were supplied, and nothing was executed, so the static-calibration cap of 12 applies. The two declared tools (web_search, get_content) align plausibly with the described resolver priority chain, Markdown fast paths, and browser pooling, and there are controlled-failure knobs (KINDLY_TOOL_TOTAL_TIMEOUT_SECONDS/MAX, KINDLY_WEB_SEARCH_MAX_CONCURRENCY, KINDLY_DIAGNOSTICS, pool.slot_probe/pool.slot_restart), which justifies a score near the cap. Deductions: no reproducible test or CI evidence; first uvx run needs 30-60s prebuild; browser dependency plus documented cold-start TimeoutError shows the happy path is not clearly stable; the server manifest is not cached, so the tool list is inferred from prose rather than verified.
Security and permissions 13/20
MIT licensed; no malware, credential theft, or covert exfiltration found, and no red line is triggered. Positive evidence: README insists on env-var secrets instead of hardcoding and uses only placeholders (PASTE_..., ${input:...}); GITHUB_TOKEN can be read-only and limited to public repos; HTTP transports default to loopback-only Host/Origin allowlists with explicit DNS-rebinding protection and repeated warnings that remote HTTP is unauthenticated and unencrypted; it also discloses that Chromium's --proxy-server cannot carry embedded credentials. Deductions: get_content fetches any supplied URL through a headless Chromium, creating an SSRF / internal-network probing surface that is only advised against in prose rather than enforced by a URL allowlist or egress policy; browser reuse (KINDLY_NODRIVER_REUSE_BROWSER) shares cookies, local storage, cache and user-agent across requests, leaving the data boundary unclear; there is no confirmation step for network fetching, which is a default side effect. Risks are disclosed but privilege scoping and data-flow boundaries are incomplete.
Maintenance 11/20
The repo is active and unarchived with 385 stars and 4 open issues, ships an explicit MIT license, and names an identifiable owner (Shelpuk AI Technology Consulting) with no sign of fabricated identity, so it is not a zero. Deductions: the static material contains no release tags, version numbers, CHANGELOG, commit cadence, or dependency-update record, and there is no SECURITY.md or stated security-response channel; version governance and vulnerability disclosure paths are missing. Dependencies (nodriver, httpx[socks], optional PDF/onnxruntime extras disabled on Python 3.14) carry stated compatibility uncertainty with no documented follow-up mechanism. Active but with governance and versioning gaps.
Documentation 14/20
Documentation is the strongest dimension here. The README layers positioning, tool signatures and return fields, a six-tier content-resolver table (with per-tier HTTP client and proxy differences), the two Markdown fast-path probes with env vars and defaults, full config snippets for eight mainstream clients (Codex, Claude Code, Gemini CLI, OpenClaw, Antigravity, Cursor, Claude Desktop, VS Code Copilot), browser path/proxy/bypass details, Docker and docker-compose deployment, and extensive troubleshooting plus timeout/concurrency tuning parameters. It also openly discloses limitations: proxies cannot embed credentials, reused browsers share state, remote HTTP is unauthenticated, first start is slow, and optional Python 3.14 extras are disabled. Deductions: the README is untrusted evidence and cannot be cross-verified against source; there is no cost/quota guidance beyond provider-priority ordering and no per-provider pricing or rate-limit detail; error strings like `_Failed to retrieve page content: TimeoutError_` are stylistically inconsistent, and no real sample responses are shown to substantiate the claimed page_content quality.
Setup experience 12/20
The documented install path is clear: install uvx (three-platform commands), install a Chromium-based browser, set one search-provider key, then wire the single `uvx --from git+...` command, with copy-pasteable configs for eight clients in both CLI and file variants and an explicitly safer interactive-prompt option for VS Code. Deductions: the dependency chain is heavy - a local Chromium browser, Python 3.13+, optional GITHUB_TOKEN - and installation is from a git source rather than a pinned package, first start takes 30-60s to prebuild, and per-client startup timeouts must be tuned by hand (MCP_TIMEOUT, startup_timeout_sec, timeout); there is no one-step installer or version pinning, so setup is manual and somewhat fragile. Given no CI/test evidence, the static setup cap of 15 applies, yielding a middling-to-good score.

Static review · not runListed 2026-09-10

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkControls a browser

Best for

  • Users of AI coding tools who need full discussion/documentation context rather than just URLs
  • Clients that support MCP, such as Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI and Claude Desktop
  • Teams deploying a remote MCP service via Docker and Streamable HTTP
  • Environments that must egress through a proxy (HTTP/SOCKS5)

Not for

  • Users who cannot install a Chromium-based browser on the MCP client machine and mainly need arbitrary-site page_content extraction
  • Users who want to expose the remote HTTP port directly to the public internet (it is unauthenticated and unencrypted by default)
  • Users unwilling to provide any search provider API key

Required permissions

  • Reads a search provider API key from the environment (one of Serper/SerpBase/Tavily/SearXNG/Sofya/You.com)
  • Optional GITHUB_TOKEN (can be read-only and limited to public repositories) for GitHub Issues/Discussions extraction
  • Launches a local headless Chromium browser process to fetch arbitrary web pages
  • Optional outbound network access via proxy env vars (HTTP_PROXY/HTTPS_PROXY/ALL_PROXY) or KINDLY_CHROME_PROXY

Risks and side effects

  • HTTP transports are unauthenticated and unencrypted by default; exposing the port publicly is risky
  • get_content fetches any URL it is given and runs from the server's network location, which can reach internal resources
  • Browser reuse shares cookies, local storage, cache and user-agent state across requests
  • API keys stored in client config files may leak
  • Failed or timed-out fetches may return partial content or an error message

Setup

Before you start

Runtime:Python 3.13+ · Prebuilt binary Chromium-based brows

SERPER_API_KEY optionalsecret Key for the recommended primary search provider (Google results) from serper.dev
SERPBASE_API_KEY optionalsecret Key for the SerpBase search provider, which serves Google results
TAVILY_API_KEY optionalsecret Tavily search API key, used as a fallback after Serper/SerpBase
SOFYA_API_KEY optionalsecret API key for the Sofya search provider
YDC_API_KEY optionalsecret You.com search API key, available at you.com/platform/api-keys
GITHUB_TOKEN optionalsecret GitHub token (read-only public repo access suffices) for LLM-friendly GitHub Issues/Discussions extraction with fewer rate limits
SEARXNG_HEADERS_JSON optionalsecret Custom headers (e.g. auth) for SearXNG, as JSON
Other optional settings (26)
SEARXNG_BASE_URL optional Base URL of a self-hosted SearXNG instance, no API key needed
KINDLY_BROWSER_EXECUTABLE_PATH optional Path to a Chromium-based browser binary; set only if auto-detection fails
KINDLY_CHROME_PROXY optional Proxy for headless Chromium, passed directly to --proxy-server (http/https/socks5/socks4)
KINDLY_CHROME_PROXY_BYPASS optional Comma-separated proxy bypass host list for Chromium
SEARXNG_USER_AGENT optional Custom User-Agent for SearXNG requests
HTTP_PROXY optional
HTTPS_PROXY optional
ALL_PROXY optional
KINDLY_MARKDOWN_SUFFIX_HOSTS optional
KINDLY_MARKDOWN_ACCEPT_PROBE optional
KINDLY_TOOL_TOTAL_TIMEOUT_SECONDS optional Total time budget per web_search / get_content call, default 120s
KINDLY_TOOL_TOTAL_TIMEOUT_MAX_SECONDS optional Cap for the above, default 600s
KINDLY_WEB_SEARCH_MAX_CONCURRENCY optional Max parallel content fetches, default 3 (clamped 1..5)
KINDLY_NODRIVER_REUSE_BROWSER optional
KINDLY_NODRIVER_BROWSER_POOL_SIZE optional
KINDLY_NODRIVER_ACQUIRE_TIMEOUT_SECONDS optional
KINDLY_NODRIVER_PORT_RANGE optional
KINDLY_NODRIVER_RETRY_ATTEMPTS optional
KINDLY_NODRIVER_DEVTOOLS_READY_TIMEOUT_SECONDS optional
KINDLY_HTML_TOTAL_TIMEOUT_SECONDS optional
KINDLY_DIAGNOSTICS optional Set to 1 to emit JSON-line diagnostics to stderr and include diagnostics in tool responses
FASTMCP_ALLOWED_HOSTS optional Comma-separated allowed Host headers for HTTP transport, replacing loopback defaults
FASTMCP_ALLOWED_ORIGINS optional
FASTMCP_HOST optional
FASTMCP_PORT optional
FASTMCP_TRANSPORT optional

1) Install uvx (curl script on macOS/Linux, PowerShell script on Windows). 2) Install a Chromium-based browser (Chrome/Chromium/Edge/Brave) for page_content extraction; specialized sources still work without it. 3) Set at least one search provider key: SERPER_API_KEY, SERPBASE_API_KEY, TAVILY_API_KEY, SEARXNG_BASE_URL, SOFYA_API_KEY or YDC_API_KEY. 4) A read-only GITHUB_TOKEN is highly recommended for better GitHub Issue extraction. 5) Configure your MCP client with the run command: uvx --from git+https://github.com/Shelpuk-AI-Technology-Consulting/kindly-web-search-mcp-server kindly-web-search-mcp-server start-mcp-server. The first run may take 30-60 seconds to build the environment; prewarm it in a terminal if your client times out.

.mcp.json
{
  "mcpServers": {
    "kindly-web-search": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/Shelpuk-AI-Technology-Consulting/kindly-web-search-mcp-server",
        "kindly-web-search-mcp-server",
        "start-mcp-server"
      ],
      "env": {
        "SERPER_API_KEY": "${SERPER_API_KEY}",
        "TAVILY_API_KEY": "${TAVILY_API_KEY}",
        "SEARXNG_BASE_URL": "${SEARXNG_BASE_URL}",
        "GITHUB_TOKEN": "${GITHUB_TOKEN}",
        "KINDLY_BROWSER_EXECUTABLE_PATH": "${KINDLY_BROWSER_EXECUTABLE_PATH}"
      }
    }
  }
}

Shown for Claude Code. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "kindly-web-search": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/Shelpuk-AI-Technology-Consulting/kindly-web-search-mcp-server",
        "kindly-web-search-mcp-server",
        "start-mcp-server"
      ],
      "env": {
        "SERPER_API_KEY": "${SERPER_API_KEY}",
        "TAVILY_API_KEY": "${TAVILY_API_KEY}",
        "SEARXNG_BASE_URL": "${SEARXNG_BASE_URL}",
        "GITHUB_TOKEN": "${GITHUB_TOKEN}",
        "KINDLY_BROWSER_EXECUTABLE_PATH": "${KINDLY_BROWSER_EXECUTABLE_PATH}"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add kindly-web-search -e 'SERPER_API_KEY=${SERPER_API_KEY}' -e 'TAVILY_API_KEY=${TAVILY_API_KEY}' -e 'SEARXNG_BASE_URL=${SEARXNG_BASE_URL}' -e 'GITHUB_TOKEN=${GITHUB_TOKEN}' -e 'KINDLY_BROWSER_EXECUTABLE_PATH=${KINDLY_BROWSER_EXECUTABLE_PATH}' -- uvx --from git+https://github.com/Shelpuk-AI-Technology-Consulting/kindly-web-search-mcp-server kindly-web-search-mcp-server start-mcp-server

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Check that the web_search and get_content tools appear in your MCP client's tool list; then prompt 'Search for uvx usage and return the page content' — a response with title, link, and page_content confirms the install works.

Troubleshooting

  1. No browser executable found: install Chrome/Chromium/Edge and set KINDLY_BROWSER_EXECUTABLE_PATH
  2. Failed to connect to browser: raise KINDLY_NODRIVER_RETRY_ATTEMPTS, KINDLY_NODRIVER_DEVTOOLS_READY_TIMEOUT_SECONDS and KINDLY_HTML_TOTAL_TIMEOUT_SECONDS, and set NO_PROXY=localhost,127.0.0.1
  3. page_content shows TimeoutError: increase KINDLY_TOOL_TOTAL_TIMEOUT_SECONDS and KINDLY_TOOL_TOTAL_TIMEOUT_MAX_SECONDS, optionally set KINDLY_WEB_SEARCH_MAX_CONCURRENCY=1
  4. HTTP deployment returns 421/403: widen the allowlists with FASTMCP_ALLOWED_HOSTS and FASTMCP_ALLOWED_ORIGINS
  5. web_search fails with no provider key: set at least one search provider environment variable

Things to try

Once connected, you can ask your AI assistant things like:

  • Search StackOverflow for GCP Cloud Batch GPU instance template failures and return the top upvoted answers
  • Fetch the full conversation of GitHub issue https://github.com/oraios/serena/issues/1 including comments and reactions
  • Get the content of the arXiv paper https://arxiv.org/abs/1706.03762 and summarize its method
  • Use web_search to look up the latest Serper API usage and return the page content in Markdown

Tools 2

web_search read-only
Takes a query and num_results (default 3) and returns title, link, snippet and best-effort Markdown page_content, with per-result diagnostics when diagnostics are enabled.
get_content read-only
Takes a URL and returns best-effort Markdown page_content, with top-level diagnostics when diagnostics are enabled.

Use cases

An AI coding assistant retrieving the full StackOverflow thread and answers when debugging a complex error
Fetching GitHub Issue/Discussion bodies, comments and reactions in a single agent call
Pulling arXiv paper content and Wikipedia entries for research-oriented tasks
Supplementing coding tasks with up-to-date API and package documentation
Running searches through a self-hosted SearXNG instance in restricted environments

Supported clients

Claude Code
Codex
Gemini CLI
Claude Desktop
Cursor
OpenClaw
Antigravity
VS Code

Listed from the project's documentation, not tested by this site.

Overview

Kindly Web Search MCP Server is part of the Shelpuk AI Technology Consulting agentic suite and provides web search plus robust content retrieval for AI coding tools (Claude Code, Codex, Cursor, GitHub Copilot, Gemini, etc.) and AI agents (Claude Desktop, OpenClaw, Hermes, etc.). Rather than returning only titles, links and snippets, it retrieves the full conversation — questions, answers, comments, reactions and metadata — and integrates directly with the StackExchange, GitHub Issues, GitHub Discussions, Wikipedia and arXiv APIs, while any other URL is parsed in real time with a local headless Chromium browser. Search supports Serper, SerpBase, Tavily, SearXNG, Sofya and You.com with priority-based fallback. It targets AI coding and agent workflows that want usable context in a single call instead of an extra scraping round trip.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision 72a3e059bbdd Data synced 2026-10-19 Read the FMRS scoring method