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/mcpLet 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.
# 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.
Claude
Use Claude Code in a terminal.
- If
claude --versionisn't found, install Claude Code.Windowswinget install Anthropic.ClaudeCode
macOS and Linuxcurl -fsSL https://claude.ai/install.sh | bash
- Add Specify.Command
claude mcp add --transport http --scope user specify https://mcp.specifywork.com/api/mcp
- Sign in.Command
claude mcp login specify
- In the browser that opens, sign in with the email code, tick one organization, and click Allow.
- Type
/exitif Claude Code is open, then runclaudeso 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.
- Open Customize, then Connectors.
- Choose Add, then Add custom connector.Claude screenshot: Connectors
- Name it Specify, paste the address, and choose Add.Address
https://mcp.specifywork.com/api/mcp
Claude screenshot: Add custom connector - 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
ChatGPT
- Open Plugins, choose the plus button, then Add custom MCP server.ChatGPT screenshot: Plugins
- Name it Specify, paste the address, and choose OAuth.Address
https://mcp.specifywork.com/api/mcp
ChatGPT screenshot: Add custom MCP server - Check “I understand and want to continue”, then choose Create as a plugin.
- Choose Install. In the browser that opens, sign in with the email code, tick one organization, and click Allow.
Codex
- Add Specify.Command
codex mcp add specify --url https://mcp.specifywork.com/api/mcp
- Sign in.Command
codex mcp login specify
- In the browser that opens, sign in with the email code, tick one organization, and click Allow.
Cursor
- Add
specifyinsidemcpServersin~/.cursor/mcp.json. Keep any servers already there.Command{ "mcpServers": { "specify": { "url": "https://mcp.specifywork.com/api/mcp" } } } - Open Cursor Settings, then MCP, and choose Needs login next to
specify. - In the browser that opens, sign in with the email code, tick one organization, and click Allow.
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.