Skip to main content
Wire VS Code to the hosted ish MCP server so Copilot agent mode 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 lands in a config file. For the full add mechanism and the OAuth handshake, see connect an agent. VS Code holds MCP servers under a top-level servers key (most other clients use mcpServers), and each ish block is { "type": "http", "url": "..." }.

Connect

Pick one path. All three write the same VS Code MCP config and end with the same OAuth sign-in.
Install the CLI and let it write VS Code’s config block:
npm i -g @ishlabs/cli
ish mcp add --client vscode --yes
Run ish mcp add with no flags first for a dry-run plan, then re-run with --yes to commit. The command writes only the server URL, never a token. 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

VS Code prompts you to trust a server the first time it starts, then runs the OAuth flow.
1

Start the server

Open the Command Palette and run MCP: List Servers, then start ish. The first start prompts you to trust the server; confirm it, or ish will not load.
2

Approve the sign-in

VS Code opens your browser to sign in as your ish account. Approve access. The token it receives is stored for you; you never handle it.
3

Ask the agent a read

In Copilot agent mode, ask a read-only question:
Use the ish tools to confirm who I am and list my workspaces.
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.

Why VS Code needs the OAuth proxy

VS Code binds a fresh, random loopback port every session for its OAuth redirect. Most clients (Cursor, Claude Code, the app builders) keep one consistent redirect from registration through sign-in, so they never hit this. VS Code does not: the port it registers and the port it later listens on differ. ish handles this server-side. Without the fix, the upstream auth server matches the redirect address by exact string and would reject VS Code’s shifted port with invalid redirect_uri. The hosted ish server fronts that auth server with a proxy: it advertises itself as the authorization server, accepts any loopback port VS Code throws at it, and holds one fixed redirect upstream. So from your side, sign-in just works. You do not configure anything for this. It is named here only so a stray invalid redirect_uri error points you at the right place: a redirect mismatch, not your config.
This is handled on the hosted server at https://mcp.ishlabs.io/mcp. If you run your own ish MCP server, the operator must register an upstream OAuth client and set the proxy credentials, or VS Code’s dynamic port will fail to sign in.

Manage the connection

ish mcp list shows which clients are wired and their status (present-up-to-date, present-drifted, absent, or no-config-file). It only reads, never writes.
ish mcp list
Inside VS Code, run MCP: List Servers to start, stop, or inspect ish, and MCP: Reset Trust to clear the trust prompt and re-approve. If a drifted ish block is already in your VS Code config, ish mcp add refuses rather than overwriting. Pass --force to replace it; unrelated servers are preserved:
ish mcp add --client vscode --force --yes
To unwire VS Code, remove the ish block (every other server stays in place):
ish mcp remove --client vscode --yes

Troubleshooting

The server did not start or OAuth did not complete. Run MCP: List Servers, start ish, confirm the trust prompt, and approve the browser sign-in. Confirm the URL has no trailing slash.
A redirect mismatch, not a config error. The hosted server at https://mcp.ishlabs.io/mcp handles VS Code’s dynamic loopback port through its OAuth proxy, so confirm you are pointed at the hosted URL. If you run your own ish MCP server, the operator has not registered the upstream OAuth client; sign-in cannot succeed until they do.
Long simulations can outrun a client’s tool-call window. Dispatch with wait=false (the default) and poll with study_get(view="summary") until every participant reaches a terminal state. Full contract in the study_run reference.
A drifted ish block is in your VS Code config, or the file is not valid JSON. Inspect it by hand, or re-run with ish mcp add --client vscode --force --yes to overwrite the ish block. Unrelated servers are preserved.

Next steps

Every MCP tool

All 42 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, Cursor, ChatGPT, and more.