Server data from the Official MCP Registry
Keyless web access for AI agents: read bot-walled pages as Markdown, search, grab assets
Keyless web access for AI agents: read bot-walled pages as Markdown, search, grab assets
searchts is a well-intentioned web-scraping and search tool with mostly sound architecture, but has several moderate security concerns that users should be aware of. The primary issues are: (1) unauthenticated network access to arbitrary URLs without strict validation, (2) browser automation and stealth techniques that could facilitate scraping against terms of service, (3) broad subprocess execution for installing system dependencies, and (4) potential credential exposure through environment variables and cookies. The codebase shows good security practices in some areas (input handling, no hardcoded secrets in code itself), but the nature of the tool's purpose—bypassing bot detection systems—creates inherent risks around abuse and terms-of-service violations. Supply chain analysis found 11 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.
3 files analyzed · 20 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-capad-xyz-searchts": {
"args": [
"searchts"
],
"command": "uvx"
}
}
}From the project's GitHub README.
The missing layer between AI and the web. A Python CLI and library that lets an AI agent read and search the internet, fronted by a fully open-source "unlocker" that gets through common bot-walls with no paid proxy and no API key.
AI agents constantly need to read web pages, but the naive way they fetch is trivially blocked by modern anti-bot systems (Cloudflare, PerimeterX, DataDome). Paid unlocker services solve this, but the thing they really charge for is a large pool of clean residential IP addresses. searchts runs on your own machine, from your own connection, at personal volume, so it sidesteps that cost and gets through most of those walls for free.
searchts reads any URL through an escalating ladder and stops at the first tier that returns real content:
If every tier is defeated by an interactive CAPTCHA, an optional human-in-the-loop step opens a real browser so you can solve it once and continue. Block detection is phrase-based (not vendor-name based), so legitimate pages that merely embed a bot-sensor script are not falsely rejected. Content is extracted to clean Markdown with trafilatura.
pipx install searchts # recommended: global, isolated CLI
# or
pip install searchts
# optional extras
pip install "searchts[browser]" && patchright install chromium # stealth-browser tier
pip install "searchts[mcp]" # MCP server for agents
searchts read https://example.com # fetch any page as clean Markdown
searchts search "open source vector db" # multi-provider web search (keyless by default)
searchts transcribe https://youtu.be/... # transcript of a YouTube/TikTok/Instagram/Reddit video
searchts grab https://example.com # download a page's assets + extract palette/fonts
searchts get https://example.com/logo.png # download one asset (image/PDF/font/file)
searchts doctor # see what is configured and working
read flags: --json, --backend <tier>, --human (CAPTCHA handoff), --scrub (redact injection).
search flags: -n <count>, --json, --provider <name>. Content goes to stdout (pipeable); status to stderr.
grab flags: --out <dir>, --kinds <images,icons,css,fonts,svg>, --read (also save page.md), --max <n>, --json.
Add searchts to your agent in one line - as an MCP server, or as a Claude Code slash command:
Two ways, both one command:
# 1) MCP: gives the agent always-on read_url + web_search + fetch_asset + grab_site + get_status tools
pip install "searchts[mcp]"
searchts mcp install # prints the wiring, e.g. for Claude Code:
# claude mcp add searchts -- searchts mcp serve
# 2) Slash command: type /searchts <url-or-query> in Claude Code
searchts skill install # writes ~/.claude/commands/searchts.md
See the MCP server reference for all five tools (read_url, web_search, fetch_asset, grab_site, get_status), their inputs and outputs, and when to use each.
searchts grab <url> downloads a page's images/icons/css/fonts and extracts a color palette plus the fonts in use; searchts get <url> pulls a single asset. Both go through the same escalating unlock ladder, so they work on fingerprint-gated CDNs, not just open ones.SEARCHTS_NO_MEMORY=1 to disable).read_url, web_search, fetch_asset, grab_site, get_status), and a Python library.from searchts import unlocker
r = unlocker.fetch("https://example.com")
print(r.backend, r.status, r.text)
from searchts.search import search
for hit in search("open source vector db", max_results=5):
print(hit.title, hit.url)
Rather than take our word for it, searchts ships a reproducible benchmark: it runs the unlocker over a set of (often bot-walled) pages and reports how many it read — keyless — and which tier carried each.
python -m benchmarks.run # print a scorecard
python -m benchmarks.run --out docs/ # write docs/scorecard.md + results.json
Latest run: docs/scorecard.md. Add your own targets — see benchmarks/README.md.
The numbers only mean something from a residential connection: a datacenter IP (or a VPN that reshapes your TLS fingerprint) blocks the fast curl_cffi tier more than a real user sees.
--human for those.Search works with no keys (DuckDuckGo). Everything else is optional, via searchts configure or a .env (see .env.example):
SEARXNG_URL, for more and better results.ffmpeg and yt-dlp.Run searchts doctor to check what is configured and working.
The core is read / search / transcribe, and for most reads you can just
searchts read <the-url> on the public page. As an optional extra, if you have
separately-installed platform CLIs (gh, twitter-cli, opencli, mcporter),
searchts can also reach GitHub, Twitter/X, Reddit, and LinkedIn through them, and
searchts doctor will report which are present. These are add-ons, not the core.
See ROADMAP.md for where searchts is headed — and what's deliberately out of scope.
searchts builds on and extends Agent-Reach (MIT), reusing its channel, installer, and diagnostics architecture. The escalating open-source unlocker, multi-provider search with rank fusion, prompt-injection scrubbing, per-domain backend memory, the human-in-the-loop CAPTCHA flow, the video transcript channels, the read_url / web_search MCP tools, and the read / search CLI commands are additions in searchts. Thanks to the original authors.
MIT. See LICENSE. Original portions Copyright (c) 2025 Agent Eyes; modifications and additions Copyright (c) 2026 capad-xyz.
Built by capad. Questions or feedback: open an issue or email oss@capad.fyi.
Fun fact: "searchts" doesn't officially abbreviate anything. Off the record, it stands for "search this shit".
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.