Skip to main content

Session 6a6f0a3b

Provider: Claude • Model: claude-sonnet-5 • Category: delegated-access • Score: 100.0 (Excellent)

Rubric evidence

The agent successfully navigated to the API reference page (/support/docs/api), correctly described the auth model (OAuth 2.1 via MCP with auto-discovery of endpoints), and listed three specific scopes (mcp:read, mcp:write, mcp:run) with descriptions.

  1. 2026-09-30T00:23:14.723482+00:00 · tool_call · navigate
    {
      "step": {
        "ts": "2026-09-30T00:23:14.513Z",
        "kind": "tool_call",
        "name": "navigate",
        "input": {
          "url": "https://www.stuntdouble.io"
        }
      },
      "stepIndex": 0
    }
  2. 2026-09-30T00:23:16.83318+00:00 · tool_result · navigate
    {
      "step": {
        "ts": "2026-09-30T00:23:16.607Z",
        "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, run by AI users)"
      },
      "stepIndex": 1
    }
  3. 2026-09-30T00:23:17.801264+00:00 · screenshot
    {
      "stepIndex": 1
    }
    session step screenshot
  4. 2026-09-30T00:23:18.450535+00:00 · tool_call · click
    {
      "step": {
        "ts": "2026-09-30T00:23:18.240Z",
        "kind": "tool_call",
        "name": "click",
        "input": {
          "ref": "ref_2"
        }
      },
      "stepIndex": 2
    }
  5. 2026-09-30T00:23:18.822821+00:00 · tool_result · click
    {
      "step": {
        "ts": "2026-09-30T00:23:18.321Z",
        "kind": "tool_result",
        "name": "click",
        "text": "Error: ref_2 is stale or not found on the current page. Re-read the page to get fresh references."
      },
      "stepIndex": 3
    }
  6. 2026-09-30T00:23:19.406254+00:00 · tool_call · find
    {
      "step": {
        "ts": "2026-09-30T00:23:19.196Z",
        "kind": "tool_call",
        "name": "find",
        "input": {
          "query": "Resources menu"
        }
      },
      "stepIndex": 4
    }
  7. 2026-09-30T00:23:19.77012+00:00 · tool_result · find
    {
      "step": {
        "ts": "2026-09-30T00:23:19.226Z",
        "kind": "tool_result",
        "name": "find",
        "text": "button \"Resources\" [ref_1]\nlink \"All resources\" href=\"/resources\" [ref_2]"
      },
      "stepIndex": 5
    }
  8. 2026-09-30T00:23:20.32458+00:00 · tool_call · click
    {
      "step": {
        "ts": "2026-09-30T00:23:20.121Z",
        "kind": "tool_call",
        "name": "click",
        "input": {
          "ref": "ref_1"
        }
      },
      "stepIndex": 6
    }
  9. 2026-09-30T00:23:23.170053+00:00 · tool_result · click
    {
      "step": {
        "ts": "2026-09-30T00:23:21.917Z",
        "kind": "tool_result",
        "name": "click",
        "text": "left click on ref_1 at (643, 28)\nNow on https://www.stuntdouble.io/ (Stunt Double: product testing and user research, run by AI users)"
      },
      "stepIndex": 7
    }
  10. 2026-09-30T00:23:24.743772+00:00 · screenshot
    {
      "stepIndex": 7
    }
    session step screenshot
  11. 2026-09-30T00:23:25.116388+00:00 · tool_call · click
    {
      "step": {
        "ts": "2026-09-30T00:23:22.900Z",
        "kind": "tool_call",
        "name": "click",
        "input": {
          "ref": "ref_2"
        }
      },
      "stepIndex": 8
    }
  12. 2026-09-30T00:23:25.838776+00:00 · tool_result · click
    {
      "step": {
        "ts": "2026-09-30T00:23:25.114Z",
        "kind": "tool_result",
        "name": "click",
        "text": "left click on ref_2 at (693, 333)\nNow on https://www.stuntdouble.io/ (Stunt Double: product testing and user research, run by AI users)"
      },
      "stepIndex": 9
    }
  13. 2026-09-30T00:23:28.069845+00:00 · screenshot
    {
      "stepIndex": 9
    }
    session step screenshot
  14. 2026-09-30T00:23:28.434786+00:00 · tool_call · find
    {
      "step": {
        "ts": "2026-09-30T00:23:26.729Z",
        "kind": "tool_call",
        "name": "find",
        "input": {
          "query": "Documentation link in menu"
        }
      },
      "stepIndex": 10
    }
  15. 2026-09-30T00:23:28.802401+00:00 · tool_result · find
    {
      "step": {
        "ts": "2026-09-30T00:23:26.754Z",
        "kind": "tool_result",
        "name": "find",
        "text": "link \"Documentation Quickstart, core concepts, tutorials and the API reference.\" href=\"/support/docs\" [ref_3]\nlink \"Documentation\" href=\"/support/docs\" [ref_4]\nlink \"Stunt Double home\" href=\"/\" [ref_5]\nlink \"Pricing\" href=\"/pricing\" [ref_6]\nlink \"Guides Longer reads on user research, agent experience and shipping faster.\" href=\"/guides\" [ref_7]\nlink \"Blog Backstage: notes from building and using Stunt Double.\" href=\"/blog\" [ref_8]\nlink \"Design How we design Stunt Double, and designing for people and their agents.\" href=\"/design\" [ref_9]\nlink \"Support Answers to common questions, and a way to reach a human.\" href=\"/support\" [ref_10]\nlink \"Security How we handle your credentials and data, and our compliance posture.\" href=\"/security\" [ref_11]\nlink \"Cast an actor\" href=\"https://app.stuntdouble.io/login\" [ref_12]\nlink \"Stunt Double home\" href=\"/\" [ref_13]\nlink href=\"https://index.stuntdouble.io/d/stuntdouble.io?ref=badge\" [ref_14]\nlink \"Overview\" href=\"/product\" [ref_15]\nlink \"Features\" href=\"/features\" [ref_16]\nlink \"Synthetic research\" href=\"/synthetic-research\" [ref_17]\nlink \"Use cases\" href=\"/use-cases\" [ref_18]\nlink \"Integrations\" href=\"/integrations\" [ref_19]\nlink \"Pricing\" href=\"/pricing\" [ref_20]\nlink \"Changelog\" href=\"/changelog\" [ref_21]\nlink \"Download for Mac\" href=\"/api/desktop/download\" [ref_22]"
      },
      "stepIndex": 11
    }
  16. 2026-09-30T00:23:29.170009+00:00 · tool_call · navigate
    {
      "step": {
        "ts": "2026-09-30T00:23:27.729Z",
        "kind": "tool_call",
        "name": "navigate",
        "input": {
          "url": "https://www.stuntdouble.io/support/docs"
        }
      },
      "stepIndex": 12
    }
  17. 2026-09-30T00:23:29.597887+00:00 · tool_result · navigate
    {
      "step": {
        "ts": "2026-09-30T00:23:29.138Z",
        "kind": "tool_result",
        "name": "navigate",
        "text": "Navigated to https://www.stuntdouble.io/support/docs\nNow on https://www.stuntdouble.io/support/docs (Documentation | Stunt Double)"
      },
      "stepIndex": 13
    }
  18. 2026-09-30T00:23:31.056229+00:00 · screenshot
    {
      "stepIndex": 13
    }
    session step screenshot
  19. 2026-09-30T00:23:31.430404+00:00 · thinking
    {
      "step": {
        "ts": "2026-09-30T00:23:30.394Z",
        "kind": "thinking",
        "text": "Let me find the API reference section in the sidebar."
      },
      "stepIndex": 14
    }
  20. 2026-09-30T00:23:31.795257+00:00 · tool_call · find
    {
      "step": {
        "ts": "2026-09-30T00:23:30.394Z",
        "kind": "tool_call",
        "name": "find",
        "input": {
          "query": "API reference link in sidebar"
        }
      },
      "stepIndex": 15
    }
  21. 2026-09-30T00:23:32.161746+00:00 · tool_result · find
    {
      "step": {
        "ts": "2026-09-30T00:23:30.419Z",
        "kind": "tool_result",
        "name": "find",
        "text": "link \"API overview\" href=\"/support/docs/api\" [ref_1]\nlink \"API overview Automate Stunt Double from your own tools, or from Claude, over MCP.\" href=\"/support/docs/api\" [ref_2]\nlink \"Stunt Double home\" href=\"/\" [ref_3]\nlink \"Pricing\" href=\"/pricing\" [ref_4]\nlink \"Cast an actor\" href=\"https://app.stuntdouble.io/login\" [ref_5]\nlink \"Support\" href=\"/support\" [ref_6]\nlink \"Introduction\" href=\"/support/docs\" [ref_7]\nlink \"Quickstart\" href=\"/support/docs/getting-started\" [ref_8]\nlink \"Core concepts\" href=\"/support/docs/concepts\" [ref_9]\nlink \"Overview\" href=\"/support/docs/tutorials\" [ref_10]\nlink \"Build an actor that behaves like your audience\" href=\"/support/docs/tutorials/first-actor\" [ref_11]\nlink \"Write checklists that catch real regressions\" href=\"/support/docs/tutorials/effective-checklists\" [ref_12]\nlink \"Privacy policy\" href=\"/privacy#website-analytics\" [ref_13]\nlink \"Skip to main content\" href=\"#main-content\" [ref_14]\nlink \"Run a user interview\" href=\"/support/docs/tutorials/running-an-interview\" [ref_15]\nlink \"Automate multi-step workflows\" href=\"/support/docs/tutorials/building-workflows\" [ref_16]\nlink \"Turn runs into insights\" href=\"/support/docs/tutorials/reviewing-runs\" [ref_17]\nlink \"Collect stakeholder feedback on a prototype\" href=\"/support/docs/tutorials/feedback-widget\" [ref_18]\nlink \"Review designs from Slack\" href=\"/support/docs/tutorials/slack-design-review\" [ref_19]\nlink \"Test a product behind your firewall\" href=\"/support/docs/tutorials/self-hosted-worker\" [ref_20]"
      },
      "stepIndex": 16
    }
  22. 2026-09-30T00:23:32.521197+00:00 · tool_call · navigate
    {
      "step": {
        "ts": "2026-09-30T00:23:31.817Z",
        "kind": "tool_call",
        "name": "navigate",
        "input": {
          "url": "https://www.stuntdouble.io/support/docs/api"
        }
      },
      "stepIndex": 17
    }
  23. 2026-09-30T00:23:33.892493+00:00 · tool_result · navigate
    {
      "step": {
        "ts": "2026-09-30T00:23:33.635Z",
        "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": 18
    }
  24. 2026-09-30T00:23:35.314077+00:00 · screenshot
    {
      "stepIndex": 18
    }
    session step screenshot
  25. 2026-09-30T00:23:35.678843+00:00 · thinking
    {
      "step": {
        "ts": "2026-09-30T00:23:34.793Z",
        "kind": "thinking",
        "text": "Let me read the full page text to find authentication/scopes info."
      },
      "stepIndex": 19
    }
  26. 2026-09-30T00:23:36.033793+00:00 · tool_call · get_page_text
    {
      "step": {
        "ts": "2026-09-30T00:23:34.793Z",
        "kind": "tool_call",
        "name": "get_page_text",
        "input": {}
      },
      "stepIndex": 20
    }
  27. 2026-09-30T00:23:36.407259+00:00 · tool_result · get_page_text
    {
      "step": {
        "ts": "2026-09-30T00:23:34.809Z",
        "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 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": 21
    }
  28. 2026-09-30T00:23:39.276239+00:00 · thinking
    {
      "step": {
        "ts": "2026-09-30T00:23:39.042Z",
        "kind": "thinking",
        "text": "Found the complete information needed."
      },
      "stepIndex": 22
    }
  29. 2026-09-30T00:23:39.643151+00:00 · tool_call · done
    {
      "step": {
        "ts": "2026-09-30T00:23:39.042Z",
        "kind": "tool_call",
        "name": "done",
        "input": {
          "message": "API docs URL: https://www.stuntdouble.io/support/docs/api\n\nAuth model: Stunt Double exposes its platform via a Model Context Protocol (MCP) server (hosted at https://app.stuntdouble.io/api/mcp using Streamable HTTP transport). Access is authorised with OAuth 2.1 — MCP clients that support OAuth auto-discover the authorization/token endpoints and prompt sign-in to a Stunt Double workspace. Tokens are scoped so a client only gets the access it requests; a client requesting no scope is granted all three scopes. The authorization server also publishes RFC 8414 metadata including scopes_supported.\n\nSupported OAuth scopes:\n1. mcp:read – Read workspaces and their contents: projects, actors, checklists, interviews, workflows and results.\n2. mcp:write – Create and edit projects, actors, knowledge, guidelines, checklists, interviews and workflows.\n3. mcp:run – Start checklist runs, workflow runs and interviews (consumes the workspace's run allowance).\n\nThere is also a separate unauthenticated, read-only \"public docs MCP server\" (https://www.stuntdouble.io/api/docs-mcp) that requires no auth and exposes only documentation resources (no tools/scopes)."
        }
      },
      "stepIndex": 23
    }