Skip to main content
The server is remote, at https://app.alpacarelay.com/api/mcp over Streamable HTTP. Every client below connects to that one URL. You sign in through your browser (OAuth) or send an API key: Sign in whenever your client supports it. There’s no secret to leak from a config file, and it works for members who aren’t owners. The setups below use sign-in. Connect with an API key covers the alternative.
In more than one workspace? Add ?org= with the workspace’s ID to the URL in any setup below, such as https://app.alpacarelay.com/api/mcp?org=3f2a1b4c-…. See Choose a workspace.

Add the server

Pick your client. Menu names change between app versions, so if a path doesn’t match exactly, look for the app’s Connectors or MCP servers settings.
For Claude Desktop and Claude on the web (claude.ai). Both use the same connector, so adding it once makes it available in both.
  1. Open Customize → Connectors → + Add → Add custom connector.
  2. Name it AlpacaRelay, paste the server URL, and click Continue:
  3. Click Connect, sign in to AlpacaRelay, and approve the connection.
  4. In a conversation, open + → Connectors and turn AlpacaRelay on.
On a Claude Team or Enterprise plan, an owner or admin adds the connector first, under Organization settings → Connectors. Free Claude accounts can add only one custom connector.
Restart your client after editing a config file. Most clients read MCP config only at startup.

Sign in

The first time the client connects, it opens a browser window where you sign in to AlpacaRelay and approve the connection.
Read the approval page before you click Allow. It names the client asking for access and the host your sign-in will be sent to. For a chat app such as Claude or ChatGPT, that’s the app’s own website. For an editor or command-line tool, it’s usually localhost on your own machine. If you didn’t just start a connection, or you don’t recognise the host, deny it.

Choose a workspace

A sign-in identifies you, not a workspace, so the URL has to say which workspace to use. Add ?org= with the workspace’s ID:
You don’t need to look the ID up. Connect without it and make any request. If you belong to more than one workspace, the first tool call fails with a list of your workspaces, each with its ready-made URL. Copy the one you want into your client and reconnect. If you belong to one workspace, you never need ?org=. To use two workspaces side by side, add the server twice under different names, each with its own ?org=.

How long a sign-in lasts

Your client refreshes access on its own every hour. The refresh lasts seven days, so after a week without connecting you’ll be asked to sign in again.
There’s no screen yet that lists or revokes the clients you’ve approved. An approved client keeps access until its sign-in expires. If you lose a device with an approved client, tell support.

Connect with an API key

Use a key for CI and other unattended setups, for shared machines, and for clients that can’t sign in. Create one under Settings → API keys and copy it, because it’s shown only once. Keys are owner-only. See Authentication. A key belongs to one workspace, so it never needs ?org=. Send it as an Authorization header. Replace ar_live_… in each example with your key.

Clients that only run local servers

Some clients, including older Claude Desktop versions, can only start local (stdio) servers. Bridge them with mcp-remote, which needs Node.js so that npx is available:
Leave out --header and env to sign in instead: mcp-remote opens the browser sign-in for you.

Keep your key out of the repo

A config file with a key in it holds that key in plain text, and the key reaches your whole workspace. Project files such as .vscode/mcp.json, .cursor/mcp.json, and .mcp.json are easy to commit by accident. Add them to .gitignore before you paste a key in, or use the VS Code and Codex setups above, which keep the key out of the file. Signing in avoids the problem entirely.
A key in a pushed commit is a leaked key, even if you delete it in the next commit. If that happens, delete the key in Settings → API keys and create a new one. Deleting a key takes effect immediately.

Check it worked

Your client should list alpacarelay-email with its tools. In chat apps, check that AlpacaRelay is turned on for the conversation. Then ask for something free and read-only, such as “list my AlpacaRelay brands”. Generating or editing an email costs a credit, so it isn’t a good first test. Head to Tools for what else to ask.

Troubleshooting

Restart the client, because most read MCP config only at startup. If it still isn’t there, check that you edited the file your client reads, and that the JSON is valid. Cursor’s ~/.cursor/mcp.json applies to every project, while .cursor/mcp.json and VS Code’s .vscode/mcp.json apply to one.
Your plan or your organization’s settings may not allow it. In ChatGPT, Claude, Grok, and GitHub Copilot, team and enterprise plans usually need an admin to add or allow the server first.
Adding a server only saves its config. Sign in from the client’s MCP settings or with its login command, such as claude mcp login alpacarelay-email or codex mcp login alpacarelay-email. If the client can’t sign in, connect with an API key instead.
You belong to more than one workspace and the URL doesn’t say which one to use. The message lists a URL for each workspace. Copy one into your client and reconnect.
The ?org= in your URL names a workspace you’re not a member of, or one that doesn’t exist. Remove ?org= to get the list of workspaces you can use.
Check the header is exactly Authorization: Bearer ar_live_…: the word Bearer, a space, then the key. Then confirm the key still exists under Settings → API keys. A key stops working immediately when it’s deleted, and also when the owner who created it leaves the workspace.
npx has to be on the PATH your desktop app sees, which isn’t always the PATH in your terminal. Install Node.js system-wide, or put the full path to npx in command.
Some clients cache the tool list. Restart the client, or refresh the server’s tools in its MCP settings. In ChatGPT, refresh the plugin’s tools; on a Business plan, an admin may need to publish the update.
With a key, the most common cause is a key that was deleted or rotated, or an owner who left the workspace. Create a new key and update the config. With sign-in, sign in again from your client.