Skip to main content
Wire Cursor to the hosted ish MCP server so the agent can call ish tools (study_run, ask_run, person_generate, and the rest) from inside your editor. The server lives at https://mcp.ishlabs.io/mcp, speaks streamable HTTP, and signs you in over OAuth on first connect, so no token ever lands in a config file. For the full add mechanism and the OAuth handshake, see connect an agent.
Connect Cursor in one click. Use the “Connect to Cursor” action in this page’s ”…” menu to install the ish server straight into Cursor. To wire it yourself, the server URL is https://mcp.ishlabs.io/mcp and the manual steps are below.

Connect

Pick one path. Both write the same ~/.cursor/mcp.json server block and end with the same OAuth sign-in.
Install the CLI and let it write Cursor’s config block:
ish mcp add writes only the server URL, never a token. Run it with no flags first for a dry-run plan, then re-run with --yes to commit. See the ish mcp reference for every flag.
Use https://mcp.ishlabs.io/mcp with no trailing slash. The /mcp/ form triggers a redirect (HTTP 307) that some clients will not follow on a POST, leaving the agent with an empty tool list.

Sign in and confirm

Reconnect or restart Cursor so it runs the OAuth flow, approve the sign-in in your browser, then ask the agent a read-only question:
The agent calls workspace_get and reports your workspaces back. A brand-new account shows an empty list, which is still a successful connection.
The agent returns a workspace list (or an explicit empty list) instead of “no ish tools available”. That means the OAuth sign-in landed and the tools are live.

Run a study without hitting the tool-call cap

Cursor caps a single MCP tool call at roughly 30 seconds. Interactive and media simulations take one to five minutes, so a blocking study_run will hit that ceiling and return nothing. Prefer the non-blocking pattern: dispatch the run, then poll for the reactions.
1

Dispatch with wait=false

Call study_run with wait=false (the default). It dispatches the simulation and returns immediately with a next_action poll hint, well inside the 30-second window.
2

Poll for completion

Follow the next_action hint: call study_get with view="summary" every so often until every participant reaches a terminal state. Each poll is a fast read that stays under the cap.
3

Read the reactions

When the run is complete, study_get with view="summary" returns the journey: what people noticed, where they got stuck, and the reasoning behind each reaction. You get a narrative, not a single score.
The 30-second cap overrides timeout. Setting wait=true, timeout=300 still aborts at Cursor’s ceiling with no result. Reserve wait=true for fast jobs or clients with no short transport cap.
Full parameters and the blocking contract live in the study_run reference. For when to reach for study_run versus a quick ask_run, see run vs ask.

Troubleshooting

The OAuth step did not complete. Reconnect the server in Cursor, approve the sign-in in your browser, then ask again. Confirm the URL has no trailing slash.
You hit the 30-second tool-call cap. Re-run with wait=false and poll with study_get(view="summary"), as above. A wait that runs out of budget comes back with error_kind="wait_timeout" and the participant_ids set, so you can resume by polling those participants.
A drifted ish block is already in ~/.cursor/mcp.json, or the file is not valid JSON. Inspect it by hand, or re-run with ish mcp add --client cursor --force --yes to overwrite the ish block. Unrelated servers are preserved.

Next steps

Every MCP tool

All 40 hosted tools, grouped by domain.

Run a study

Create, iterate, run, and read studies across every modality.

Connect an agent

The add mechanism and OAuth, in full.

Other clients

Wire Claude Code, VS Code, ChatGPT, and more.