scrapely-mcp-python
Scrapely MCP server for Python. It exposes Scrapely Actors, storage, runs, tasks, and documentation to MCP clients over stdio and streamable HTTP transports, with dynamic per-Actor tools, MCP-Apps widget support, Skyfire/x402 agentic payments, Segment telemetry, and Sentry instrumentation.
Install
python -m venv .venv && source .venv/bin/activate
pip install -e .
# The local Scrapely API client is expected as a sibling checkout:
pip install -e ../scrapely-client-python
Run (stdio)
export SCRAPELY_TOKEN=... # or keep a token in ~/.scrapely/credentials.json
scrapely-mcp-server --actors=username/actor-name
scrapely-mcp-server --tools=docs # public tools only, no token needed
scrapely-mcp-server --tools=actors,runs,storage # category selection
scrapely-mcp-server --ui=apps # force MCP Apps (widget) mode
Dev server (stdio, or streamable HTTP on localhost with --http):
python -m scrapely_mcp.dev_server --http --port 8000
Library surface
from scrapely_mcp import ActorsMcpServer, create_stateless_server
ActorsMcpServer(options)— the facade:load_tools_from_input(input, client),add_tool,remove_tool,connect(transport),close().create_stateless_server(input, options)— per-request composition for stateless hosts.
Tool categories
actors, docs, runs, storage, tasks, dev — selected via --tools/Input.tools;
Actor full names (e.g. scrapely/web-scraper) are also valid selectors and become dynamic
tools generated from the Actor's real input schema.
Implementation notes
- MCP SDK: official Python
mcppackage (low-levelServer). - Validation:
jsonschemawith AJV-compatible semantics (array coercion, additional-property stripping, ReDoS keyword removal) — seeutils/ajv.py. - Web widgets: the React widget bundle stays JavaScript; the built HTML assets are
shipped under
scrapely_mcp/web/and served as MCP resources (resources/widgets.py). - Payments: Skyfire and x402 agentic-payment providers; payment error payloads
(e.g. x402
402payment-required responses) are surfaced directly by the client (utils/payment_errors.py). - Eval harness (
evals/): intentionally not included in this package; the unit test suites live undertests/(pytest). - Logging: a stdlib wrapper provides the structured logging call surface,
including
softFailand the log-aggregator "error"-word sanitization.
Tests
pip install -e .[dev]
pytest
Metadata
Release files for scrapely-mcp 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scrapely_mcp-0.1.3.tar.gz | 283.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scrapely_mcp-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 479.5 kB
Release files / scrapely_mcp-0.1.3.tar.gz
| Download URL | scrapely_mcp-0.1.3.tar.gz |
|---|---|
| Size | 283.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f3c60e81e343745bd37266c28667711bd560b309b4cab0be6007f634d9c1a082
|
|
BLAKE2b-256 checksum How to use checksums |
990c4dd576dbc4388cf2156e1e32cabab72415aa139bfce7ae93bef8ddf3b1ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / scrapely_mcp-0.1.3-py3-none-any.whl
| Download URL | scrapely_mcp-0.1.3-py3-none-any.whl |
|---|---|
| Size | 195.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1aadeda40a348df111e6584d2a388a343e0c8294f823115f5b43d3d03aa58761
|
|
BLAKE2b-256 checksum How to use checksums |
592d9cfd28081aba981e390e68db2ea9ca90b27a4f5a9819bf2bc6b6f5c20644
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|