mcp-scraper
v0.47.0
Published
MCP server for MCP Scraper web intelligence tools
Readme
MCP Scraper
MCP Scraper is an MCP server for live web intelligence tools backed by https://mcpscraper.dev.
Install
Use the MCPB Desktop Extension for the branded Claude Desktop install, or use the npm package from any MCP client that can run stdio commands.
MCP Scraper ships one stdio entrypoint plus human-facing helper CLIs:
mcp-scraper— the single MCP server with every tool: live web intelligence (SERP, PAA, site extraction, YouTube, Facebook ads and organic video transcripts, Maps, directory, rank tracker blueprint, credits) plus agent-controlled direct/no-proxy hosted browser sessions (screenshots, clicks, typing, scrolling, watch URLs, replay links, MP4 replay download, and saved profile/login setup for authenticated AI visibility workflows). It is context-aware: in a human terminal it prints the branded ASCII install card; in an MCP client it runs as a protocol-clean stdio server. This is the entrypoint used by the MCPB Desktop Extension.mcp-scraper-install— explicit alias for the human-facing terminal installer card with the branded ASCII intro and copyable install commands.mcp-scraper-cli— a human-facing CLI for setup checks, AI-agent config generation, workflow prompts, SEO workflow runs, and HTML reports. This command is safe to print because it is not an MCP stdio server.
Terminal installer
Run the command when you want the designed terminal install experience:
npx -y -p mcp-scraper@latest mcp-scraperIn a human terminal, it prints the MCP Scraper banner, loaded tool groups, Desktop Extension download, Claude Code command, and Codex config. When launched by an MCP client, the same command detects non-interactive stdio and writes only valid JSON-RPC to stdout.
The explicit installer alias still works:
npx -y -p mcp-scraper@latest mcp-scraper-installHuman CLI
Run setup checks and generate agent wiring:
npx -y -p mcp-scraper@latest mcp-scraper-cli doctor
MCP_SCRAPER_API_KEY=sk_live_your_key npx -y -p mcp-scraper@latest mcp-scraper-cli agent install claude --apply
npx -y -p mcp-scraper@latest mcp-scraper-cli agent install codex
npx -y -p mcp-scraper@latest mcp-scraper-cli agent prompt agent-packetagent install claude --apply upserts the Claude Code user-scope mcp-scraper entry to npx -y --package mcp-scraper@latest mcp-scraper. Fully exit Claude Code and open a new Claude terminal after applying; MCP servers are attached when Claude starts.
The registered command uses the long --package flag deliberately. Claude Code's mcp add leaks short flags that appear after -- back into its own option parsing, so a registered -p makes it reject its own --scope/-s argument with a misleading unknown option error. If the registration ever fails, the previous entry is captured beforehand and restored automatically.
Check usage and upgrade concurrency from a normal terminal:
MCP_SCRAPER_API_KEY=sk_live_your_key npx -y -p mcp-scraper@latest mcp-scraper-cli billing concurrency info
MCP_SCRAPER_API_KEY=sk_live_your_key npx -y -p mcp-scraper@latest mcp-scraper-cli billing concurrency checkoutEach account has 1 base concurrent operation. Extra concurrency slots are $5/month per slot. If an MCP tool hits concurrency_limit_exceeded, the error includes active, limit, upgrade_url, and the mcp-scraper-cli billing concurrency checkout command so the AI can explain the next step without guessing.
Run workflow reports:
npx -y -p mcp-scraper@latest mcp-scraper-cli workflow list
npx -y -p mcp-scraper@latest mcp-scraper-cli workflow run agent-packet --keyword "roof repair Denver" --domain example.com
npx -y -p mcp-scraper@latest mcp-scraper-cli workflow run local-competitive-audit --query roofers --state TN --min-pop 100000 --per-city 20 --hydrate-top 5 --reviews 50
npx -y -p mcp-scraper@latest mcp-scraper-cli workflow run map-comparison --query roofers --location "Denver, CO" --per-city 20 --hydrate-top 5
npx -y -p mcp-scraper@latest mcp-scraper-cli workflow run serp-comparison --keyword "roof repair Denver" --domain example.com --extract-top 5
npx -y -p mcp-scraper@latest mcp-scraper-cli workflow run paa-expansion-brief --keyword "roof repair cost" --max-questions 80
npx -y -p mcp-scraper@latest mcp-scraper-cli workflow run ai-overview-language --keyword "best roof repair company" --domain example.com
npx -y -p mcp-scraper@latest mcp-scraper-cli report open lastWorkflow runs save manifest.json, report.html, CSVs, Markdown, and evidence JSON under MCP_SCRAPER_OUTPUT_DIR/workflows or ~/Downloads/mcp-scraper/workflows. High-level workflow IDs are directory, agent-packet, local-competitive-audit, map-comparison, serp-comparison, paa-expansion-brief, and ai-overview-language.
Run hosted workflow schedules and hosted run history:
npx -y -p mcp-scraper@latest mcp-scraper-cli schedule create local-competitive-audit --weekly --query roofers --state TN --min-pop 100000 --per-city 20 --webhook https://example.com/mcp-scraper-hook
npx -y -p mcp-scraper@latest mcp-scraper-cli schedule list
npx -y -p mcp-scraper@latest mcp-scraper-cli schedule run <schedule-id>
npx -y -p mcp-scraper@latest mcp-scraper-cli schedule pause <schedule-id>
npx -y -p mcp-scraper@latest mcp-scraper-cli schedule resume <schedule-id>
npx -y -p mcp-scraper@latest mcp-scraper-cli runs list
npx -y -p mcp-scraper@latest mcp-scraper-cli runs status <run-id>
npx -y -p mcp-scraper@latest mcp-scraper-cli runs download <run-id>The hosted workflow API is mounted under /workflows: GET /definitions, POST /run, GET /runs, GET /runs/:id, GET /runs/:id/artifacts/:artifactId, POST /schedules, GET /schedules, PATCH /schedules/:id, DELETE /schedules/:id, and POST /schedules/:id/run. Scheduled dispatch is handled by /workflows/cron/dispatch and the main /cron/tick route when CRON_SECRET is configured. Current hosted artifacts are filesystem-backed for immediate run retrieval; durable public rollout should add S3/R2-compatible object storage.
Claude Desktop MCPB
Build the branded one-click bundle:
npm run build:mcpbThe generated bundle is written to build/mcpb/mcp-scraper-<version>.mcpb and copied to public/downloads/ for the hosted download. The current public bundle is https://mcpscraper.dev/downloads/mcp-scraper.mcpb (0.47.0, SHA-256 a5802aa38c128809c8358e1f7296e42c7c3e4037ec24d27a3cf90b33e3176fe9). Install it by opening or dragging it into Claude Desktop. Claude displays the MCP Scraper install card, icon, and API-key configuration field from the bundle manifest.
The MCPB install exposes every tool — web-intelligence plus all browser_* tools — through the one mcp-scraper server.
Raw stdio config
Claude Desktop:
{
"mcpServers": {
"mcp-scraper": {
"command": "npx",
"args": ["-y", "-p", "mcp-scraper@latest", "mcp-scraper"],
"env": {
"MCP_SCRAPER_API_KEY": "sk_live_your_key",
"BROWSER_AGENT_PROFILE_NAME": "work-accounts"
}
}
}
}npx -y mcp-scraper@latest runs the same single server (the package's default bin), so existing configs get every tool, including browser tools, after they pull the latest package. Use mcp-scraper@latest to force npm to resolve the newest published package whenever the MCP client starts a fresh npx process.
For customer AI visibility setup, use the hosted profile connection flow: run browser_profile_connect, give the user the returned watch_url, have them complete login, then poll browser_profile_list until the connection is authenticated. One profile can hold many logins — call browser_profile_connect again with the same profile and a different domain to stack accounts.
Browser hosted sessions are direct/no-proxy by default. They do not inherit the configured SERP/Maps proxy. Use proxies for SERP/Maps tools when those tools need location or anti-bot handling, not for the interactive login browser.
BROWSER_AGENT_PROFILE_NAME sets the default saved hosted browser profile for future sessions.
Claude Code one-command setup:
MCP_SCRAPER_API_KEY=sk_live_your_key npx -y -p mcp-scraper@latest mcp-scraper-cli agent install claude --applyThen fully exit Claude Code, open a new Claude terminal, and verify:
claude mcp listManual Claude Code command:
claude mcp add mcp-scraper --scope user --env MCP_SCRAPER_API_KEY=sk_live_your_key -- npx -y -p mcp-scraper@latest mcp-scraperCodex config:
[mcp_servers.mcp-scraper]
command = "npx"
args = ["-y", "-p", "mcp-scraper@latest", "mcp-scraper"]
env = { MCP_SCRAPER_API_KEY = "sk_live_your_key" }Tools
Web-intelligence tools
harvest_paasearch_serpextract_url— extract normal or Wayback-replayed page copy; Wayback results omit playback chrome and can include a timestamp-matched featured image.map_site_urlsmap_wayback_snapshots— count and inventory Wayback captures across an inclusive date range without downloading page bodies. Supports exact pages, prefixes, hosts, domains, or selected URLs; reports exact versus lower-bound counts, unique URLs/content digests, monthly coverage, missing months, and optional timestamp rows.extract_site— crawl a live site, batch one archived site snapshot from a Wayback replay URL, or pass awaybackplan for whole-site, single-page, or selected-page timelines across explicit months or afrom/torange. Timeline ZIPs include month folders and a capture matrix.archive_read— list files in a bounded public ZIP, read one selected UTF-8 text file in byte windows, or preserve the complete selected file in the tenant Library vault. Use it with thebundleUrlreturned bycheck_site_export.youtube_harvestyoutube_transcribefacebook_ad_searchfacebook_page_intelfacebook_ad_transcribe— transcribe a direct Facebook ad video URL returned byfacebook_page_intel.facebook_video_transcribe— transcribe an organic Facebook reel, video, watch, post, or share URL, includingfb.watchlinks. The tool renders the page, extracts the best matching public Facebook CDN MP4 URL, then returns transcript text, timestamped chunks, selected quality, video metadata, and the extracted MP4 URL for follow-up download.instagram_profile_content— discover Instagram profile grid content links for a handle or profile URL, optionally through a saved hosted browserprofilefor authenticated access. Returns collected post/reel/tv URLs, profile counts, type counts, shortcodes, browser details, pagination attempts, stop reason, and limitations.instagram_media_download— extract and download one Instagram post/reel/tv URL, optionally through a saved hosted browserprofilefor authenticated access. Returns text/caption, image URL/downloads, selected video/audio MP4 tracks, optional muxed MP4 whenffmpegis available, optional transcript, and browser details.maps_search— search Google's localized local-results list for multiple business/profile candidates. Use for GMB/GBP prospect lists, competitors, categories, and anything needing more than the Google 3-pack. It opens the rendered business card, reads the profile dialog, then closes it before continuing to the next ranked card. SetincludeServices: trueto return services and areas served without collecting review cards.maxResultsdefaults to 10 and is capped at 50.maps_place_intel— hydrate one known/named Google Maps business with profile details and optional reviews. Use aftermaps_searchwhen a selected candidate needs full details.directory_workflow— build city-by-city directory/prospecting datasets from Census place selection plus localized Google business searches. Use it for requests like "all cities over 100k population in Tennessee, then get 20 roofers from Maps." Supply the business category, state, and market limits; MCP Scraper manages search transport and retry behavior internally. The saved CSV includessource_location,result_position,business_name,review_stars,review_count,category,address,phone,hours_status,website_url,directions_url,place_url,cid,cid_decimal, Census population, and ZIP groups.workflow_list— list higher-level workflow IDs plus AI-facing recipes for market analysis, ICP research, forum/review acquisition, brand design briefings, CRO audits, positioning briefs, content gaps, and AI search visibility audits.workflow_suggest— route a high-level business goal to the right workflow/tool chain before spending credits.workflow_run— run hosted workflows such asagent-packet,local-competitive-audit,map-comparison,serp-comparison,paa-expansion-brief, andai-overview-language; returns run metadata, summary, and artifact IDs.workflow_status— reopen a workflow run and list its current status and artifacts.workflow_artifact_read— pull generated workflow artifacts such asevidence.json, CSVs, Markdown briefs, and reports back into MCP context.editorial_reading_room_guide— load the reusable editorial workflow, content contract, or compact example before turning dense supplied material into a reading surface.create_editorial_reading_room— render fully authored, source-grounded articles into one self-contained mobile-first HTML reading room with contents, hamburger navigation, search, jump links, progress, text sizing, evening mode, and visible provenance. Hosted clients receive a private seven-day artifact; local stdio clients receive an openable file under the MCP Scraper output directory.renew_editorial_reading_room_download— issue a fresh signed URL for an unexpired private reading-room artifact.commons_prepare_publication/commons_validate_publication— check a subscriber-chosen publication subdomain and validate a claim or complete source-grounded editorial edition without writing.commons_claim_publication— idempotently claim one globally uniquehttps://{name}.transparent-commons.ccpublication for the authenticated subscriber.commons_publish_editorial— publish a validated editorial reading-room edition to the caller-owned publication and return its permanent root, archive, and edition URLs.commons_get_publication— recover the caller-owned or public publication metadata and current edition revisions for later edits and sharing.report_artifact_read— read owner-scoped text and JSONL artifacts through the authenticated MCP connection when a model sandbox cannot open the optional signed download URL. Continue withnextOffsetuntil it is null; ZIP archives usearchive_read.rank_tracker_workflow— generate a database schema, cron/heartbeat plan, ingestion workflow, metrics list, and implementation prompt for building rank trackers. It has modes for Maps rankings viadirectory_workflow/maps_search, organic rankings viasearch_serp, AI Overview citation tracking, and PAA source presence tracking. This planning tool does not spend credits.credits_info
Connected-account tools
list_service_connections— list this caller's tenant-owned Nango OAuth and official remote MCP connections, including verified provider-side account email/name when exposed, exact live reads, gated actions, permanently blocked administrative tools, credential transport, and schema-discovery metadata. Provider identity is distinct from the MCP Scraper login, and connections are never shared between customers.describe_service_connection_tool— fetch the sanitized live MCP Tool definition for one tool listed on one tenant-owned connection, including its current callability, input schema, optional output schema, safe annotations, and schema hash. Use this before constructing provider-native arguments; provider functions stay behind the generic bridges instead of becoming dozens of permanent top-level tools.export_connected_service_data— fetch a fresh Gmail, Google Calendar, Google Search Console, Zoom, Slack, Resend, or Meta dataset in one MCP call. Slack'sslack_channel_messagesdataset accepts achannelId, paginates top-level history, fetches threaded replies in bounded parallel batches, preserves file metadata, honors retry delays, and supportsallTime:true; it never joins or changes the channel. Zoom'szoom_transcriptsdataset resolves VTT files from recording metadata and downloads them through the authenticated connection without looping the separately rate-limitedget-meeting-transcriptfunction. Search Console'ssearch_console_performancedataset walks accessible properties and bounded live Search Analytics pages with continuation. Small exports return inline; larger exports become private JSONL retained for seven days with exactreport_artifact_readarguments plus an optional 15-minute human download URL. For relationship work, gather source evidence first: inspect existing People records, resolve the exact provider account, preserve provider provenance when writing a linked Communication, and never treat an export as permission to mutate the source account.export_search_console_table_data— filter up to 50,000 Search Console rows already persisted by a scheduledconnection_syncand create a private renewable JSONL artifact without calling Google again. Get the typedgsc_performance_*table name fromlist_service_connections, inspect it withtable-describe, and use the same filters withtable-queryfor interactive analysis.renew_connected_data_download— issue a fresh 15-minute signed URL for an unexpired private export artifact without pulling the provider again.read_service_connection— run one small live read by exact allowlisted name across Nango OAuth or official remote MCP connections, including bounded Google Drive inventory, change, Doc, Sheet, and text-file tools. Do not loop it over a time range whenexport_connected_service_datasupports that provider's collection.import_service_connection_to_memory— run one exact approved read and upsert the bounded, redacted result into an existing ordinary Memory vault at a stable server-generated path. The snapshot is embedded for semantic search and explicitly marked as untrusted provider data. This is not account-wide pagination or continuous sync.call_service_connection_action— run one exact mutation only after the account action switch is enabled. Google Drive, Search Console, Resend, GitHub, Gmail, Calendar, Slack, Zoom, Facebook, Google Analytics, X, and YouTube actions remain live-inventory, provider-policy, tenant, and audit gated; credential, OAuth-grant, and raw editor-session administration is never exposed.set_scheduled_action_connections— bind exact tenant connections and exact tool grants to one scheduled action. Deterministic connection syncs are model-free and one schedule occurrence counts as one metered event even when provider pagination spans many pages.
Connecting or reconnecting a provider and calling direct connected-account reads, gated writes, supported exports, or bounded Memory imports do not consume additional Credits. Scheduled occurrences cost 75 Credits each. Agent-mode runs also add 1.5× the model provider's actual reported cost; deterministic connection syncs pay only the 75-Credit run base. Separately metered scraper, browser, and media operations keep their normal rate-card charges. Scheduling has no separate subscription or monthly run quota.
GitHub uses the same provider-neutral read/action bridges: 27 live reads cover repository discovery, issues, pull requests, commits, releases, and workflows; 20 live mutations remain account- and schedule-gated. The 47 Nango functions and expanded reconnect scopes are deployed. The current test token remains public_repo until owners approve its two pending organization requests, so private-repository and workflow parity is not yet claimed.
Google Drive Phase 1 exposes ten bounded reads plus the separately gated create-drive-folder and copy-drive-file actions through those same bridges and through per-run Mastra toolsets. It is interactive tool support, not the later deterministic bulk-export/connection_sync phase; large binary delivery and broader Drive mutations remain unreleased.
Google Search Console exposes eight bounded reads and eight gated property and sitemap mutations, including API-only batches for URL inspection, Search Analytics comparison, property management, and sitemap management. Batch calls return per-item receipts, run quota-consciously, and do not require database persistence; destructive batches default to dry-run previews and require explicit confirmation. Its optional deterministic connection_sync path backfills Search Analytics in bounded pages, persists raw records and checkpoints, mirrors normalized records into the selected Memory vault, and upserts performance rows into one indexed tenant-owned table per connection. The table supports exact/range/substring/in-list filtering by site, date, query, page, country, device, clicks, impressions, CTR, and position. Scheduled agent runs can instead receive only the exact Search Console tools granted to that schedule.
Browser-agent tools
browser_open— open a direct/no-proxy hosted browser session. Pass a saved profile name to load an authenticated session. Returns a humanwatch_url.browser_profile_connect— save a site login to a profile and return a user takeoverwatch_urlon mcpscraper.dev. The user signs in through that URL, thenbrowser_profile_listverifies it is authenticated. One profile holds many logins — call again with the same profile and a different domain to stack accounts. Use this again whenever a login disconnects.browser_profile_list— list every login saved in a profile with its auth status, account, and note. Poll it afterbrowser_profile_connectuntil a login reads AUTHENTICATED, then launch withbrowser_open.browser_screenshot— capture a screenshot plus visible text and clickable element center coordinates and DOM bounds.browser_read— read the current page text and elements with center coordinates and DOM bounds, without an image.browser_locate— locate exact visible DOM elements or text ranges and return screenshot-pixel bounds.browser_gotobrowser_clickbrowser_typebrowser_scrollbrowser_pressbrowser_replay_start— start an MP4 replay. Returnsreplay_id,view_url, anddownload_urlwhen available.browser_replay_stop— stop a replay. Returns the finalview_urlanddownload_url.browser_list_replays— list replay videos for a session.browser_replay_download— download and save the replay MP4 underMCP_SCRAPER_OUTPUT_DIR/browser-replays.browser_replay_mark— while recording, locate a DOM target and return a replay-timed annotation object.browser_replay_annotate— download a replay MP4, render timed boxes, circles, underlines, arrows, and labels using annotation objects frombrowser_replay_markor exact bounds frombrowser_locate, and save a new annotated MP4 underMCP_SCRAPER_OUTPUT_DIR/browser-replays.browser_capture_fanout— capture ChatGPT/Claude AI-search fan-out from an open logged-in hosted session. Every client receives the complete structured capture inline. Installed stdio/MCPB clients can useexport=truefor durablefanout.json, query/source/citation/domain/snippet CSVs, TSV, andreport.htmlunderMCP_SCRAPER_OUTPUT_DIR/fanout; hosted OAuth clients receiveexports: nulland use the inline data.browser_closebrowser_list_sessions
For accurate annotated videos, do not guess annotation times from a script. Start the replay, navigate until each target is visible and stable, call browser_replay_mark for each callout, then stop the replay and pass the returned annotations to browser_replay_annotate with the returned source_width and source_height.
For Google SERP and Maps tools, callers provide the query, two-letter country code (gl), language (hl), device when relevant, and an optional city or region. MCP Scraper owns transport selection, anti-bot handling, and bounded retries internally; those implementation controls and receipts are not part of the public tool contract.
The mcp-scraper server (and the MCPB bundle, which runs it) exposes both sections through one MCP server.
All MCP tools expose output schemas and return structuredContent with the IDs, URLs, CSV paths, transcripts, browser session handles, replay paths, artifacts, recipe fields, or blueprint fields needed by the next step. Browser Agent tools keep a JSON text block for older clients, but structured data is the primary contract. All tools carry MCP annotations; file-writing tools such as replay downloads and annotations state their filesystem side effects.
The canonical tool inventory is generated at docs/mcp-tool-manifest.generated.json. The unified server exposes 220 tools: 119 scraper, browser, workflow, billing, and connected-service tools plus 101 durable-memory tools. The scraper inventory includes governed Local Sourcebook tools that follow a Memory-style contract/tag/prepare/validate/capture sequence before paid acquisition, plus Transparent Commons tools for public entity search, planning, validation, governed contribution, ledgers, needs-link discovery, saved filters, and subscriber-owned editorial publications. Successful evidence-compiled Local Sourcebook revisions publish automatically to their canonical localsourcebook.com category profile and review URLs; administrator controls handle exceptional rejection or unpublishing. Release verification compares the exact local and hosted tool-name sets, not only the count.
For contract parity, stdio and MCPB memory calls invoke the matching public tool on the hosted MCP Scraper /mcp endpoint. The hosted aggregate runtime owns MCP Scraper-specific billing, scheduling, credential, and in-process cutover policy; its internal /memory/mcp-call bridge is a fallback to the standalone memory service, not the public stdio execution path. Direct mcp-memory OAuth and stdio clients continue to use memory.mcpscraper.dev and must be verified as a separate dependent release surface.
Resources
The mcp-scraper NPX stdio server also exposes saved reports as MCP resources: resources/list returns the most recent Markdown reports from your output directory as report:// URIs, and resources/read returns their content — so an MCP client can pull prior research into context without re-scraping or spending credits. The hosted endpoint does not expose resources (it saves no files).
Environment
MCP_SCRAPER_API_KEYis required.MCP_SCRAPER_BASE_URLis optional and defaults tohttps://mcpscraper.dev.MCP_SCRAPER_OUTPUT_DIRis optional and defaults to~/Downloads/mcp-scraper.MCP_SCRAPER_SAVE_REPORTS=falsedisables automatic Markdown report files.MCP_SCRAPER_KEY_PATHis optional. When no API key env var is set, the server also reads~/.mcp-scraper-keyfor compatibility with older installs.BROWSER_AGENT_PROFILE_NAMEis optional and sets the default saved hosted browser profile formcp-scraperstdio sessions. Aliases:BROWSER_SERVICE_PROFILE_NAME,KERNEL_BROWSER_PROFILE_NAME,KERNEL_PROFILE_NAME.BROWSER_AGENT_PROFILE_SAVE_CHANGES=trueis optional hosted setup behavior. It persists cookies and storage back to the named profile whenbrowser_closedeletes the hosted browser session. Aliases:BROWSER_SERVICE_PROFILE_SAVE_CHANGES,KERNEL_BROWSER_PROFILE_SAVE_CHANGES,KERNEL_PROFILE_SAVE_CHANGES.
Every web intelligence tool call made through mcp-scraper saves a full Markdown report to disk by default and returns the file path in the MCP response. The hosted /mcp endpoint returns reports inline only and never writes files. Browser replay downloads are saved by browser_replay_download under MCP_SCRAPER_OUTPUT_DIR/browser-replays. AI fan-out captures are always returned inline; only installed stdio/MCPB clients write optional export=true files under MCP_SCRAPER_OUTPUT_DIR/fanout, returning relative paths. Hosted clients always receive exports: null.
Updating Existing Installs
Hosted API and website changes deploy immediately to https://mcpscraper.dev. Stdio MCP changes require publishing a new npm package version and restarting the MCP client. Running MCP server processes do not hot-update, and tool names/descriptions are loaded when the server process starts.
Recommended config for update-friendly installs:
npx -y -p mcp-scraper@latest mcp-scraperThis is context-aware: in a normal terminal it prints the visible installer and ASCII card; in an MCP client it runs as the silent stdio server. Use --stdio or MCP_SCRAPER_FORCE_STDIO=1 if you need to force server mode from a terminal. npx -y mcp-scraper@latest (the package default bin) runs the same server.
If a user configured [email protected], installed globally with npm install -g mcp-scraper, or installed it as a project dependency, they will stay on that version until they update the config or reinstall:
npm update -g mcp-scraper
npm install mcp-scraper@latestUsers who do not update can keep using the tools their installed package already advertises, but they will not see newly added stdio tools, schemas, or AI-facing descriptions. For example, a client running an older package cannot call rank_tracker_workflow, directory_workflow, connected-service actions, or browser tools through stdio even if the hosted API already supports adjacent endpoints.
Branded One-Click Installs
Raw npx MCP server installs are command/config based. mcp-scraper is context-aware: terminal TTY prints onboarding text and the ASCII card; MCP-client stdio pipes stay protocol-clean. Do not print marketing text to stdout from an active MCP stdio session; stdout is reserved for JSON-RPC protocol messages.
For a branded Claude Desktop install, package MCP Scraper as an MCPB Desktop Extension. The repository builds one MCPB bundle with a generated icon, manifest.json, bundled runtime dependencies, and user_config fields for API-key setup, API URL, and output folder.
npm run build:mcpbThe bundle runs mcp-scraper internally, so the user installs MCP Scraper once and gets web-intelligence tools plus live browser tools in one MCP server.
Development
- MCP Tool Quality Spec defines the shipping bar for model-facing tool names, descriptions, schemas, structured outputs, errors, packaging, and deployment.
