{"name":"io.github.Ozymandias-Owens-2/scrapewright","slug":"ozymandias-owens-2-scrapewright","title":"scrapewright","description":"Give it a URL, get structured rows. A model writes the parser once; replays are free.","url":"https://mcp.market/server/ozymandias-owens-2-scrapewright","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":35,"stars":1,"forks":0,"downloads_week":82,"last_push_at":"2026-10-16T01:49:31.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-05T08:15:42.940Z","last_ok_at":"2026-11-05T08:15:42.940Z","latency_ms":367},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Ozymandias-Owens-2/scrapewright","website":"https://scrapewright.app","version":"1.0.3","remotes":[{"type":"streamable-http","url":"https://scrapewright.app/mcp","headers":[{"description":"Your scrapewright API key. Free at https://scrapewright.app — 1,000 rows a month, no card.","isRequired":true,"isSecret":true,"name":"X-API-Key"}]}],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"scrapewright","version":"1.0.3","runtimeHint":"uvx","transport":{"type":"stdio"},"runtimeArguments":[{"description":"The MCP server, the model client and spreadsheet export are optional extras; the bare package cannot start the server.","value":"scrapewright[mcp,llm,excel]","type":"named","name":"--from"}],"packageArguments":[{"description":"scrapewright is a CLI first; `mcp` is the subcommand that speaks the protocol.","value":"mcp","type":"positional"}],"environmentVariables":[{"description":"Only needed for sites on no known platform, where a recipe has to be written once. Shopify and WooCommerce stores work without it.","isSecret":true,"name":"ANTHROPIC_API_KEY"},{"description":"Where compiled recipes are kept. Point it at durable storage, or every restart pays to work the same sites out again. Defaults to ~/.scrapewright/recipes.json","name":"SCRAPEWRIGHT_CACHE"},{"description":"Set to 0 to ignore robots.txt. Only reasonable on sites you own or have written permission for; the default is to obey.","default":"1","choices":["0","1"],"name":"SCRAPEWRIGHT_OBEY_ROBOTS"}]}],"tools":[{"name":"account","description":"Credits left and this month's usage for the key in use.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"accountArguments"}},{"name":"crawl_site","description":"Walk a site and extract every item. Waits up to four minutes; a\n        longer crawl returns a job_id to pass to crawl_status.\n\n        `mode` picks how the items are found. \"rows\" (the default) reads every\n        card on the listing itself and follows its pagination -- right for\n        search results, categories and tables. \"links\" follows each card into\n        its own page, for sites where an item has one. \"like\" starts from one\n        example item page, given as `like_page`, and finds every other page\n        shaped like it; pass `listing_url` as well when you know the stock or\n        results page, because inferring it is the part that fails.\n        ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"listing_url":{"title":"Listing Url","type":"string"},"fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Fields"},"max_items":{"default":25,"title":"Max Items","type":"integer"},"js":{"default":false,"title":"Js","type":"boolean"},"scroll":{"default":0,"title":"Scroll","type":"integer"},"mode":{"default":"rows","title":"Mode","type":"string"},"like_page":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Like Page"}},"required":["listing_url"],"title":"crawl_siteArguments"}},{"name":"crawl_status","description":"Fetch a crawl that outlived its call.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"title":"Job Id","type":"string"}},"required":["job_id"],"title":"crawl_statusArguments"}},{"name":"detect_site","description":"Report what platform a site runs on and which strategy to use.\n        Cheap; call it before a large job.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"title":"Url","type":"string"}},"required":["url"],"title":"detect_siteArguments"}},{"name":"extract_page","description":"Extract structured data from ONE page. ``fields`` declares your own\n        schema, e.g. [\"title\", \"salary:number\", \"tags:list\"]; omit it for the\n        product schema. First call on a new site compiles a recipe (300\n        credits); later calls replay it for 1 credit per row.\n\n        A site nobody could read is remembered for a week and answered\n        without calling the model, so re-reading a dead page costs nothing.\n        `retry` asks anyway.\n        ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"title":"Url","type":"string"},"fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Fields"},"js":{"default":false,"title":"Js","type":"boolean"},"retry":{"default":false,"title":"Retry","type":"boolean"}},"required":["url"],"title":"extract_pageArguments"}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-10-16T17:08:38.533Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-16T17:08:38.501Z","components":{"code":{"score":25,"max":25,"notes":["37 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1236ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://scrapewright.app/mcp","reachable":true,"authRequired":false,"latencyMs":1236,"serverInfo":{"name":"scrapewright","version":"1.0.3"}}],"packages":[{"registryType":"pypi","identifier":"scrapewright","version":"1.0.3","found":true,"weeklyDownloads":82,"license":"MIT","dependencyCount":18,"publishedAt":"2026-09-29T16:52:37.172947Z","repositoryUrl":"https://github.com/Ozymandias-Owens-2/scrapewright"}],"repo":{"found":true,"owner":"Ozymandias-Owens-2","repo":"scrapewright","archived":false,"pushedAt":"2026-10-16T01:49:31Z","stars":1,"forks":0,"openIssues":5,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/145618149?v=4","ownerCreatedAt":"2023-09-20T21:53:01Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":0,"downloadsWeek":82,"license":"MIT","lastPushAt":"2026-10-16T01:49:31.000Z","score":35}}}},"grade_history":[],"reviews":[]}