SDODS
Reference

MCP tools

The 86 tools, prompts and resources of the SDODS MCP server.

Tools are grouped by capability (sdods mcp --caps core,analyze,run,data,browser,agents,issues,schedules; default core,analyze,run,data,browser,schedules). Access levels map to scopes: read needs the matching *:read scope, run needs runs:write, write produces proposals and needs features:write. Print the live catalogue with sdods mcp --list-tools.

ToolCapabilityAccessPurpose
project_list, project_get_config, project_list_envs, project_validate_config, project_doctorcorereadprojects, resolved configuration (secrets redacted), environments, health
workspace_tree, process_listcorereadorganization → workspaces → projects → modules → processes
feature_list, feature_read, feature_parse, feature_lint, step_list, step_findcorereadfeatures, Gherkin parsing, lint, step catalogue and fuzzy step reuse
feature_write, matrix_expandcorewritevalidated feature, or role-matrix Examples, staged as a proposal (never the working tree)
proposal_list, proposal_getcorereadreview proposals written by agents and write tools
run_tests, run_tests_asyncrunrunexecute a project slice through sdods run, with progress
run_list, run_get, run_get_scenario, run_last_failedrunreadruns, scenario detail with sdods://screenshot/… URIs and API snapshots
heal_events, heal_locator_statsrunreadself-healing events and aggregated locator statistics
data_list_datasets, data_preview, data_pool_statusdatareaddatasets per environment (masked), pool users and leases
analyze_project, analyze_routes, analyze_coverage, analyze_best_practices, analyze_locators, analyze_change_impact, analyze_failure, analyze_suggest_scenariosanalyzereadonboarding analysis, coverage, best practices, locator audit, change impact, failure triage, Gherkin drafts
browser_session_open, browser_session_close, browser_session_list + the 42 wrapped Playwright toolsbrowserread/writedrive a real browser bound to a project and environment — see below
schedule_list, schedule_nextschedulesreadschedules from YAML and next fire times

Resources: sdods://project/{slug}/features/{path}, sdods://run/{runId}/summary, sdods://run/{runId}/messages.ndjson, sdods://screenshot/{runId}/{fingerprint}/{retry}/{file}, sdods://proposal/{id}.

Prompts: sdods-plan, sdods-generate, sdods-heal, sdods-upgrade, sdods-review.

Browser tools

SDODS wraps every tool of the Playwright MCP server that ships inside the pinned Playwright — 42 of them — as browser_*, plus three of its own for session lifecycle.

They are the upstream tools, argument for argument. What the wrapper adds is the context an ungoverned browser has no way to know:

  • Bound to a project and environment. The session carries the project's testIdAttribute, the environment's locale, timezone, headers and credentials, and the viewport from screenshots.viewport. A snapshot taken through browser_snapshot refers to elements by the same test-id attribute the page objects use.
  • Logged in as a role. browser_session_open with role reuses the storage state sdods auth capture wrote for that @user:<role>. It will not capture one for you — that drives a real login flow.
  • Artifacts in the run. Screenshots, PDFs, traces and videos land in .sdods/runs/<runId>/browser/<sessionId>/, next to everything else about that run.
  • Credentials redacted. authorization, cookie, set-cookie and API-key headers are masked in browser_network_request output before it reaches a transcript.
  • Refusable. browser:read lets a viewer look; acting needs browser:write. browser_evaluate and browser_run_code_unsafe run caller-supplied code — upstream calls the latter RCE-equivalent — so they need browser:admin and SDODS_BROWSER_ALLOW_UNSAFE=1, and are off by default.
browser_session_open { project: "demo-shop", env: "staging", browser: "edge", role: "standard" }
browser_navigate     { url: "/inventory.html" }
browser_snapshot     {}
browser_session_close {}

Calling an action tool without opening a session first opens a default one from the server's --project, so the common case is one call. Observe tools do not — they return BROWSER_NO_SESSION rather than starting a browser, because browser:read is a scope every viewer holds.

browser_session_close ends the session and stops the browser; upstream's browser_close closes the page and leaves the session up. Sessions are also reaped when idle, and belong to the connection that opened them, so one HTTP principal cannot drive another's logged-in browser.

The extra Playwright capability packs are per session: pass caps: ["vision", "pdf", "devtools"] to browser_session_open for coordinate-based mouse input, browser_pdf_save, and tracing/video/highlighting.

The raw upstream server is no longer registered alongside. sdods mcp install --with-playwright still adds it for anyone who wants it directly, with none of the above.

Using an AI coding agent? Install SDODS:

Install the SDODS plugin in Claude Code: skills, subagents, commands and the MCP server.

  1. /plugin marketplace add YarlisAISolutions/sdods-skills
  2. /plugin install sdods@sdods
Learn more about using SDODS with AI tools

On this page