PyScrappy MCP server
Web-scraping toolkit with 22 tools for structured web data as JSON for AI agents.
256 stars225 downloads/wk
Reviews
Write oneNobody has reviewed PyScrappy yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
PyScrappy tools (24, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
convert_currencyFetch live exchange rates and convert an amount from one currency to others.
define_wordLook up an English word and return its dictionary entry: definitions, part(s) of speech, and example sentences.
get_cryptoFetch live cryptocurrency market data and return a list of coin records, each with fields: id, symbol, name, current price (in vs_currency), market cap, and 24h price change (percent).
get_ubereats_menuFetch an Uber Eats restaurant's live menu from its store URL and return the menu items with their names, descriptions, and prices.
get_weatherFetch the current weather conditions for a named place and return a dict with keys: temperature (number, degrees Celsius), humidity (number, percent), wind_speed (number, wind speed), condition (str, e.g. "Clear", "Rain"), and location (str, the resolved place name).
list_available_scrapersList every scraper registered with this server and return their names for use with scrape_with.
lookup_movieLook up movie and TV data from IMDB via the OMDb API and return a JSON-serializable dict; a title search returns {"results": [...]} with each item holding title, year, imdb_id, and type, while an IMDB-id lookup returns a single record with full details (plot, ratings, cast, runtime, genre).
scrape_newsFetch news articles from an RSS/Atom feed, a news site (feed auto-discovered), or a single article, and return a list of article dicts (typically: title, url, published date, author, summary, and full text where available).
scrape_stockFetch stock market data from Yahoo Finance and return it as a dict.
scrape_urlScrape any HTTP(S) URL and return a ScrapeToolResult whose `data` holds one object per page containing extracted text (with word_count), links, images, tables, and page metadata.
scrape_wikipediaFetch a Wikipedia article by title or search term and return its text content.
scrape_withwrite actionRun any registered scraper (built-in or plugin) by name and return that scraper's raw scrape() output.
scrape_zomatoSearch Zomato for restaurants in a city and return a list of restaurant records.
search_amazonScrape Amazon search results for a query and return a list of matching products, each with its title, price, rating, and image URL.
search_booksSearch books by title, author, or free text via the Open Library search API and return a list of matching book records.
search_githubSearch GitHub for public repositories and return a list of repository records.
search_hackernewsSearch Hacker News stories and return a list of matching story dicts, each with title, url, points, author (username), and num_comments (comment count).
search_ikeaSearch IKEA's online catalog for furniture and home products, returning a list of product dicts with fields name, type, price, and rating.
search_imagesSearch the web for images and return a list of result objects with image URLs and metadata.
search_linkedin_jobsSearch LinkedIn public job postings and return a list of matched jobs.
search_neweggSearch Newegg for electronics and computer hardware, returning a list of product dicts each with title, price, product_url, image_url, rating, and item_number.
search_soundcloudSearch SoundCloud for tracks and return a list of track dicts, each with keys: title (str), artist (str), plays (int), likes (int), and url (str, the track page URL).
search_ubereatsSearch Uber Eats for restaurants delivering in a given city, returning a ScrapeToolResult envelope whose `data` is a list of restaurant objects (typically `name`, `eta`, delivery `fee`, and store `url`).
search_youtubeSearch YouTube for videos matching a query and return a list of matching videos with their metadata.
Public scan report
scanner v0.1.9 · 2026-09-21 · same rubric, same numbers if you re-run it
- Code scan57 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 13 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
What the publisher says
From the PyScrappy repository's README, as published. We do not edit it. Read it on GitHub
Adaptive Python web scraping toolkit (self-healing, stealth)+ MCP server for AI agents
<!-- mcp-name: io.github.mldsveda/pyscrappy -->
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
Key features
- Generic scraper — give it any URL, get back structured text, links, images, tables, and metadata
- LLM-ready output — .tomarkdown() turns any result into clean Markdown; also .tojson() and .to_dataframe()
- MCP server — expose the scrapers as tools for AI agents (Claude, Cursor, local LLMs, …)
- JS rendering — optional Playwright backend for JavaScript-heavy sites
- Custom selectors — pass CSS selectors to extract exactly what you need
- Chainable Selector — navigate HTML directly with CSS/XPath, findall, findbytext, and findsimilar (Scrapy/BeautifulSoup-style)
- Adaptive (self-healing) selectors — remember an element and relocate it by similarity when a site changes its markup, so scrapers don't silently break
- Concurrent scraping — scrapemany / scrapeall run scrapes in parallel
- Sitemap crawling — enumerate and scrape a whole site from its sitemap.xml (index + gzip aware)
- Proxy & scraping-API support — route through a proxy or ScraperAPI/ScrapeOps for blocked sites
- TLS-fingerprint impersonation — impersonate="chrome" gets past anti-bot filters that block plain clients (optional curl_cffi backend)
- Command-line extract — pyscrappy extract out.md scrapes a URL straight to a file, no code
Installation
pip install pyscrappyOptional extras:
# Browser support (for JS-rendered pages)
pip install 'pyscrappy[browser]'
playwright install chromium
# DataFrame support
pip install 'pyscrappy[dataframe]'
# MCP server (use PyScrappy's scrapers as AI-agent tools)
pip install 'pyscrappy[mcp]'
# Stealth (TLS-fingerprint impersonation to bypass anti-bot filters)
pip install 'pyscrappy[stealth]'
# Parquet / Excel export (ScrapeResult.to_parquet() / .to_excel())
pip install 'pyscrappy[parquet]'
pip install 'pyscrappy[excel]'
# Everything
pip install 'pyscrappy[all]'For AI agents
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:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
claude mcp add pyscrappy -- uvx pyscrappy
PyScrappy: common questions
- Is PyScrappy MCP server safe?
- Mostly: it is graded B (83/100). Read the PyScrappy safety report
- How do I install PyScrappy?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does PyScrappy need an API key?
- Yes. The registry entry asks for
OMDB_API_KEY. - Is PyScrappy maintained?
- The last commit was 13 days ago (2026-09-08). The latest release is v1.5.9.