Skip to main content

surfsky-mcp

MCP server for Surfsky, a cloud-based antidetect browser.

Install

Requires Python 3.12+, uv, and a Surfsky account. Replace ... with your SURFSKY_API_TOKEN and SURFSKY_API_BASE_URL from the dashboard. Browser time and proxy traffic are billed.

Claude Code:

claude mcp add surfsky -e SURFSKY_API_TOKEN=... -e SURFSKY_API_BASE_URL=... -- uvx surfsky-mcp

Claude Desktop / Cursor:

{
  "mcpServers": {
    "surfsky": {
      "command": "uvx",
      "args": ["surfsky-mcp"],
      "env": { "SURFSKY_API_TOKEN": "...", "SURFSKY_API_BASE_URL": "..." }
    }
  }
}

Codex (~/.codex/config.toml):

[mcp_servers.surfsky]
command = "uvx"
args = ["surfsky-mcp"]
env = { SURFSKY_API_TOKEN = "...", SURFSKY_API_BASE_URL = "..." }

Tools

Tool Description
surfsky_scrape Fetch a URL as Markdown, HTML, links or a screenshot.
surfsky_navigate Open a URL, go back or forward, or reload.
surfsky_snapshot List page elements with @N references for actions.
surfsky_act Click, double-click, hover, fill, type, press keys, select or scroll.
surfsky_wait Wait for an element, URL, text or a delay.
surfsky_read Read page content as Markdown, text, HTML or links.
surfsky_screenshot Capture the viewport, full page or an element.
surfsky_evaluate Run JavaScript in an isolated context or the page context.
surfsky_tab List, open, switch or close tabs.
surfsky_session_start Start a session with profile, proxy or fingerprint settings.
surfsky_session_stop Stop a session and its billing. Safe to repeat.
surfsky_session_list List the account's running sessions.
surfsky_status Check credentials, plan limits and proxy quota.

Sessions

Browser tools share a default session unless you pass session_id. It starts on first use and stops after five minutes idle or on server shutdown. Call surfsky_session_stop to stop billing immediately.

Use surfsky_session_start for separate sessions, saved profiles or custom proxy and fingerprint settings. surfsky_scrape stops its browser automatically. Sessions can also be listed and stopped through the Surfsky CLI.

HTTP mode

uvx surfsky-mcp --http --host 0.0.0.0 --port 8000 --allowed-hosts mcp.example.com

Serves streamable HTTP at /mcp. Set the same credentials in the environment. There is no built-in authentication; use an authenticated proxy or private network. Set --allowed-hosts to the hostname clients use. Without it, non-localhost binds disable Host-header checks.

Clients sharing a server must use separate session_id values.

Development

uv sync --all-groups
uv run ruff check . && uv run ty check && uv run pytest -q
SURFSKY_LIVE_TESTS=1 uv run pytest tests/test_live.py   # billed

License

MIT

Release files for surfsky-mcp 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for surfsky-mcp 0.0.1
File Size Uploaded
surfsky_mcp-0.0.1.tar.gz 30.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for surfsky-mcp 0.0.1
File Interpreter ABI Platform
surfsky_mcp-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 53.3 kB

Release files / surfsky_mcp-0.0.1.tar.gz

Download URL surfsky_mcp-0.0.1.tar.gz
Size 30.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4a340e800fea4e2b20e3e884c6ddeda98bd71fbcd5f9e450dfc855aee9e968a6
BLAKE2b-256 checksum
How to use checksums
fbb93ffbb2ad1d25d336e54bc56cac0aff2a39a81caab01926b6f6af69374f13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.12 {"installer":{"name":"uv","version":"0.12.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / surfsky_mcp-0.0.1-py3-none-any.whl

Download URL surfsky_mcp-0.0.1-py3-none-any.whl
Size 22.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
45a015948c2e7b3b61a10701e6b13b9ef15e86382c44fb4d9536f8e636731909
BLAKE2b-256 checksum
How to use checksums
9b05d30e9f1b7f8ed763c4263f03870dff4f74e73bd07e522abb949067bed7c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.12 {"installer":{"name":"uv","version":"0.12.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.0.2

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page