PyScrappy
Web-scraping toolkit with 22 tools for structured web data as JSON for AI agents.
Connector by mldsveda · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mldsveda-pyscrappy
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: web-scraping, web-search
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 22 read · 1 write · 0 delete · 1 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 24
Read from the source code; the running server may list different tools.
Read 22 · Look things up without changing anything.
convert_currencydefine_wordget_cryptoget_ubereats_menuget_weatherlist_available_scraperslookup_moviescrape_newsscrape_stockscrape_wikipediascrape_zomatosearch_amazon
Show 10 more tools
search_bookssearch_githubsearch_hackernewssearch_ikeasearch_imagessearch_linkedin_jobssearch_neweggsearch_soundcloudsearch_ubereatssearch_youtube
Write 1 · Create, change, send or run things.
scrape_with
Not yet classified 1 · We could not tell from the name and description.
scrape_url
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
OMDB_API_KEY
Files it touches
- Any path the agent passes to its tools
Tools (24)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
convert_currencyFetch live exchange rates and convert an amount from one currency to others. Returns a dict with the base currency, the amount converted, and a mapping of each target currency code to its converted value and unit exchange rate (e.g. {"base": "USD", "amount": 100, "results": {"EUR": {"rate": 0.92, "value": 92.0}}}). Behavior: Queries a live external exchange-rate API over the network, so results reflect current market rates and require internet access. No local state is read or written. If a requested target code is unknown or unsupported, it is omitted from "results"; if none of the targ…
define_wordLook up an English word and return its dictionary entry: definitions, part(s) of speech, and example sentences. Fetches from an online dictionary data source, so a network connection is required. Read-only with no side effects. If the word is not found (misspelled or not in the dictionary), returns an empty result or a not-found response rather than raising. Returns a structured entry for the word, typically containing the word itself, one or more part-of-speech groupings, and for each a list of definitions with optional example sentences. Args: word: The English word to define, as a st…
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). Fetches from a live crypto market data API over the network, so results reflect current prices and require internet access; no local state is read or written. When query is omitted, returns the top coins ranked by market cap. If no coins match the query, returns an empty list rather than raising. Args: query: String of comma-separated coin ids. Example: "bitcoin, ethereum". Default None (returns top coins …
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. Scrapes the restaurant page over the network at call time, so results reflect current listings and require internet access. Prices and availability depend on the store's configured location and hours. Returns a structured list of menu items (typically grouped by section/category); if the URL is invalid, the restaurant is unavailable, or the menu is empty, an empty result (no items) is returned rather than an error. Args: store_url: URL string of the Uber Eats…
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). Makes a live network call to an external weather provider on each invocation, so results reflect real-time conditions and require internet access. If the location cannot be resolved or the provider returns no match, the tool returns an empty result (or an error field) rather than raising. Args: location: String naming the pl…
list_available_scrapersList every scraper registered with this server and return their names for use with scrape_with. Reads the server's in-process scraper registry, which includes built-in scrapers plus any installed third-party pyscrappy-* plugin packages that self-register on import. No network or browser access is performed and no state is changed. If no scrapers are registered, returns an empty list. Returns: list[str]: Scraper name identifiers (for example ["amazon", "flipkart", "youtube"]), each usable as the scraper argument to scrape_with. Empty list when none are registered. Usage Guidelines: C…
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). Reads over the network from the OMDb HTTP API; no browser is needed and nothing is written or cached. Requires a free OMDb API key in the OMDB_API_KEY environment variable (get one at https://www.omdbapi.com/apikey.aspx); if it is missing the tool returns {"error": ...} explaining how to set it. When the q…
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). Provide exactly one of feed_url, site_url, or article_url. Fetches live content over the network at call time; results are not cached. article_url returns one article; feed_url and site_url return up to max_articles. Returns an empty list if the feed/site yields no articles or if a feed cannot be discovered or parsed. Args: feed_url: String, direct URL to an RSS/Atom …
scrape_stockFetch stock market data from Yahoo Finance and return it as a dict. The returned shape depends on `mode`: - "quote": {"symbol", "currency", "exchange", "price", "previous_close", "volume", "day_high", "day_low", "fifty_two_week_high", "fifty_two_week_low"}. - "history": {"symbol", "period", "rows": [{"date", "open", "high", "low", "close", "volume"}, ...]}. - "profile": {"symbol", "name", "currency", "exchange", "market", "timezone", "instrument_type"}. Behavior: Makes a live network request to Yahoo Finance on each call; no browser is required and nothing is cached or persis…
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. Fetches the page over the network and parses the HTML; no data is stored or mutated. By default it makes a plain static HTTP request, so pages built client-side with JavaScript come back nearly empty. When that is detected, the returned `errors` list gets a hint to retry with render_js=true; set render_js=true to render with a headless browser instead (requires the pyscrappy[browser] extra). On empty or failed result…
scrape_wikipediaFetch a Wikipedia article by title or search term and return its text content. Makes a live network request to Wikipedia, resolving the query to the best-matching article and extracting its body. The shape of the returned text depends on `mode`: "full" returns the entire article as one string; "paragraphs" returns the article split into a list of paragraph strings; "headers" returns a list of the article's section heading strings (its table of contents). If no article matches the query, an empty result is returned (empty string for "full", empty list for "paragraphs" or "headers"). Args: …
scrape_withRun any registered scraper (built-in or plugin) by name and return that scraper's raw scrape() output. This is the generic dispatch entry point for scrapers that lack a dedicated tool, notably third-party plugins. It looks up the scraper in the registry, calls its scrape() method with the given args, and returns whatever that scraper returns (typically a dict or list of records; exact shape is scraper-specific). Side effects and requirements (network requests, browser/headless rendering, auth) depend entirely on the target scraper. If name is not a registered scraper, it raises an error rathe…
scrape_zomatoSearch Zomato for restaurants in a city and return a list of restaurant records. Scrapes Zomato's public restaurant listings over the network for the given city, optionally filtered by a cuisine or name term. Each result is a dict with fields such as name, cuisine, rating, price_for_two, address, and url; the exact keys depend on what Zomato exposes for each listing. Returns a list of these dicts ordered as Zomato ranks them, capped at max_results. Returns an empty list if the city is unknown or no restaurants match the query. Requires outbound network access; results reflect live Zomato data…
search_amazonScrape Amazon search results for a query and return a list of matching products, each with its title, price, rating, and image URL. This performs a live network scrape of Amazon's public search results pages (no login, no API key). It has no side effects beyond outgoing HTTP requests. Results reflect Amazon's current listings and may vary by region, availability, and anti-bot throttling. Returns a list of dicts, one per product, each shaped as {"title": str, "price": str, "rating": str, "image": str}; fields that Amazon omits for a listing come back as empty strings or None. Returns an empty …
search_booksSearch books by title, author, or free text via the Open Library search API and return a list of matching book records. Queries Open Library over the network (no browser or authentication required). Returns a list of dicts, each typically containing: title (str), author_names (list of str), first_publish_year (int or None), edition_count (int), and the Open Library work key (str, e.g. "/works/OL45804W"). Fields missing upstream are omitted or None. Returns an empty list when the query matches nothing. Read-only: no local files or state are modified. Args: query: Title, author, or free-te…
Show 9 more tools
search_githubSearch GitHub for public repositories and return a list of repository records. Queries the GitHub search API over the network and returns a list of dicts, each with: name (str), owner (str), stars (int), description (str), and language (str). Results are ordered per the sort argument. Returns an empty list when no repository matches the query. Requires network access; may be subject to GitHub API rate limits. Args: query: String search expression using GitHub search syntax, including qualifiers like "language:" or "stars:". Example: "web scraping language:python". No default (required). …
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). Queries the public Hacker News search index (Algolia HN API) over the network; makes no local changes. Returns an empty list when nothing matches or the query is empty. Args: query: Search terms to match against story titles and text; type: string; example: "rust async runtime"; no default (required). max_results: Maximum number of stories to return; type: integer; example: 10; default: 20. by: Result ordering; type: string; one …
search_ikeaSearch IKEA's online catalog for furniture and home products, returning a list of product dicts with fields name, type, price, and rating. Scrapes the IKEA store website for the given country at call time, so results require network access and reflect that store's live listings. Prices, availability, and currency are per-country and per-language. Returns an empty list if the query matches no products. Args: query: String search term for the product name or type, e.g. "desk" or "bookshelf". Required, no default. max_results: Integer cap on the number of products returned; e.g. 10. Def…
search_imagesSearch the web for images and return a list of result objects with image URLs and metadata. Each result is a dict with keys: "url" (direct link to the image), "thumbnail" (small preview), "title" (caption or alt text), "source_page" (page the image was found on), "width", and "height" (pixels). Every engine returns this same key set; fields a given engine can't provide are empty ("" for text, null for width/height — e.g. the Google path fills only "url", "title", and "source_page"). Results are returned in the engine's relevance order. Behavior: Issues a live query to the chosen search e…
search_linkedin_jobsSearch LinkedIn public job postings and return a list of matched jobs. Scrapes LinkedIn's public job search results over the network (no login required) and returns a list of dicts, one per posting, typically with keys: title, company, location, url, and posted_date. Returns an empty list if no postings match or the query yields no results. Live web scraping, so results reflect LinkedIn at call time and may vary between runs. Args: query: Job title or keywords as a string. Example: "machine learning engineer". No default (required). location: Location filter as a string; city, region…
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. Live-scrapes Newegg search result pages over the network; requires outbound internet access and returns an empty list if no products match or the page structure cannot be parsed. Read-only, with no side effects beyond the outbound HTTP requests. Args: query: Product search terms, given as a string. Example: "graphics card". No default (required). max_pages: Number of result pages to scrape, given as an integer; higher values r…
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). Renders SoundCloud's JavaScript search results with a browser backend (Playwright/Selenium), so it requires the pyscrappy[browser] extra to be installed and launches a headless browser per call. This makes it slower and heavier than the HTTP-based search tools. Results reflect SoundCloud's live public search at call time; no login or API key is used. Returns an empty list if the query matches no tracks. Args: query: Search …
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`). Fetches live listings from Uber Eats over the network at call time; no API key is required. The `data` list is capped at `max_results` and each item's store `url` is the input for `get_ubereats_menu`. Alongside `data`, the envelope carries `count`, `scraper`, `source_urls`, and `errors` (non-fatal issues, each with a `url` and `message`). If the city is unrecognized or no restaurants are foun…
search_youtubeSearch YouTube for videos matching a query and return a list of matching videos with their metadata. Performs a live YouTube search over the network, so results reflect current YouTube data and may vary between calls; it is read-only and has no side effects. Returns a list of video objects, each typically containing: title (str), channel (str), url/link (str) to the video, video_id (str), duration (str), view_count (int), and published/upload date (str). Returns an empty list when the query matches no videos. Args: query: The search text, as a string. Example: "model context protocol tut…
Compare and alternatives
Featured in
Signals
- Stars
- 263
- Forks
- 82
- Open issues
- 1
- Contributors
- 35
- Weekly downloads
- 127
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Sep 25, 2026 (1 month ago)
- Last package publish
- Sep 25, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.mldsveda/pyscrappy- Version
- 1.5.9
- Auth
- API key
- Packages
- pypi pyscrappy
- License
- MIT
- Repository
- github.com/mldsveda/PyScrappy
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
PyScrappy MCP server. Agent Mart. https://agentmart.dev/connectors/mldsveda-pyscrappy (last updated 2026-10-24)