Cloud, for memory that follows you across apps
This is the hosted path: your memory graph lives in Postgres on a server we run, reachable over HTTPS from any MCP-capable client. Same six tools as the local version, same behavior — the difference is where the data lives and how you authenticate. Note this currently covers MCP-capable clients (Claude Desktop, Cursor, Codex CLI, Doubao, and similar) — not a browser-based web app, and not ChatGPT's or Gemini's web UIs.
Why you'd pick this over local
If you don't want to run a Python environment locally at all, or you want the same memory graph reachable from more than one machine or client, this is for you. If you're a single developer using one machine with one client, the local path is simpler and keeps your data off any server entirely.
Get an API key
Header-based auth — works with any client, including ones that don't support OAuth. Enter your email and we'll send a confirmation link; clicking it is what actually gets you a key.
Check your email
Click the link we just sent — it opens a page with your API key. The link works once and expires after a while, so use it soon. Didn't arrive in a few minutes? Check spam first — it's the most common reason a confirmation email goes missing.
Sent again — check your inbox (and spam) once more.
Get a key instantly via curl
curl -X POST https://api.yliuai.com/users/register \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
# the api_key in the response (starts with mck_) is shown only this once -- save it OAuth 2.1 (for Claude's Connector flow)
Anthropic's official Connector Directory requires OAuth 2.1 + PKCE, which plain API keys don't satisfy. This deployment supports it, but hasn't been submitted to the official directory yet — so there's no one-click "Connect" button in Claude's UI. It's the path Claude Desktop uses below.
This is a manual connection, not an official Anthropic-listed connector — we're not implying otherwise. Once Connector Directory submission happens, this section will be updated with the official one-click flow.
Both paths (API key and OAuth) resolve to the same user_id and the same underlying memory graph for a given account — they're two doors into one house, not two separate datasets.
Connect your client
Claude Desktop connects over OAuth; Cursor, Codex CLI, Doubao, and other clients without an OAuth connector entry point use the API key from above as a header instead. The exact config for each — plus how to verify it's actually working — lives on the Platforms page.
See exact config for your client on the Platforms page →
Where else this is listed
- ModelScope MCP Marketplace ↗ Listed as a hosted server — connects straight to the remote endpoint above, no local install required.
- Official MCP Registry ↗ io.github.lyf-wxy/spomory — the cross-client registry that MCP-aware tools can discover servers through.
Cursor doesn't run a separate submission process of its own for remote servers — it's covered by the registry listing above rather than a dedicated Cursor-only directory.
What's different from the local version
- Your memory graph lives in a shared Postgres database, strictly isolated per account (user_id) — not a local SQLite file.
- There's no automatic sync between your local and cloud memories — they're two independent stores today.
- See the Privacy page for exactly what's collected, what third parties are involved (an LLM provider for extraction, Resend for magic-link email), and the known gaps in the current setup.
Make it actually get used
Connecting the tools doesn't mean your client reaches for them on its own — it needs to be told to call search_memory before answering and add_memory after you share something worth keeping, and to treat corrections as updates rather than new facts. SKILL.md is a short instructions file that does that; works the same way whether you connected over the API key or OAuth above. How you load it is specific to each client, though — some auto-discover a skills folder the same way Claude Code does, others only have a custom-instructions or system-prompt field instead.
See the exact loading mechanism for your client on the Platforms page →
Full remote-access doc on GitHub (deployment details, verification history) →