You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* [docs] Fix Cursor MCP connection — use native url field, not mcp-remote
mcp-remote@latest now attempts OAuth client registration before sending
custom headers, which breaks against Open Brain's simple key-based auth.
Cursor supports remote MCP servers natively via the url field, so
mcp-remote is unnecessary.
Changes:
- Add dedicated Cursor section to getting-started guide (7.5) and
remote-mcp primitive with native url config
- Update mcp-remote examples to pass key via ?key= query parameter
instead of --header to avoid OAuth discovery issues
- Clarify x-brain-key (core) vs x-access-key (extensions) in
troubleshooting guides
Made-with: Cursor
* [primitives] Bring remote MCP docs in line with repo format
---------
Co-authored-by: Jonathan Edwards <justfinethanku@gmail.com>
- Your **MCP Connection URL** (from the extension's credential tracker — looks like `https://YOUR_REF.supabase.co/functions/v1/extension-mcp?key=your-access-key`)
11
11
- The AI client you want to connect
12
12
13
+
## Step-by-step Instructions
14
+
13
15
## Claude Desktop
14
16
15
17
1. Open Claude Desktop → **Settings** → **Connectors**
Replace `extension-name` with a short name (e.g., `household-knowledge`, `family-calendar`), the URL with your MCP Server URL (without the `?key=` part), and `your-access-key` with your MCP Access Key.
57
59
58
-
## Other Clients (Cursor, Windsurf, VS Code, Zed)
60
+
## Cursor
61
+
62
+
Cursor supports remote MCP servers natively. Add this to your `~/.cursor/mcp.json`:
Restart Cursor and the extension's tools should appear in Settings → Features → MCP.
75
+
76
+
> Do **not** use `mcp-remote` for Cursor. Newer versions of `mcp-remote` attempt OAuth client registration, which fails against Open Brain's simple key-based auth. Cursor's native `url` field works directly.
77
+
78
+
## Other Clients (Windsurf, VS Code, Zed)
59
79
60
80
Every MCP client handles remote servers slightly differently. Your extension accepts the access key two ways — pick whichever your client supports:
61
81
62
82
**Option A: URL with key (easiest).** If your client has a field for a remote MCP server URL, paste the full MCP Connection URL including `?key=your-access-key`. This works for any client that supports remote MCP without requiring headers.
63
83
64
-
**Option B: mcp-remote bridge.** If your client only supports local stdio servers (configured via a JSON config file), use`mcp-remote` to bridge to the remote server. This requires Node.js installed.
84
+
**Option B: mcp-remote bridge (if your client only supports stdio).** Use`mcp-remote` to bridge to the remote server. This requires Node.js installed. Pass the access key via the URL query parameter (not a header) to avoid OAuth discovery issues with newer versions of `mcp-remote`:
> Note: no space after the colon in `x-access-key:${ACCESS_KEY}`. Some clients have a bug where spaces inside args get mangled.
101
+
> Older examples pass the access key via `--header`. This breaks with `mcp-remote@latest` because it now attempts OAuth client registration before sending custom headers. Pass the key via the `?key=` query parameter instead.
86
102
87
103
## Troubleshooting
88
104
@@ -99,13 +115,18 @@ Every MCP client handles remote servers slightly differently. Your extension acc
99
115
**Getting 401 errors**
100
116
- The access key doesn't match what's stored in Supabase secrets
101
117
- Double-check that the `?key=` value in your URL matches your MCP Access Key exactly
102
-
- If using the header approach (Claude Code or mcp-remote), the header must be `x-access-key` (lowercase, with the dash)
118
+
- If using the header approach (Claude Code), the core Open Brain server uses `x-brain-key` while extension servers use `x-access-key`
119
+
- Prefer the `?key=` query parameter approach to avoid header name confusion
103
120
104
121
**Tools work but responses are slow**
105
122
- First request on a cold Edge Function takes a few seconds to warm up
106
123
- Subsequent calls are faster
107
124
- Check your Supabase project region — pick the one closest to you
108
125
126
+
## Expected Outcome
127
+
128
+
After following the steps for your client, your Open Brain extension should appear as a connected MCP server and its tools should be available inside that AI client without needing a local MCP bridge.
Copy file name to clipboardExpand all lines: primitives/troubleshooting/README.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,8 @@ Solutions for issues that come up across any Open Brain extension. If your probl
13
13
**"Getting 401 Unauthorized"**
14
14
- The access key doesn't match what's stored in Supabase secrets
15
15
- Double-check that the `?key=` value in your Connection URL matches your MCP Access Key exactly
16
-
- If using header-based auth (Claude Code or mcp-remote), the header must be `x-access-key` (lowercase, with the dash)
16
+
- If using header-based auth (Claude Code), the core Open Brain server expects `x-brain-key` while extension servers expect `x-access-key` — prefer using the `?key=` query parameter to avoid confusion
17
+
- Do not use `mcp-remote` with `--header` for Cursor — use Cursor's native `url` field instead (see [Remote MCP Connection](../remote-mcp/))
17
18
- Verify the secret is set: `supabase secrets list` should show `MCP_ACCESS_KEY`
18
19
- Try regenerating the key: `openssl rand -hex 32`, then `supabase secrets set MCP_ACCESS_KEY=new-key` and update your Connection URL
0 commit comments