Skip to main content
Glama
surfskyio

surfsky-mcp

Official
by surfskyio

Navigate

surfsky_navigate
Destructive

Open URLs, go back, forward, or reload in a browser tab, returning the final URL, HTTP status, and interactive element snapshot with refs. For pages needing clicks, forms, scrolling, or login.

Instructions

Open a URL in the session's active tab (or go back, forward or reload) and return where it landed: final url, HTTP status, navigated, and a snapshot of the visible interactive elements with @N refs for surfsky_act. Use it for a page that needs clicks, scrolling, a form or a login; for a page you only need to read once, surfsky_scrape is cheaper and starts no session. Without session_id it uses the shared default session, starting one on first use. A status of 200 does not prove the real page loaded: bot challenges and interstitials return 200 too, so check the title and snapshot for the expected content before repeating a submission. The snapshot holds up to 300 rows; surfsky_snapshot with a higher limit lists the rest.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goNoHistory step instead of a URL: 'back', 'forward' or 'reload'.
urlNoURL to open; https:// is added when the scheme is missing. Give url or go, not both.
timeoutNoSeconds to wait for the navigation (default 30).
snapshotNoInclude a fresh snapshot of interactive elements in the result (default true).
session_idNoSession from surfsky_session_start. Omit for the shared default session, started on first use.
wait_untilNoLoad state that ends the navigation: 'load' (default), 'domcontentloaded' (faster on heavy pages; then surfsky_wait for what you need), 'commit' (first response received), 'networkidle' (no requests for a while; busy pages never reach it and time out).load

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.1

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds important behavioral nuance beyond the annotations: 'A status of 200 does not prove the real page loaded: bot challenges and interstitials return 200 too, so check the title and snapshot for the expected content before repeating a submission.' It also discloses session-start-on-first-use behavior and the snapshot row limit. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core operation and return payload, then moves to usage guidance, session behavior, and caveats. Every sentence earns its place, and the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description explains the return fields (final url, HTTP status, navigated, snapshot). It covers alternatives, session semantics, verification pitfalls, and snapshot limits. For a tool with six parameters and several sibling tools, this is remarkably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all parameters with detailed descriptions (100% coverage), so the baseline is 3. The description adds value by clarifying the snapshot limit ('up to 300 rows') and reinforcing the url/go mutual exclusivity and the default-session behavior, pushing it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Open a URL in the session's active tab (or go back, forward or reload) and return where it landed.' It also names surfsky_scrape and surfsky_act, making clear this is the navigation tool for interactive pages, not the cheap read-only scrape path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use this tool: 'Use it for a page that needs clicks, scrolling, a form or a login; for a page you only need to read once, surfsky_scrape is cheaper and starts no session.' It also gives context on the default session and points to surfsky_snapshot when the 300-row snapshot limit is exceeded.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.