Cursor installs an MCP server from a cursor:// deeplink. Clicking the link
below opens Cursor and offers to add the observer MCP server — the
same entry observer init --cursor would write into ~/.cursor/mcp.json.
Requires the observer binary already on your PATH (npm i -g @superbased/observer
or pipx install superbased-observer). The deeplink is wiring only.
cursor://anysphere.cursor-deeplink/mcp/install?name=observer&config=eyJjb21tYW5kIjoib2JzZXJ2ZXIiLCJhcmdzIjpbInNlcnZlIl19
Also in deeplink.txt (single line, newline-terminated) for scripting.
Markdown form for a README or a web page:
[](cursor://anysphere.cursor-deeplink/mcp/install?name=observer&config=eyJjb21tYW5kIjoib2JzZXJ2ZXIiLCJhcmdzIjpbInNlcnZlIl19)| Part | Value |
|---|---|
| scheme + handler | cursor://anysphere.cursor-deeplink/mcp/install |
name |
observer — the stable server id observer init uses. |
config |
base64 (standard alphabet, padded) of {"command":"observer","args":["serve"]} |
Decode it yourself to check:
printf '%s' "$(grep -o 'config=[^&]*' deeplink.txt | cut -d= -f2-)" | base64 -dCursor deeplinks have a documented abuse history (the "CursorJack"
proof-of-concept: a crafted cursor:// link plus one user approval can install
an arbitrary MCP server and run arbitrary commands). So this link is
generated once, from the exact config our own registrar writes, and never
composed at runtime. Do not build a deeplink from user input, a query
string, or any value not visible in plugins/plugingen.
Cursor consumes the Open VSX registry, and the SuperBased Observer VS Code extension is already published there — so the editor extension reaches Cursor users through the existing release pipeline. This deeplink covers only the MCP server wiring.