Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者による説明(英語の原文)
Web-scraping toolkit with 22 tools for structured web data as JSON for AI agents.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
OMDB_API_KEY「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"pyscrappy": {
"command": "uvx",
"args": [
"pyscrappy"
],
"env": {
"OMDB_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add pyscrappy --env OMDB_API_KEY=your-value -- uvx pyscrappy動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"pyscrappy": {
"command": "uvx",
"args": [
"pyscrappy"
],
"env": {
"OMDB_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"pyscrappy": {
"type": "stdio",
"command": "uvx",
"args": [
"pyscrappy"
],
"env": {
"OMDB_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント mldsveda で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:OMDB_API_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.5.9)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Browser Use, Chrome DevTools MCP, MCP Server Browser
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
MCP server for Chrome DevTools
MCP server for browser use access
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Adaptive Python web scraping toolkit (self-healing, stealth)
PyScrappy is an AI-native web scraping toolkit that turns websites into structured, LLM-ready data. Use it as a Python library or expose it as an MCP server for AI agents.
📖 Documentation: pyscrappy.vercel.app
.to_markdown() turns any result into clean Markdown; also .to_json() and .to_dataframe()find_all, find_by_text, and find_similar (Scrapy/BeautifulSoup-style)scrape_many / scrape_all run scrapes in parallelsitemap.xml (index + gzip aware)impersonate="chrome" gets past anti-bot filters that block plain clients (optional curl_cffi backend)pyscrappy extract out.md scrapes a URL straight to a file, no codepy.typed markerpip install pyscrappy
Optional extras:
# Browser support (for JS-rendered pages)
pip install 'pyscrappy[browser]' playwright install chromium
pip install 'pyscrappy[dataframe]'
pip install 'pyscrappy[mcp]'
pip install 'pyscrappy[stealth]'
pip install 'pyscrappy[parquet]' pip install 'pyscrappy[excel]'
pip install 'pyscrappy[all]'
PyScrappy ships an MCP server that exposes its scrapers as tools, so an agent (Claude, Cursor, an OpenAI agent, a local LLM) can pull structured web data from any URL and hand it straight to the model:
AI agent ──MCP tool call──▶ PyScrappy ──fetch + extract──▶ Any website
▲ │ └────────────── clean Markdown / JSON ◀───────────────────────┘
pip install 'pyscrappy[mcp]'
claude mcp add pyscrappy pyscrappy-mcp
Then just ask: *"use pyscrappy to summarize the latest headlines from bbc.com."* See MCP server for the full setup and tool list.
Ollama can't talk MCP on its own, so normally you'd run a host (Goose, Cline, …) in between. PyScrappy skips that with a built-in agent that talks to Ollama directly and lets a local model call the scrapers as tools:
pip install 'pyscrappy[mcp]' # needs Python 3.10+
pyscrappy chat --model qwen2.5 "what's the current AAPL quote?"
It exposes the same 22 tools as the MCP server. The only requirement is a model that supports tool calling (Llama 3.1, Qwen 2.5, Mistral, …); how well it *picks* the right tool is up to the model. Point it at a remote Ollama with --host, and pass -v to see each tool call.
PyScrappy ships an optional Model Context Protocol server, so an AI agent (e.g. Claude) can call PyScrappy's scrapers as tools and get structured web data back.
pip install 'pyscrappy[mcp]'
The MCP extra installs the standalone fastmcp package and requires Python 3.10 or newer. On Python 3.9 the core scraping library still works, but the MCP server is unavailable.
This installs the pyscrappy-mcp command. It uses stdio by default for local MCP clients; Streamable HTTP and legacy SSE are available for remote deployments:
pyscrappy-mcp # stdio (default)
pyscrappy-mcp --http # Streamable HTTP pyscrappy-mcp --sse # legacy SSE
You can also run the stdio server with python -m pyscrappy.mcp.
claude mcp add pyscrappy pyscrappy-mcp
Add to your claude_desktop_config.json and restart the app:
{
"mcpServers": { "pyscrappy": { "command": "pyscrappy-mcp" } } }
Tip: Claude Desktop does not inherit your shell
PATH. Ifpyscrappy-mcp
is not found, use the absolute path to the command (e.g. the one printed by
which pyscrappy-mcp).
The server exposes 20+ tools. The most common ones are `scrape_url` (any URL → text, links, images, tables, metadata), `scrape_wikipedia`, `scrape_stock`, `scrape_news`, and `search_github` — plus many more covering image/YouTube/LinkedIn/Hacker News/book search, weather, crypto, currency, dictionary, Amazon/Newegg/IKEA/SoundCloud, IMDB, and Zomato/Uber Eats.
To see the full, live list, ask the agent to call the `list_available_scrapers` tool, or from a shell:
python -c "from pyscrappy import list_scrapers; print(', '.join(sorted(list_scrapers())))"
The lookup_movie tool needs a free OMDb API key. Pass it to the server through your MCP client config, e.g. for Claude Desktop:
{
"mcpServers": { "pyscrappy": { "command": "pyscrappy-mcp", "env": { "OMDB_API_KEY": "your-key" } } } }
Once registered, just ask the agent naturally, e.g. *"use pyscrappy to get the latest headlines from bbc.co.uk and the AAPL stock quote."*
PyScrappy ships 24 built-in scrapers, and every one that works without a proxy is also exposed as an MCP tool.
A few of them:
NeweggScraper, IKEAScraper…and many more. To see the full, live list:
python -c "from pyscrappy import list_scrapers; print(', '.join(sorted(list_scrapers())))"
`IMDBScraper` (lookup_movie) is the one exception that needs a key — a free OMDb OMDB_API_KEY (see the MCP config above for how to pass it).
PyScrappy is extensible: you can add your own scrapers, and third parties can ship them as standalone pyscrappy- packages. A registered scraper works everywhere a built-in does, including the MCP server and the pyscrappy chat agent, with no change to PyScrappy core.
In your own code — register with the decorator:
from pyscrappy import BaseScraper, register_scraper, get_scraper
from pyscrappy.core.models import ScrapeResult, ScrapeMetadata
@register_scraper("reddit") class RedditScraper(BaseScraper): def scrape(self, subreddit: str, **kwargs) -> ScrapeResult: data = self.fetch_and_parse(f"https://old.reddit.com/r/{subreddit}/.json")
return ScrapeResult(data=[...], metadata=ScrapeMetadata(scraper="reddit"))
get_scraper("reddit")().scrape(subreddit="python")
As a distributable package — advertise an entry point in your pyproject.toml, and PyScrappy discovers it once your package is installed:
[project.entry-points."pyscrappy.scrapers"]
reddit = "pyscrappy_reddit:RedditScraper"
After pip install pyscrappy-reddit, the scraper shows up in list_scrapers(), and an AI agent can call it via the scrape_with MCP tool — no core change required.
First-class MCP tools (optional). Add an mcp_tools mapping and your scraper becomes a dedicated, typed MCP tool instead of only being reachable through the generic scrape_with — its schema is derived from the method signature, so agents get proper named arguments:
@register_scraper("reddit")
class RedditScraper(BaseScraper): mcp_tools = {"search_reddit": "scrape"} # tool name -> method
def scrape(self, subreddit: str, sort: str = "hot") -> ScrapeResult: ...
See the plugin template for a complete, copyable starting point, and the plugin guide for the full walkthrough.
from pyscrappy import scrape
result = scrape("https://en.wikipedia.org/wiki/Web_scraping")
print(result.to_markdown()) # feed straight to an LLM
result.save("out.json") # .json .csv .md .ndjson .yaml .parquet .xlsx
Prefer raw fields? Every result is a ScrapeResult with .data (a list of dicts):
print(result.data[0]["metadata"]["title"])
print(result.data0["word_count"])
from pyscrappy import GenericScraper
with GenericScraper() as gs: result = gs.scrape( url="https://news.ycombinator.com", selectors={"title": ".titleline a", "score": ".score"}, ) for item in result.data: print(item["title"], item.get("score", ""))
SelectorWhen you want to traverse markup directly (Scrapy/BeautifulSoup-style) rather than get back structured dicts, use Selector:
from pyscrappy import Selector
page = Selector(html) # or navigate any HTML string page.css(".title::text").getall() # CSS with ::text / ::attr(
冒頭だけを表示しています。続きはリポジトリで読めます