Session 520ed870
Provider: Gemini • Model: gemini-3.8-flash • Category: delegated-access • Score: 95.4 (Excellent)
Rubric evidence
The agent went through the site's docs navigation to the API documentation pages at /support/docs/api and /support/docs/api/mcp. It reported OAuth 2.1 with PKCE and dynamic client registration, and it listed three specific scopes (mcp:read, mcp:write, mcp:run). The transcript only shows truncated page text, so I could not check the scope details word for word. The specifics are plausible and consistent with the pages it read.
- 2026-10-04T21:48:21.399516+00:00 · tool_call · navigate
{ "step": { "ts": "2026-10-04T21:48:21.169Z", "kind": "tool_call", "name": "navigate", "input": { "url": "https://www.stuntdouble.io" } }, "stepIndex": 0 } - 2026-10-04T21:48:23.236756+00:00 · tool_result · navigate
{ "step": { "ts": "2026-10-04T21:48:23.008Z", "kind": "tool_result", "name": "navigate", "text": "Navigated to https://www.stuntdouble.io/\nNow on https://www.stuntdouble.io/ (Stunt Double: product testing and user research by AI users)" }, "stepIndex": 1 } - 2026-10-04T21:48:24.676738+00:00 · screenshot
{ "stepIndex": 1 }
- 2026-10-04T21:48:26.2714+00:00 · tool_call · read_page
{ "step": { "ts": "2026-10-04T21:48:26.037Z", "kind": "tool_call", "name": "read_page", "input": { "filter": "visible" } }, "stepIndex": 2 } - 2026-10-04T21:48:26.62475+00:00 · tool_result · read_page
{ "step": { "ts": "2026-10-04T21:48:26.061Z", "kind": "tool_result", "name": "read_page", "text": "banner [ref_1]\n navigation \"Main\" [ref_2]\n link \"Stunt Double home\" href=\"/\" [ref_3]\n navigation \"Sections\" [ref_4]\n list [ref_5]\n listitem [ref_6]\n button \"Product\" [ref_7]\n listitem [ref_8]\n button \"Resources\" [ref_9]\n listitem [ref_10]\n link \"Pricing\" href=\"/pricing\" [ref_11]\n button \"Search\" [ref_12]\n button \"Use light theme\" [ref_13]\n link \"Cast an actor\" href=\"https://app.stuntdouble.io/login\" [ref_14]\nmain [ref_15]\n heading \"Launch like you’ve done it before.\" [ref_16]\n text \"Launch like\" [ref_17]\n text \"you’ve done it before.\" [ref_18]\n text \"Stunt Double’s actors drive a real browser through your product, prototype or Figma design, and show\" [ref_19]\n link \"Run an actor\" href=\"https://app.stuntdouble.io/login?ref=hero-default\" [ref_20]\n link \"Watch a demo\" href=\"https://app.stuntdouble.io/demo?url=https%3A%2F%2Fparlour.demo.stuntdouble.dev&ref=hero-default\" [ref_21]\n text \"Free to start, or watch a live demo.\" [ref_22]\n img \"The first-time diner books a table at Ondine, a demo restaurant: the screens they passed through, the two frictions they hit marked where they happened, and those frictions joining the rest of the panel's observations in the round's three themes\" [ref_23]\ntext \"We use cookies as described in our privacy policy.\" [ref_24]\nbutton \"Decline\" [ref_25]\nbutton \"Allow\" [ref_26]" }, "stepIndex": 3 } - 2026-10-04T21:48:28.297513+00:00 · tool_call · click
{ "step": { "ts": "2026-10-04T21:48:28.086Z", "kind": "tool_call", "name": "click", "input": { "ref": "ref_9" } }, "stepIndex": 4 } - 2026-10-04T21:48:30.229756+00:00 · tool_result · click
{ "step": { "ts": "2026-10-04T21:48:30.011Z", "kind": "tool_result", "name": "click", "text": "left click on ref_9 at (643, 28)\nNow on https://www.stuntdouble.io/ (Stunt Double: product testing and user research by AI users)" }, "stepIndex": 5 } - 2026-10-04T21:48:31.73341+00:00 · screenshot
{ "stepIndex": 5 }
- 2026-10-04T21:48:32.611502+00:00 · tool_call · read_page
{ "step": { "ts": "2026-10-04T21:48:32.406Z", "kind": "tool_call", "name": "read_page", "input": { "filter": "visible" } }, "stepIndex": 6 } - 2026-10-04T21:48:32.979446+00:00 · tool_result · read_page
{ "step": { "ts": "2026-10-04T21:48:32.425Z", "kind": "tool_result", "name": "read_page", "text": "banner [ref_1]\n navigation \"Main\" [ref_2]\n link \"Stunt Double home\" href=\"/\" [ref_3]\n navigation \"Sections\" [ref_4]\n list [ref_5]\n listitem [ref_6]\n button \"Product\" [ref_7]\n listitem [ref_8]\n button \"Resources\" [ref_9]\n listitem [ref_10]\n link \"Pricing\" href=\"/pricing\" [ref_11]\n text \"LEARN\" [ref_27]\n list [ref_28]\n listitem [ref_29]\n link \"Documentation Quickstart, core concepts, tutorials and the API reference.\" href=\"/support/docs\" [ref_30]\n text \"Documentation\" [ref_31]\n text \"Quickstart, core concepts, tutorials and the API reference.\" [ref_32]\n listitem [ref_33]\n link \"Guides Longer reads on user research, agent experience and shipping faster.\" href=\"/guides\" [ref_34]\n text \"Guides\" [ref_35]\n text \"Longer reads on user research, agent experience and shipping faster.\" [ref_36]\n listitem [ref_37]\n link \"Blog Backstage: notes from building and using Stunt Double.\" href=\"/blog\" [ref_38]\n text \"Blog\" [ref_39]\n text \"Backstage: notes from building and using Stunt Double.\" [ref_40]\n listitem [ref_41]\n link \"Design How we design Stunt Double, and designing for people and their agents.\" href=\"/design\" [ref_42]\n text \"Design\" [ref_43]\n text \"How we design Stunt Double, and designing for people and their agents.\" [ref_44]\n listitem [ref_45]\n link \"Stunt Double Index A public ranking of how AI agents get on with real websites.\" href=\"https://index.stuntdouble.io\" [ref_46]\n text \"Stunt Double Index\" [ref_47]\n text \"A public ranking of how AI agents get on with real websites.\" [ref_48]\n text \"HELP\" [ref_49]\n list [ref_50]\n listitem [ref_51]\n link \"Support Answers to common questions, and a way to reach a human.\" href=\"/support\" [ref_52]\n text \"Support\" [ref_53]\n text \"Answers to common questions, and a way to reach a human.\" [ref_54]\n listitem [ref_55]\n link \"Security How we handle your credentials and data, and our compliance posture.\" href=\"/security\" [ref_56]\n text \"Security\" [ref_57]\n text \"How we handle your credentials and data, and our compliance posture.\" [ref_58]\n button \"Search\" [ref_12]\n button \"Use light theme\" [ref_13]\n link \"Cast an actor\" href=\"https://app.stuntdouble.io/login\" [ref_14]\nmain [ref_15]\n heading \"Launch like you’ve done it before.\" [ref_16]\n text \"Launch like\" [ref_17]\n text \"you’ve done it before.\" [ref_18]\n text \"Stunt Double’s actors drive a real browser through your product, prototype or Figma design, and show\" [ref_19]\n link \"Run an actor\" href=\"https://app.stuntdouble.io/login?ref=hero-default\" [ref_20]\n link \"Watch a demo\" href=\"https://app.stuntdouble.io/demo?url=https%3A%2F%2Fparlour.demo.stuntdouble.dev&ref=hero-default\" [ref_21]\n text \"Free to start, or watch a live demo.\" [ref_22]\n img \"The first-time diner books a table at Ondine, a demo restaurant: the screens they passed through, the two frictions they hit marked where they happened, and those frictions joining the rest of the panel's observations in the round's three themes\" [ref_23]\ntext \"We use cookies as described in our privacy policy.\" [ref_24]\nbutton \"Decline\" [ref_25]\nbutton \"Allow\" [ref_26]" }, "stepIndex": 7 } - 2026-10-04T21:48:34.912308+00:00 · tool_call · click
{ "step": { "ts": "2026-10-04T21:48:34.681Z", "kind": "tool_call", "name": "click", "input": { "ref": "ref_30" } }, "stepIndex": 8 } - 2026-10-04T21:48:36.722641+00:00 · tool_result · click
{ "step": { "ts": "2026-10-04T21:48:36.507Z", "kind": "tool_result", "name": "click", "text": "left click on ref_30 at (496, 137)\nNow on https://www.stuntdouble.io/support/docs (Documentation | Stunt Double)" }, "stepIndex": 9 } - 2026-10-04T21:48:38.195027+00:00 · screenshot
{ "stepIndex": 9 }
- 2026-10-04T21:48:39.396737+00:00 · tool_call · read_page
{ "step": { "ts": "2026-10-04T21:48:38.581Z", "kind": "tool_call", "name": "read_page", "input": { "filter": "visible" } }, "stepIndex": 10 } - 2026-10-04T21:48:39.752048+00:00 · tool_result · read_page
{ "step": { "ts": "2026-10-04T21:48:38.597Z", "kind": "tool_result", "name": "read_page", "text": "banner [ref_1]\n navigation \"Main\" [ref_2]\n link \"Stunt Double home\" href=\"/\" [ref_3]\n navigation \"Sections\" [ref_4]\n list [ref_5]\n listitem [ref_6]\n button \"Product\" [ref_7]\n listitem [ref_8]\n button \"Resources\" [ref_9]\n listitem [ref_10]\n link \"Pricing\" href=\"/pricing\" [ref_11]\n button \"Search\" [ref_12]\n button \"Use light theme\" [ref_13]\n link \"Cast an actor\" href=\"https://app.stuntdouble.io/login\" [ref_14]\nmain [ref_15]\n navigation \"Documentation\" [ref_59]\n link \"Support\" href=\"/support\" [ref_60]\n list [ref_61]\n listitem [ref_62]\n text \"GETTING STARTED\" [ref_63]\n list [ref_64]\n listitem [ref_65]\n link \"Introduction\" href=\"/support/docs\" [ref_66]\n listitem [ref_67]\n link \"Quickstart\" href=\"/support/docs/getting-started\" [ref_68]\n listitem [ref_69]\n text \"CONCEPTS\" [ref_70]\n list [ref_71]\n listitem [ref_72]\n link \"Core concepts\" href=\"/support/docs/concepts\" [ref_73]\n listitem [ref_74]\n text \"TUTORIALS\" [ref_75]\n list [ref_76]\n listitem [ref_77]\n link \"Overview\" href=\"/support/docs/tutorials\" [ref_78]\n listitem [ref_79]\n link \"Build an actor that behaves like your audience\" href=\"/support/docs/tutorials/first-actor\" [ref_80]\n listitem [ref_81]\n link \"Write checklists that catch real regressions\" href=\"/support/docs/tutorials/effective-checklists\" [ref_82]\n main [ref_83]\n heading \"Stunt Double documentation\" [ref_84]\n text \"Stunt Double is an AI-powered assistant platform. You create actors, AI assistants that can drive a \" [ref_85]\n text \"This documentation covers the concepts behind the platform and how to operate it, both from the dash\" [ref_86]\n heading \"Where to start\" [ref_87]\n text \"If you are new to Stunt Double, read these in order:\" [ref_88]\ntext \"We use cookies as described in our privacy policy.\" [ref_24]\nbutton \"Decline\" [ref_25]\nbutton \"Allow\" [ref_26]" }, "stepIndex": 11 } - 2026-10-04T21:48:40.46737+00:00 · tool_call · read_page
{ "step": { "ts": "2026-10-04T21:48:40.262Z", "kind": "tool_call", "name": "read_page", "input": { "ref": "ref_59", "filter": "all" } }, "stepIndex": 12 } - 2026-10-04T21:48:40.809034+00:00 · tool_result · read_page
{ "step": { "ts": "2026-10-04T21:48:40.278Z", "kind": "tool_result", "name": "read_page", "text": "navigation \"Documentation\" [ref_59]\n link \"Support\" href=\"/support\" [ref_60]\n list [ref_61]\n listitem [ref_62]\n text \"GETTING STARTED\" [ref_63]\n list [ref_64]\n listitem [ref_65]\n link \"Introduction\" href=\"/support/docs\" [ref_66]\n listitem [ref_67]\n link \"Quickstart\" href=\"/support/docs/getting-started\" [ref_68]\n listitem [ref_69]\n text \"CONCEPTS\" [ref_70]\n list [ref_71]\n listitem [ref_72]\n link \"Core concepts\" href=\"/support/docs/concepts\" [ref_73]\n listitem [ref_74]\n text \"TUTORIALS\" [ref_75]\n list [ref_76]\n listitem [ref_77]\n link \"Overview\" href=\"/support/docs/tutorials\" [ref_78]\n listitem [ref_79]\n link \"Build an actor that behaves like your audience\" href=\"/support/docs/tutorials/first-actor\" [ref_80]\n listitem [ref_81]\n link \"Write checklists that catch real regressions\" href=\"/support/docs/tutorials/effective-checklists\" [ref_82]\n listitem [ref_89]\n link \"Run a user interview\" href=\"/support/docs/tutorials/running-an-interview\" [ref_90]\n listitem [ref_91]\n link \"Automate multi-step workflows\" href=\"/support/docs/tutorials/building-workflows\" [ref_92]\n listitem [ref_93]\n link \"Turn runs into insights\" href=\"/support/docs/tutorials/reviewing-runs\" [ref_94]\n listitem [ref_95]\n link \"Collect stakeholder feedback on a prototype\" href=\"/support/docs/tutorials/feedback-widget\" [ref_96]\n listitem [ref_97]\n link \"Review designs from Slack\" href=\"/support/docs/tutorials/slack-design-review\" [ref_98]\n listitem [ref_99]\n link \"Test a product behind your firewall\" href=\"/support/docs/tutorials/self-hosted-worker\" [ref_100]\n listitem [ref_101]\n link \"Automate Stunt Double from Claude\" href=\"/support/docs/tutorials/automate-with-mcp\" [ref_102]\n listitem [ref_103]\n text \"OPEN SOURCE\" [ref_104]\n list [ref_105]\n listitem [ref_106]\n link \"Stuntkit\" href=\"/support/docs/stuntkit\" [ref_107]\n listitem [ref_108]\n link \"Give an AI agent a safe browser\" href=\"/support/docs/stuntkit/browser-toolset\" [ref_109]\n listitem [ref_110]\n text \"GUIDES\" [ref_111]\n list [ref_112]\n listitem [ref_113]\n link \"Integration guides\" href=\"/guides\" [ref_114]\n listitem [ref_115]\n text \"API\" [ref_116]\n list [ref_117]\n listitem [ref_118]\n link \"API overview\" href=\"/support/docs/api\" [ref_119]\n listitem [ref_120]\n link \"MCP server\" href=\"/support/docs/api/mcp\" [ref_121]" }, "stepIndex": 13 } - 2026-10-04T21:48:42.231641+00:00 · tool_call · navigate
{ "step": { "ts": "2026-10-04T21:48:42.009Z", "kind": "tool_call", "name": "navigate", "input": { "url": "https://www.stuntdouble.io/support/docs/api" } }, "stepIndex": 14 } - 2026-10-04T21:48:43.718129+00:00 · tool_result · navigate
{ "step": { "ts": "2026-10-04T21:48:43.509Z", "kind": "tool_result", "name": "navigate", "text": "Navigated to https://www.stuntdouble.io/support/docs/api\nNow on https://www.stuntdouble.io/support/docs/api (API documentation | Stunt Double)" }, "stepIndex": 15 } - 2026-10-04T21:48:44.82081+00:00 · screenshot
{ "stepIndex": 15 }
- 2026-10-04T21:48:45.775118+00:00 · tool_call · get_page_text
{ "step": { "ts": "2026-10-04T21:48:45.567Z", "kind": "tool_call", "name": "get_page_text", "input": {} }, "stepIndex": 16 } - 2026-10-04T21:48:46.124567+00:00 · tool_result · get_page_text
{ "step": { "ts": "2026-10-04T21:48:45.582Z", "kind": "tool_result", "name": "get_page_text", "text": "Support GETTING STARTED Introduction Quickstart CONCEPTS Core concepts TUTORIALS Overview Build an actor that behaves like your audience Write checklists that catch real regressions Run a user interview Automate multi-step workflows Turn runs into insights Collect stakeholder feedback on a prototype Review designs from Slack Test a product behind your firewall Automate Stunt Double from Claude OPEN SOURCE Stuntkit Give an AI agent a safe browser GUIDES Integration guides API API overview MCP server Stunt Double API Stunt Double exposes its platform programmatically through a Model Context Protocol (MCP) server. MCP is an open standard for connecting AI clients to tools and data, which means you can drive your workspace from Claude, from your own agents, or from any MCP-compatible client, without writing a bespoke integration. The MCP server The server is hosted by the product app at: https://app.stuntdouble.io/api/mcp It speaks the Streamable HTTP transport. Point any MCP client at that URL to list and call the available tools. For a full walkthrough, including client configuration, see the MCP server page. What you can manage The server groups its tools by the resource they act on: Resource What you can do Workspaces List workspaces and members, read workspace details Actors List, read, create, and update actors Knowledge List, add, and remove an actor's knowledge Conversations List and read conversations Checklists List, read, run checklists, and read checklist runs Workflows List, read, run workflows, and read workflow runs Feedback List and read feedback, and update its status Interviews Create, read, update, launch interviews, and read interview reports Authentication Access is authorised with OAuth 2.1. MCP clients that support OAuth will discover the authorisation and token endpoints automatically and prompt you to sign in to your Stunt Double workspace the first time you connect. Tokens are scoped, so a client can ask for only the access it needs: Scope What it allows mcp:read Read workspaces and their contents: projects, actors, checklists, interviews, workflows and results mcp:write Create and edit projects, actors, knowledge, guidelines, checklists, interviews and workflows mcp:run Start checklist runs, workflow runs and interviews, which use the workspace run allowance A client that requests no scope is granted all three. A token only lists the tools its scopes cover, and every tool also checks that you are a member of the workspace it was asked about. The authorisation server publishes its RFC 8414 metadata, including scopes_supported. Versioning and deprecation The MCP server is versioned by the protocol itself: a client negotiates a version at initialize and sends it on every later request in the MCP-Protocol-Version header. The public HTTP endpoints follow semantic versioning (info.version in the OpenAPI spec). A breaking change ships under a new path or header value alongside the old one, never in place. When something is deprecated, it is marked deprecated: true in the OpenAPI spec, its responses carry a Deprecation header (RFC 9745) and a Sunset header (RFC 8594) with the removal date, and the change is announced in the changelog at least 90 days before removal. Nothing is deprecated today. Rate limits Uncached endpoints on www.stuntdouble.io (health, the public docs MCP server, and error responses under /api) allow 120 requests per minute per client, and say so on every response with the IETF RateLimit headers: RateLimit-Policy: \"public-api\";q=120;w=60 RateLimit: \"public-api\";r=119;t=60 r is the requests left and t the seconds until the window resets. Over the limit, the response is a 429 with a Retry-After header and a JSON body whose error.code is rate_limited. Wait that many seconds before retrying. Public docs MCP server Agents that have not signed in can still connect over MCP. A read-only server at https://www.stuntdouble.io/api/docs-mcp needs no authentication and exposes Stunt Double's documentation as resources: llms.txt, the homepage as Markdown, the OpenAPI spec and the MCP manifest. It has no tools; to act on a workspace, connect to the product server above. A POST to https://www.stuntdouble.io/.well-known/mcp reaches the same docs server. Discovery The platform publishes a manifest at https://www.stuntdouble.io/.well-known/mcp.json describing the server, its transport, authentication, and tools. MCP registries and clients use this to discover the integration. The same manifest is served at https://www.stuntdouble.io/.well-known/mcp. Each MCP server also has a server card on the host that serves it: the docs server's at https://www.stuntdouble.io/.well-known/mcp/server-card.json, the product server's at https://app.stuntdouble.io/.well-known/mcp/server-card.json. The AI Catalogue at https://www.stuntdouble.io/.well-known/ai-catalog.json lists both. The OAuth metadata documents are served on this site as well as on app.stuntdouble.io, and name app.stuntdouble.io as the issuer either way. The public HTTP endpoints on this site (discovery files, health, the desktop release feed, and the MCP entry point) are described by the Stunt Double OpenAPI spec at https://www.stuntdouble.io/openapi.json. Agents can also read the site as Markdown: /llms.txt says when to use Stunt Double and how to connect, and the homepage returns Markdown to requests that send Accept: text/markdown." }, "stepIndex": 17 } - 2026-10-04T21:48:47.649847+00:00 · tool_call · navigate
{ "step": { "ts": "2026-10-04T21:48:47.426Z", "kind": "tool_call", "name": "navigate", "input": { "url": "https://www.stuntdouble.io/support/docs/api/mcp" } }, "stepIndex": 18 } - 2026-10-04T21:48:49.44468+00:00 · tool_result · navigate
{ "step": { "ts": "2026-10-04T21:48:49.118Z", "kind": "tool_result", "name": "navigate", "text": "Navigated to https://www.stuntdouble.io/support/docs/api/mcp\nNow on https://www.stuntdouble.io/support/docs/api/mcp (MCP server | Stunt Double)" }, "stepIndex": 19 } - 2026-10-04T21:48:50.590907+00:00 · screenshot
{ "stepIndex": 19 }
- 2026-10-04T21:48:51.346395+00:00 · tool_call · get_page_text
{ "step": { "ts": "2026-10-04T21:48:51.148Z", "kind": "tool_call", "name": "get_page_text", "input": {} }, "stepIndex": 20 } - 2026-10-04T21:48:51.696884+00:00 · tool_result · get_page_text
{ "step": { "ts": "2026-10-04T21:48:51.163Z", "kind": "tool_result", "name": "get_page_text", "text": "Support GETTING STARTED Introduction Quickstart CONCEPTS Core concepts TUTORIALS Overview Build an actor that behaves like your audience Write checklists that catch real regressions Run a user interview Automate multi-step workflows Turn runs into insights Collect stakeholder feedback on a prototype Review designs from Slack Test a product behind your firewall Automate Stunt Double from Claude OPEN SOURCE Stuntkit Give an AI agent a safe browser GUIDES Integration guides API API overview MCP server MCP server The Stunt Double MCP server lets an AI client manage your workspace directly: create actors, run checklists, launch interviews, and read the results. This page covers how to connect and what the server can do. Endpoint https://app.stuntdouble.io/api/mcp The server uses the Streamable HTTP transport. The marketing host also answers MCP discovery probes at /, /mcp, and /jsonrpc and redirects real requests to the endpoint above, so pointing a client at www.stuntdouble.io also resolves to the canonical server. For agents that have not signed in, a separate read-only public docs server at https://www.stuntdouble.io/api/docs-mcp serves the documentation as MCP resources, without authentication. Connecting a client Most MCP clients accept a remote server by URL. In a client that uses a JSON config (such as Claude), add the server like this: { \"mcpServers\": { \"stunt-double\": { \"url\": \"https://app.stuntdouble.io/api/mcp\" } } } The first time you connect, the client runs the OAuth flow and asks you to sign in to your Stunt Double workspace. After you approve, the client can list and call tools on your behalf. In Claude Code, add it from the terminal: claude mcp add --transport http stuntdouble https://app.stuntdouble.io/api/mcp Or install the Stunt Double plugin, which bundles the server with the skills and agents below: claude plugin marketplace add stunt-double/stuntdouble-mcp claude plugin install stuntdouble@stuntdouble Skills Skills teach an agent how to use the server well for a particular job: which tools to call in what order, what makes a good check, and when to stop and report. They install into Claude Code, Cursor, Codex, OpenCode and other agents that read SKILL.md files, using the skills CLI, and work alongside the server rather than replacing it, so connect the server too. Install the task skills from the stuntdouble-mcp repository: npx skills add stunt-double/stuntdouble-mcp The CLI lists them so you can pick; add --skill <name> to install one. Skill Use it to verify-change Check a code change on its preview URL and report back on the pull request setup-guardrails Re-run checklists for critical flows on a schedule or on every deploy maintain-automations Retime, rewire or branch an existing automation, and update checks without losing history run-qa-suite Run every workflow and checklist and produce a release-readiness report run-ux-validation Validate a user journey and report where users get stuck run-user-interview Plan and launch a structured interview with AI participants, then read the report design-review Gather reactions from several actors on a proposed design or flow create-actor-panel Create actors with the knowledge a realistic user would have triage-feedback Review, categorise and resolve feedback across projects check-brand Audit a product against brand and tone-of-voice guidelines check-design-system Audit rendered pages against the design system check-compliance Check consent, disclosures and other legal requirements, with evidence for counsel check-continuity Check that pricing, terminology and promises match across surfaces check-agent-readiness Read a site's Index score, explain it from agent sessions, and re-score after fixes For a single general-purpose skill instead, install the one this site publishes for Agent Skills discovery: npx skills add https://www.stuntdouble.io Authentication Access is authorised with OAuth 2.1: Authorisation URL: https://app.stuntdouble.io/oauth/authorize Token URL: https://app.stuntdouble.io/oauth/token Clients register themselves (dynamic client registration) and use PKCE, and discover all of this from the authorisation server metadata. Tokens carry scopes, and a token lists only the tools its scopes cover: mcp:read: the get_*, list_*, search and search_index_domains tools. mcp:write: tools that create, edit or delete, plus comment_on_pr, summarise_feedback and regenerate_interview_report. mcp:run: run_checklist, run_workflow and launch_interview, which use the workspace run allowance, and request_index_rerun. A client that requests no scope is granted all three. A token acts as the person who approved it, and every tool also checks that they are a member of the workspace it was asked about, so a connected client never reaches more than that person reaches in the dashboard. Revoke a connection from Settings > Connections. Available tools The server exposes 67 tools, grouped by resource. Start with search: it covers every resource type below, so it is usually a shorter path to the thing you want than listing one type and filtering it yourself. Account and search get_me, search Workspaces list_workspaces, get_workspace, list_workspace_members Projects list_projects, get_project, create_project, list_project_mcp_servers A project is the product a checklist, workflow or piece of feedback is tracked against. list_project_mcp_servers reports the MCP servers a project's runs can reach: a server that is not listed is not available to the run. Guidelines list_workspace_guidelines, add_workspace_guideline, update_workspace_guideline, remove_workspace_guideline list_project_guidelines, add_project_guideline, set_project_guideline Guidelines are the standing rules a project is held to: a design system, tone of voice, brand, compliance, accessibility. Rules live in a workspace library and are attached to the projects they apply to, so one rule can be held by several projects and edited in one place. Actors list_actors, get_actor, create_actor, update_actor Knowledge list_actor_knowledge, add_actor_knowledge, remove_actor_knowledge Conversations list_conversations, get_conversation Checklists list_checklists, get_checklist, get_checklist_run, run_checklist, create_checklist, update_checklist, delete_checklist, flag_check_verdict delete_checklist discards run history, which is the regression signal for that flow. Prefer re-running an existing checklist over creating a second one covering the same ground. When a run got a verdict wrong, flag_check_verdict records the correction (should have passed, or should have failed) with a note on what was actually true. Later runs of the checklist read it, and get_checklist_run returns it beside the verdict as verdict_correction. Workflows list_workflows, get_workflow, run_workflow, get_workflow_run, create_workflow, update_workflow, toggle_workflow, delete_workflow add_workflow_step, update_workflow_step, remove_workflow_step, connect_workflow_steps, reorder_workflow_steps A workflow is a multi-step automation that re-runs checks on a schedule or on an event. Steps are managed separately from the workflow itself, and run by following the connections between them, which connect_workflow_steps and reorder_workflow_steps set. Feedback list_feedback, get_feedback, update_feedback_status, summarise_feedback summarise_feedback turns a project's comments into themes ranked by severity and an implementation brief written to be handed to a coding agent. Read the brief before proposing changes rather than reasoning over the raw comments. Interviews list_interviews, get_interview, create_interview, update_interview, add_interview_section, add_interview_item, add_interview_participant, get_interview_participant, get_interview_report, launch_interview, regenerate_interview_report GitHub list_pull_requests, get_pull_request, comment_on_pr These need the workspace GitHub connection. Pair them with a checklist run against a preview deployment to report what an actor found back onto the pull request. Index get_index_report, list_index_sessions, search_index_domains, request_index_rerun Reads from the Stunt Double Index, the public ranking of how AI agents experience websites. get_index_report takes a domain, or a project_id to use the domain linked to that project, and returns the overall score, category and provider scores, frictions and failing checks. list_index_sessions returns the agent sessions behind a score. Index data is public, so these read any tracked site, not only your own. request_index_rerun re-scores a domain you own: a platform admin, the person who claimed it, or, while it is unclaimed, someone signed in with a work email on that exact domain. It refreshes the probes straight away and starts about 24 agent sessions that finish over a few minutes, and a domain can be re-run once every 10 minutes. Prompts The server also ships ten prompts, which most clients surface as slash commands or starters: stuntdouble_guide, validate_design, verify_change, run_user_research, triage_feedback, setup_guardrails check_brand, check_design_system, check_compliance, check_continuity The four check_* prompts are the standards side of the same machinery: they codify a rule, assert it as observable checks, and re-run it rather than asking a model to eyeball a page each time. Resources Resources are read-only context a client can attach without calling a tool: URI Type What stuntdouble://guide text/markdown What Stunt Double does, when to reach for it, the tool catalogue and how to poll a run. stuntdouble://connection application/json Who the connection acts as, the scopes it holds, the tools each unlocks and any it lacks. stuntdouble://workspaces application/json The workspaces the connection can reach, with your role. Needs mcp:read. stuntdouble://workspaces/{workspace_id}/projects application/json The live projects in one workspace, most recently opened first. Needs mcp:read. The guide and the connection are always listed. The workspace resources carry the same data as list_workspaces and list_projects, and resources/list includes one projects entry per workspace, so a client can browse them without expanding the template. Discovery manifest Registries and clients can discover the server from its published manifest: https://www.stuntdouble.io/.well-known/mcp.json It describes the server name, transport, authentication, and the tool list above, following the MCP manifest schema. The server is also listed in the official MCP Registry as io.stuntdouble/mcp-server, which registry-backed clients and directories read: https://registry.modelcontextprotocol.io/v0.1/servers?search=io.stuntdouble/mcp-server" }, "stepIndex": 21 } - 2026-10-04T21:48:55.348514+00:00 · tool_call · done
{ "step": { "ts": "2026-10-04T21:48:55.115Z", "kind": "tool_call", "name": "done", "input": { "message": "API Docs URL: https://www.stuntdouble.io/support/docs/api (and detailed MCP reference at https://www.stuntdouble.io/support/docs/api/mcp)\nAuth Model: OAuth 2.1 (supports dynamic client registration and PKCE)\nSupported Scopes:\n- mcp:read: Read workspaces and their contents (projects, actors, checklists, interviews, workflows, results)\n- mcp:write: Create and edit projects, actors, knowledge, guidelines, checklists, interviews, and workflows\n- mcp:run: Start checklist runs, workflow runs, and interviews" } }, "stepIndex": 22 }