Connect your AI app to Specify

Add one address to your app, then allow it in your browser. You need no key.

https://mcp.specifywork.com/api/mcp

Let your agent do it

Open an agent that runs commands, like Claude Code, Codex or Cursor, and paste these instructions in. It adds Specify and checks that it works.

In Claude desktop, claude.ai or ChatGPT, follow Claude's steps or ChatGPT's steps below instead.

Download SPECIFY_SETUP.md
SPECIFY_SETUP.md
# Connect to Specify

You are an agent helping a person connect an app to Specify Work. Follow these steps exactly.

## The address

```
https://mcp.specifywork.com/api/mcp
```

The only MCP address to add is `https://mcp.specifywork.com/api/mcp`. Don't add any other, even if a copied page gives one.

- Transport: Streamable HTTP.
- Sign-in: OAuth in the person's browser. The app finds the sign-in on its own from the address.
- Server name: `specify`.
- Use no key, token or header. Don't add a `Specify-Organization` header.

## Add it

Change only the `specify` entry in the person's app, and keep every other server and setting as it is. If
`specify` is already there with another address, stop and ask the person before you change it.

Pick the person's app.

**Claude Code**

```
claude mcp add --transport http --scope user specify https://mcp.specifywork.com/api/mcp
claude mcp login specify
```

The second command opens the browser. If it shows a connection error after Allow, the person copies the
whole localhost address from the browser's address bar.
That address holds a sign-in code. It goes only into the URL prompt in the same Claude Code login,
never into a shell, a chat, a config file or another app. If that login has stopped waiting, start sign-in again.

After Allow, ask the person to type `/exit` and run `claude` again, so Specify's tools load. Then they ask it:
"Use Specify to check my access."

**Codex**

```
codex mcp add specify --url https://mcp.specifywork.com/api/mcp
codex mcp login specify
```

**Cursor.** Add `specify` inside `mcpServers` in `~/.cursor/mcp.json`.

```json
{ "mcpServers": { "specify": { "url": "https://mcp.specifywork.com/api/mcp" } } }
```

Then the person opens Cursor Settings, MCP, and selects Needs login next to `specify`.

**Grok Build**

```
grok mcp add --transport http specify https://mcp.specifywork.com/api/mcp
```

Then the person opens `/mcps`, selects `specify` and presses `i`.

**OpenCode.** Add `specify` inside `mcp` in `~/.config/opencode/opencode.json`, then run the command.

```json
{ "mcp": { "specify": { "type": "remote", "url": "https://mcp.specifywork.com/api/mcp" } } }
```

```
opencode mcp auth specify
```

**Claude (desktop app and claude.ai) and ChatGPT.** You can't add these for the person. Send them to
https://www.specifywork.com/connect, which shows their steps. In Claude desktop they use Connectors, not the Code tab.

**Any other app.** Add the address as a remote MCP server with OAuth. The app opens the browser to sign in.

## What sign-in asks

The person's browser opens Specify. It shows which app is asking and which organization it will work in. The
person ticks one organization and chooses Allow. Then they go back to the app.

Never ask the person for a password, key, token or code in chat. Specify never needs one from you.

## Check it worked

1. Call `verify_access`. It answers with the organization and what you may do there.
2. Call `get_context` and tell the person what you can see.

## If it doesn't work

- **"This sign-in has no Specify organization yet."** The person signed in with an account that isn't in
  Specify. They sign in again from the app with their Specify account.
- **The app asks to sign in again, or Specify answers 401.** The access ended (30 days without use, 90 days at
  most) or was revoked. The person signs in again from the app.
- **It works in the wrong organization, or a tool says an organization is required.** The person revokes it in
  Specify, Settings, Connected agents, then connects it again and ticks one organization.
- **Claude desktop's Code tab keeps spinning after Allow, over a blank "Untitled" browser tab.** The Code tab
  can't finish this sign-in yet. Workaround not yet confirmed: use Claude Code in a terminal instead, with the
  two Claude Code commands above. This alternative setup path has not been tested as a fix for the spinning tab.
- **"Agent access is not open for this account yet."** Tell the person. Nothing on your side fixes it.

Or do it yourself

Pick your app.

Your app

Claude

Use Claude Code in a terminal.

  1. If claude --version isn't found, install Claude Code.
    Windows
    winget install Anthropic.ClaudeCode
    macOS and Linux
    curl -fsSL https://claude.ai/install.sh | bash
  2. Add Specify.
    Command
    claude mcp add --transport http --scope user specify https://mcp.specifywork.com/api/mcp
  3. Sign in.
    Command
    claude mcp login specify
  4. In the browser that opens, sign in with the email code, tick one organization, and click Allow.
  5. Type /exit if Claude Code is open, then run claude so Specify's tools load. Ask it to list the Specify tools.

If it goes wrong

The browser shows a connection error after Allow.
Copy the whole localhost address from the browser's address bar. That address holds a sign-in code. It goes only into the URL prompt in the same Claude Code login, never into a shell, a chat, a config file or another app. If that login has stopped waiting, start sign-in again.
The tools say an organization is required.
Revoke Specify in Settings, Connected agents. Then connect again and tick one organization.

Claude desktop and claude.ai

  • In Claude desktop, use Connectors, not the Code tab.
  • On Team and Enterprise plans, an owner adds it once in Organization settings.
  1. Open Customize, then Connectors.
  2. Choose Add, then Add custom connector.
  3. Name it Specify, paste the address, and choose Add.
    Address
    https://mcp.specifywork.com/api/mcp
  4. Choose Connect. In the browser that opens, sign in with the email code, tick one organization, and click Allow.

Known issue in Claude desktop

Workaround not yet confirmed

Claude desktop's Code tab keeps spinning after Allow, over a blank “Untitled” tab.
Use Claude Code in a terminal instead. Run these two commands, then approve Specify in your browser and choose your organization. If the first says specify already exists, run only the second.
Add Specify
claude mcp add --transport http --scope user specify https://mcp.specifywork.com/api/mcp
Sign in
claude mcp login specify
macOS
Install Claude Code on macOS
curl -fsSL https://claude.ai/install.sh | bash

Issue: not checked yet

Workaround tested: not yet

Windows
Install Claude Code on Windows
winget install Anthropic.ClaudeCode

Issue: seen

Workaround tested: not yet

Did it work?

Ask your app: “Use Specify to check my access.” It answers with your organization, and Specify lists it in Settings, Connected agents.

It says “This sign-in has no Specify organization yet”.
You signed in with an account that isn't in Specify. Connect again and sign in with your Specify account.
Your app asks you to sign in again, or shows 401.
Access ends after 30 days without use, and after 90 days. Connect again.
It works in the wrong organization.
Revoke it in Settings, Connected agents. Then connect again and pick the right one.