study_run, ask_run, person_generate, and the rest) from a chat. The server lives at
https://mcp.ishlabs.io/mcp, speaks streamable HTTP, and signs you in over OAuth on first
connect, so no token lands in any config.
ChatGPT’s MCP client (it connects as openai-mcp) reads ish’s tools but not its MCP
resources. That changes two things: how you point it at the URL, and how you read
findings back. Both are covered below.
You need an ish account. If you do not have one, get ish free
first. The OAuth step signs ChatGPT in as you.
Connect
Add a custom connector in ChatGPT pointed at the ish endpoint.Open the connector settings
In ChatGPT, open settings and find connectors. Choose to add a custom MCP connector.
Confirm the connection
Ask ChatGPT a read-only question. A read confirms the connection without drawing any credits.workspace_get and reports your
workspaces back. A brand-new account shows an empty list, which is
still a successful connection.
ChatGPT returns a workspace list (or an explicit empty list) instead of “no ish tools
available”. OAuth landed and the tools are live.
Read findings through tools, not resources
ish surfaces some data only as MCP resources: screenshots, transcripts, media, identity, andish://docs. ChatGPT does not read resources, so those
ish:// links never open for it. You do not need them. Everything is reachable through
tools, which ChatGPT does read.
| You want | On a resource-reading client | On ChatGPT |
|---|---|---|
| The findings (what people noticed, friction, blockers, sentiment, completion) | study_get(view="summary") (inline either way) | study_get(view="summary") |
| The step-by-step navigation and decision trace | ish://study/.../screenshots plus the summary | study_get(view="per_participant").interactions[] (read .url, .location, .actions, .screenshot_id) |
| Ask results | ask_get(view="summary") (inline either way) | ask_get(view="summary") |
| Reference docs | ish://docs/<slug> | docs_get(slug) |
ish detects ChatGPT from its handshake and folds this same guidance into its tool
results, so the model is reminded which call to make. You can still steer it: if it
reaches for an
ish:// link, tell it to read study_get(view="summary") instead.Read your first reaction
Run a study that already lives in your workspace and read back what a simulated person made of it. Tell ChatGPT:Discover a study
ChatGPT calls
study_get with your workspace_id to
list studies and pick one.Hand ChatGPT a file
ChatGPT cannot forward a file you uploaded in the chat to a tool call; MCP tool inputs are JSON only, with no binary transport. When you reference “the file I just uploaded” but no file arrives as an argument, ish uses an out-of-band upload link instead.ish mints a link
The agent calls
upload_create with a purpose
(person_source to ground a person, study_media for study content, or both) and
relays the returned link to you.ish picks it up
The agent polls
upload_status until the file lands,
then uses the returned handle in the downstream call (for example
person_generate or
study_add_iteration).Troubleshooting
ChatGPT sees no ish tools
ChatGPT sees no ish tools
The tool catalog came back empty, usually from a trailing slash. Reconnect the
connector with
https://mcp.ishlabs.io/mcp (no trailing slash) and approve the OAuth
sign-in in your browser, then ask again.It tries to open an ish:// link and fails
It tries to open an ish:// link and fails
ChatGPT does not read MCP resources. Tell it to read the findings through tools
instead:
study_get(view="summary") for a study, ask_get(view="summary") for an ask,
docs_get(slug) for reference docs. See the table above.A blocking run returns nothing
A blocking run returns nothing
Long simulations can outrun a hosted client’s per-call window. Re-run with
wait=false
and poll study_get(view="summary") until every participant reaches a terminal state.Where to go next
Every MCP tool
All 42 hosted tools, grouped by domain.
MCP resources
The
ish:// resources, and which tool mirrors each for ChatGPT.Connect an agent
The add mechanism and OAuth, in full.
Other clients
Wire Claude Code, Cursor, VS Code, and more.