Lovie MCP›Any MCP client
Reference
Everything a client needs is the URL. What changes between clients is only the name of the field you paste it into — this page is that lookup table, plus the protocol facts a host may ask for.
The only value you need
https://mcp.lovie.co/mcp
| Question | Answer |
|---|---|
| Server URL | https://mcp.lovie.co/mcp |
| Transport | HTTP, streamable. Not SSE, not stdio. |
| Command / args | None. There is nothing to run locally — no npx, no proxy. |
| API key / token | None. Leave it blank. |
| OAuth client id / secret | None. The server registers your client automatically. |
| Auth type | OAuth 2.1, discovered from the endpoint (RFC 9728). |
The value never changes. Only the field name does, and a snippet copied from the wrong guide parses cleanly and is then ignored — which is the single most common reason a correctly configured server does not appear.
| Client | Container | URL field |
|---|---|---|
| Claude Code | mcpServers | url + type: "http" |
| Cursor | mcpServers | url |
| VS Code | servers | url + type: "http" |
| Windsurf | mcpServers | serverUrl |
| Gemini CLI | mcpServers | httpUrl |
| Zed | context_servers | url |
| Goose | extensions | uri + type: streamable_http |
There are no API keys. Discovery is anonymous: your client connects, lists tools and reads the open ones with no credentials at all. The first time it calls a tool that touches your company, the server answers with an OAuth challenge, your client opens a Lovie sign-in, and it stores the resulting token itself.
Some hosts authorize only at the moment you add a connector, and read a successful anonymous handshake as proof the server needs no sign-in. Those clients should use the eager endpoint, which raises the challenge during the handshake instead:
https://mcp.lovie.co/mcp-eager
Try the plain endpoint first. The eager one exists for hosts that need it, and Lovie already recognizes several by name and challenges them eagerly without any change on your side.
Identity is issued by https://clerk.lovie.co.
If the host you are on cannot speak MCP at all, the same agent and the same tools answer on these — no endpoint, no configuration.
The handshake, with nothing but curl:
curl -sS https://mcp.lovie.co/mcp \ -H 'Content-Type: application/json' \ -H 'Accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{ "protocolVersion":"2025-06-18", "capabilities":{}, "clientInfo":{"name":"curl","version":"1"}}}'
A JSON-RPC result means the endpoint is healthy. An HTML page means your request did not
send an Accept header the server recognizes — browsers get this page instead.
| Symptom | Cause |
|---|---|
| Client shows HTML, or a parse error | The URL is missing /mcp, so it hit the human page. |
| Connects, but zero tools | The client is configured as SSE or stdio. It must be streamable HTTP. |
| Never asks you to sign in | The host authorizes at add time. Use the eager endpoint above. |
| Session lost between calls | The client is not echoing the Mcp-Session-Id header it was given at initialize. |