Skip to main content
Wire Claude Desktop to the hosted ish MCP server so the assistant can call ish tools (study_run, ask_run, person_generate, and the rest) from the desktop app. The server lives at https://mcp.ishlabs.io/mcp, speaks streamable HTTP, and signs you in over OAuth on first connect, so no token is written to your config. For the add mechanism and the OAuth handshake in full, see connect an agent.
You need an ish account. If you do not have one, get ish free first. The OAuth step signs Claude Desktop in as you.
Claude Desktop ships for macOS and Windows. There is no Linux release, so ish mcp add skips it on Linux. On Linux, drive ish from Claude Code or Cursor instead.

Connect

Pick one path. Both write the same ish server block to Claude Desktop’s config under the mcpServers key and leave OAuth to the server.
If you already have the ish CLI, let it write the config block:
ish mcp add --client claude-desktop --yes
Run ish mcp add with no flags first for a dry-run plan, then add --yes to commit. The command edits local JSON only and never embeds a token. ish mcp add --all --yes wires every detected client (Cursor, VS Code, Claude Code, Claude Desktop, Windsurf) in one pass. 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 assistant with an empty tool list.

Sign in and confirm

Restart Claude Desktop so it loads the ish server and runs the OAuth flow. Approve the sign-in in your browser, then ask a read-only question, which draws no credits:
Use the ish tools to confirm who I am and list my workspaces.
Claude Desktop calls workspace_get (read-only) and reports your workspaces. A brand-new account returns an empty list, which is still a successful connection. Claude Desktop reads MCP resources, so it can also surface ish://identity/me, the decoded identity for the session.
Claude Desktop returns a workspace list (or an explicit empty list) instead of “no ish tools available”. The OAuth sign-in landed and the tools are live.
If the assistant reports no ish tools, the OAuth step did not complete. Restart Claude Desktop, approve the sign-in in your browser, then ask again.

Read your first reaction

Run a study that already lives in your workspace and read back what a simulated person made of it. Tell Claude Desktop:
Find a study in my workspace, run it for a few people, and tell me what they noticed.
The assistant works through ish’s tools:
1

Discover a study

It calls study_get with your workspace_id to list studies and pick one.
2

Run it

It calls study_run with a small audience and wait=True, which blocks until every simulated person reaches a terminal state.
3

Read the reactions

It calls study_get with view="summary" and reports the journey: what people noticed, where they got stuck, and the reasoning behind each reaction.
You get a narrative reaction with the reasoning attached, not a single score. That is the loop: simulate a visit, read what landed, decide what to change.
No study in this workspace yet? Ask Claude Desktop to create one first (“create a study that points simulated readers at this URL and asks what they noticed”), then run it. study_create and study_run cover both. For the full walkthrough, see Quickstart: connect an AI agent.

Troubleshooting

The OAuth step did not complete, or the app has not reloaded the config. Restart Claude Desktop, approve the sign-in in your browser, then ask again. Confirm the URL has no trailing slash.
Detection keys off the config directory’s existence. Launch Claude Desktop at least once so it creates the directory, or wire it explicitly with ish mcp add --client claude-desktop --yes (the directory is created on write). On Linux there is no Claude Desktop release, so it is always skipped.
A drifted ish block is already in the config, or the file is not valid JSON. Inspect it by hand, or re-run with ish mcp add --client claude-desktop --force --yes to overwrite the ish block. Unrelated servers are preserved.
Interactive and media simulations take one to five minutes. If a blocking study_run stalls, ask the assistant to dispatch with wait=false and poll study_get with view="summary" instead. Full parameters and the blocking contract live in the study_run reference.

Where to go next

Every MCP tool

All 42 hosted tools, grouped by domain, each with its annotation tier.

MCP resources

The ish:// resources for identity, docs, screenshots, and media.

Runs and asks

When to run a study and when to fire a lightweight ask.

Other clients

Wire Claude Code, Cursor, VS Code, and the rest to the same server.