# Connect MCP This is the Connect guide (https://teamshared.com/docs) as Markdown. TeamShared is one remote MCP server: https://teamshared.com/mcp. Pick your agent, paste the prompt, and it adds the server and runs the OAuth sign-in — the same emailed one-time code as the console. No install script, no API key. Server URL: `https://teamshared.com/mcp`. Sign-in is OAuth with the same emailed one-time code as the console (https://teamshared.com/login; first sign-in creates your org). ## Claude.ai & Desktop Custom connector in Claude.ai (shared with Claude Desktop). Claude cannot add its own connector, so these are UI steps. Add it from the app (the agent cannot add its own connector): 1. Open **Settings → Connectors → Add custom connector**. 2. Name it `TeamShared` and paste `https://teamshared.com/mcp` as the URL. 3. Click **Connect** and finish the emailed one-time code in the browser. 4. In a chat, ask Claude to call the `health` tool. In several orgs? Add one connector per org with that org's own URL, `https://teamshared.com/o//mcp` (use **Copy connector URL** in the console org menu). The bare URL uses the org picked at Connect time, or the one set with **Make MCP default** on [All organizations](https://teamshared.com/app/orgs). ### Verify Ask the agent to call the `health` tool and tell me the result; it should report status ok. ### Config file (Claude Desktop, API key) Only if the connector flow is blocked. Mint an org key under [API Keys](https://teamshared.com/app/keys) and merge into `claude_desktop_config.json`. ``` { "mcpServers": { "teamshared": { "url": "https://teamshared.com/mcp", "headers": { "Authorization": "Bearer tsk_…" } } } } ``` ## Claude Code Claude Code adds the server and opens OAuth from /mcp. Paste this into Claude Code: Add the TeamShared MCP server at https://teamshared.com/mcp to Claude Code (run `claude mcp add --transport http teamshared https://teamshared.com/mcp`, user scope). Use OAuth sign-in (no API key). Then run the sign-in flow, tell me when to finish the emailed one-time code in the browser, and confirm by calling the `health` tool. If the sign-in did not start, run `/mcp`, select **teamshared**, then **Authenticate**. In several orgs, use `https://teamshared.com/o//mcp` as the URL. ### Verify Run `/mcp`: **teamshared** should show as connected. Then ask Claude to call the `health` tool. ### Manual command (with API key) Only when OAuth is blocked. Mint a key under [API Keys](https://teamshared.com/app/keys). ``` claude mcp add --transport http teamshared https://teamshared.com/mcp \ --header "Authorization: Bearer tsk_…" ``` ## Cursor Cursor reads ~/.cursor/mcp.json; Connect finishes OAuth. Paste this into Cursor: Add the TeamShared MCP server at https://teamshared.com/mcp to Cursor by adding a `teamshared` entry with the `url` field to ~/.cursor/mcp.json (no headers). Use OAuth sign-in (no API key). Then run the sign-in flow, tell me when to finish the emailed one-time code in the browser, and confirm by calling the `health` tool. Install: [Add to Cursor](https://cursor.com/link/mcp/install?name=teamshared&config=eyJ1cmwiOiJodHRwczovL3RlYW1zaGFyZWQuY29tL21jcCJ9). Button or prompt, one step is left: click **Connect** next to teamshared in **Settings → Tools & MCP**, finish the emailed code, then ask the agent to call `health`. ### Verify Open **Settings → Tools & MCP**: **teamshared** should be enabled with tools listed. Then ask the agent to call `health`. ### Manual ~/.cursor/mcp.json Add the entry yourself, then click Connect. For a key instead of OAuth, add a `headers` block with `Authorization: Bearer tsk_…`. ``` { "mcpServers": { "teamshared": { "url": "https://teamshared.com/mcp" } } } ``` ## Codex Codex registers the server and logs in through the system browser. Paste this into Codex: Add the TeamShared MCP server at https://teamshared.com/mcp to Codex (run `codex mcp add teamshared --url https://teamshared.com/mcp`), then run `codex mcp login teamshared`. Use OAuth sign-in (no API key). Then run the sign-in flow, tell me when to finish the emailed one-time code in the browser, and confirm by calling the `health` tool. Codex opens the **system browser** for OAuth; finish the emailed code there. ### Verify Run `codex mcp list` (teamshared should be listed), then ask Codex to call the `health` tool. ### Manual ~/.codex/config.toml For a key instead of OAuth, export `TEAMSHARED_TOKEN` and use `bearer_token_env_var`. ``` [mcp_servers.teamshared] url = "https://teamshared.com/mcp" ``` ## ChatGPT Custom connector in ChatGPT web. ChatGPT cannot add its own connector, so these are UI steps. Add it from the app (the agent cannot add its own connector): 1. Open **Settings → Connectors → Advanced** and turn on **Developer mode** (menu names shift; look for custom connectors). 2. Choose **Create**, name it `TeamShared`, paste `https://teamshared.com/mcp`, and set authentication to **OAuth**. 3. Click **Connect** and finish the emailed one-time code in the browser. 4. In a chat, enable the connector and ask ChatGPT to call the `health` tool. Custom connectors need a plan that allows them (Plus/Pro, or workspace admin approval for Business and Enterprise). ### Verify Ask the agent to call the `health` tool and tell me the result; it should report status ok. ## VS Code / Copilot Copilot Chat in agent mode reads .vscode/mcp.json and runs OAuth on start. Paste this into VS Code / Copilot: Add the TeamShared MCP server at https://teamshared.com/mcp to VS Code by adding a `teamshared` entry (`type: http`, `url` only, no headers) to .vscode/mcp.json, or run the `MCP: Add Server` command. Use OAuth sign-in (no API key). Then run the sign-in flow, tell me when to finish the emailed one-time code in the browser, and confirm by calling the `health` tool. Install: [Add to VS Code](https://insiders.vscode.dev/redirect/mcp/install?name=teamshared&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fteamshared.com%2Fmcp%22%7D). Button or prompt, one step is left: select **Start** on the server (VS Code opens the browser to sign in), then ask Copilot to call `health`. ### Verify Run **MCP: List Servers**: teamshared should be running. In Copilot Chat (agent mode) ask it to call the `health` tool. ### Manual .vscode/mcp.json Note the root key is `servers`, not `mcpServers`. ``` { "servers": { "teamshared": { "type": "http", "url": "https://teamshared.com/mcp" } } } ``` ## Windsurf / Devin Desktop Windsurf (now Devin Desktop) reads ~/.codeium/windsurf/mcp_config.json. Paste this into Windsurf / Devin Desktop: Add the TeamShared MCP server at https://teamshared.com/mcp to Windsurf (Devin Desktop) by merging a `teamshared` entry into ~/.codeium/windsurf/mcp_config.json. The remote field must be `serverUrl`, not `url`. Use OAuth sign-in (no API key). Then run the sign-in flow, tell me when to finish the emailed one-time code in the browser, and confirm by calling the `health` tool. Devin on the web is a different app: [app.devin.ai](https://teamshared.com/docs/devin-web) registers with OAuth. If Desktop does not offer sign-in, mint an org key under [API Keys](https://teamshared.com/app/keys) and add it as the fallback below. ### Verify Refresh MCP servers in Cascade: teamshared should list tools. Then ask Cascade to call the `health` tool. ### Manual mcp_config.json Use `serverUrl` — a `url` field copied from Cursor is ignored. Add the `headers` line only when using a `tsk_` key. ``` { "mcpServers": { "teamshared": { "serverUrl": "https://teamshared.com/mcp", "headers": { "Authorization": "Bearer tsk_…" } } } } ``` ## Gemini CLI Gemini CLI adds the server and authenticates from /mcp auth. Paste this into Gemini CLI: Add the TeamShared MCP server at https://teamshared.com/mcp to Gemini CLI (run `gemini mcp add --transport http teamshared https://teamshared.com/mcp`), then start `/mcp auth teamshared`. Use OAuth sign-in (no API key). Then run the sign-in flow, tell me when to finish the emailed one-time code in the browser, and confirm by calling the `health` tool. ### Verify Run `/mcp` in Gemini CLI: teamshared should be **CONNECTED**. Then ask it to call the `health` tool. ### Manual ~/.gemini/settings.json Add a `headers` entry with `Authorization: Bearer tsk_…` only if you use a key instead of OAuth. ``` { "mcpServers": { "teamshared": { "httpUrl": "https://teamshared.com/mcp" } } } ``` ## Gemini Custom MCP app on gemini.google.com. Gemini cannot add its own connector, so these are UI steps. Add it from the app (the agent cannot add its own connector): 1. On **gemini.google.com**, add a custom MCP app. 2. Name it `TeamShared` and paste `https://teamshared.com/mcp` as the server URL. 3. Start connect. Gemini registers itself. Finish the emailed one-time code. 4. Approve the screen. It names the app and **gemini.google.com**. 5. Ask Gemini to call the `health` tool. If Gemini asks you to type a client id and secret, registration did not finish. Add the app again so it can register. You do not mint that secret under API Keys. ### Verify Ask the agent to call the `health` tool and tell me the result; it should report status ok. ## Devin Devin on the web (app.devin.ai) registers with OAuth. Devin cannot add its own connector, so these are UI steps. Add it from the app (the agent cannot add its own connector): 1. On **app.devin.ai**, open **Customize → MCPs → Connect**. 2. Add TeamShared with server URL `https://teamshared.com/mcp`. 3. Devin registers itself. Finish the emailed one-time code in the browser. 4. Approve the screen. It names the app and **app.devin.ai**. 5. Ask Devin to call the `health` tool. Devin Desktop (formerly Windsurf) is a separate install: [Windsurf / Devin Desktop](https://teamshared.com/docs/devin). ### Verify Ask the agent to call the `health` tool and tell me the result; it should report status ok. ## Grok Bot Grok Bot adds MCP servers from its connectors screen, so these are UI steps. Add it from the app (the agent cannot add its own connector): 1. In Grok Bot, open the connectors (MCP servers) screen and choose to add a custom server. 2. Paste `https://teamshared.com/mcp` as the URL and choose **Connect**. 3. Finish the emailed one-time code in the browser; it hands you back to Grok Bot. 4. Ask Grok Bot to call the `health` tool. If Connect does not finish on iOS, connect [Cursor](https://teamshared.com/docs/cursor) on desktop with the same account first: Grok Bot may pick up that account-level Connect. ### Verify Ask the agent to call the `health` tool and tell me the result; it should report status ok. ## OpenClaw OpenClaw takes an org key on the Authorization header. Paste this into OpenClaw: Add the TeamShared MCP server at https://teamshared.com/mcp to OpenClaw (`mcp_servers.teamshared`). Use OAuth sign-in if OpenClaw supports it; otherwise ask me for my TeamShared API key (from https://teamshared.com/app/keys) and send it as `Authorization: Bearer `. Set timeout 120 and connect_timeout 30, restart OpenClaw, and confirm by calling the `health` tool. ### Verify Run `openclaw mcp list`, then ask the agent to call the `health` tool. ### Manual config Merge into your OpenClaw config. A 30s tool timeout is too tight for `memory_recall`. ``` mcp_servers: teamshared: url: https://teamshared.com/mcp headers: Authorization: "Bearer tsk_…" timeout: 120 connect_timeout: 30 ``` ## Hermes Hermes takes an org key on the Authorization header. Paste this into Hermes: Add the TeamShared MCP server at https://teamshared.com/mcp to Hermes (`mcp_servers.teamshared` in ~/.hermes/config.yaml, or `hermes mcp add teamshared --url ... --auth header`). Use OAuth sign-in if Hermes supports it; otherwise ask me for my TeamShared API key (from https://teamshared.com/app/keys) and send it as `Authorization: Bearer `. Set timeout 120 and connect_timeout 30, disable Hermes's built-in memory toolset (`hermes tools disable memory`), reload MCP, and confirm by calling the `health` tool. ### Verify Run `hermes mcp test teamshared`, then ask the agent to call the `health` tool. ### Manual ~/.hermes/config.yaml Hermes reads the home file, not a project-local one. ``` mcp_servers: teamshared: url: https://teamshared.com/mcp headers: Authorization: "Bearer tsk_…" timeout: 120 connect_timeout: 30 ``` ## Several orgs Use the org's own URL, https://teamshared.com/o//mcp (Copy connector URL in the console org menu), so every session starts in that org. The bare URL uses the org picked at sign-in, or the one marked Make MCP default on All organizations. ## API key fallback Mint a tsk_ key under API Keys only for CI, headless agents, or a harness that cannot do OAuth, and send it as `Authorization: Bearer tsk_…`. Each harness section below has the manual config the Connect page keeps in a collapsed fallback. Start at https://teamshared.com/login.