MCP assistants
Gemini
Gemini CLI connects to Lymi as a remote MCP server and signs in with OAuth. Unlike Claude Code or Codex, it needs a client ID in its config, because it cannot identify itself the way Lymi asks.
https://my.lymi.app/mcpOnce connected, ask it to add the cards from a lesson, list what is due, or find a card. What it can and cannot do is on Connect an assistant.
Gemini CLI
Sign-in opens a browser on the same machine and waits for it on a local port, so run these steps on your own computer, not over SSH.
Add the server
Open
~/.gemini/settings.jsonand add Lymi undermcpServers. If the file already has servers, add thelymientry beside them.~/.gemini/settings.json{ "mcpServers": { "lymi": { "httpUrl": "https://my.lymi.app/mcp", "oauth": { "enabled": true, "clientId": "https://lymi.app/oauth/gemini-cli.json", "redirectUri": "http://127.0.0.1:7777/oauth/callback" } } } }Sign in
Start
geminiand run/mcp auth lymi. Your browser opens on Lymi. Sign in with the account your Lymi uses, then approve the connection. Untick write if you want Gemini CLI to read your decks and nothing more.Check the tools
Run
/mcp. Lymi shows as connected, with its tools listed under it.
Gemini CLI keeps the tokens in ~/.gemini/mcp-oauth-tokens.json and refreshes them on its own. To disconnect for good, remove the lymi entry and revoke the grant under Settings → Apps in Lymi.
Why the client ID is on lymi.app
An MCP client normally introduces itself with a Client ID Metadata Document: a URL it owns that names the app and the redirects it may use. Claude and Codex publish one. Gemini CLI does not. It only knows dynamic client registration, which Lymi keeps switched off.
So Lymi publishes the document for it, at https://lymi.app/oauth/gemini-cli.json, and the clientId line points Gemini CLI at it. The document allows one redirect: port 7777, or any other port, on 127.0.0.1. A token can only reach the computer that started the sign-in, and nothing connects until you approve it.
The Gemini app
Custom apps in the Gemini app are open to personal accounts of adults in the US, in English. Google also requires Keep Activity to be on. Lymi’s connection from the Gemini app has not been verified; the CLI setup above is the documented path.
Add the app
In Gemini, open Settings → Connected Apps, press Add a custom app, and paste the server URL above.
Sign in
Press Next. Your browser opens on Lymi. Sign in, then approve the connection. Gemini asks you to confirm each change it makes to your decks.
If Gemini asks for a client ID and secret, stop there. The public client ID above is for Gemini CLI and its local callback; it cannot be reused for the Gemini app. Write to hello@lymi.app; Lymi has not been tested there yet.
When it does not connect
- "No client ID provided and dynamic registration not supported". The
oauthblock is missing or misspelled. Copy it again from the step above. - Port 7777 is in use. Change the port in
redirectUrito any free one. Keep127.0.0.1: Lymi refuseslocalhostfor this client. - Sign-in is refused. An account made with an email address and a password cannot sign in until the address is confirmed. Open the link in the confirmation email, then connect again.
- The browser never opens. Gemini CLI prints the sign-in URL. Open it in a browser on the same computer.