Connecting an assistant

Everything on this page comes down to one address:

https://mcp.libretimes.io/mcp

Give that to your assistant, sign in with your LibreTimes account, approve what it may do, and it is connected. There is nothing to install and no API key to generate or store.

Signing in

Connecting sends you to the ordinary LibreTimes sign-in page – the same one you use for the website, with the same password and the same two-factor step if you have one set up. You are then shown what the assistant is asking permission for and can approve or refuse.

You are not handing the assistant your password, and it never sees it. It receives a limited token that carries only the permissions you approved, and you can revoke it from your account at any time without changing your password.

Clients that need only the URL

Some clients can introduce themselves to us automatically. For these, adding the address above is the whole setup.

ClientWhere to add it
VS CodeAdd an MCP server in settings, paste the URL
ZedAdd a context server, paste the URL

Clients that also ask for a client ID

Other clients need to be told who they are before they can start. When a client asks for a client ID, use:

libretimes-agent

Leave any "client secret" field empty – these clients are public and have no secret. If you are asked for an authorization or token URL, the client will normally discover both from the server address on its own; if it does not, it is asking for our sign-in server, https://auth.libretimes.io.

This path works for Claude Code, Cursor, the Gemini CLI, and any other client that lets you fill in an OAuth client ID by hand.

Choosing what it may do

Read tools – searching, reading a work, looking at a profile or a course – need no permission at all, and a connection that approves nothing can still do all of them.

Everything that writes is a separate permission:

PermissionLets the assistant
cv:writeFill in and update your CV
publications:writeCreate and edit your drafts
collections:writeCreate a private course and order its lectures
library:writeSave works to your library, and manage your citations
attachments:writeUpload a file to one of your drafts
profile:readRead your own profile and CV back

Grant the ones you want. An assistant you have connected to tidy your bibliography has no reason to hold cv:write, and refusing it costs you nothing.

If you are not sure, approve nothing on the first connection. Every read tool keeps working, and you can reconnect with more permission once you have seen what the assistant is actually useful for.

If it will not connect

"Client not found", or sign-in never appears. The client needs the client ID from the section above and has not been given one.

Sign-in works, then every tool fails. The token is probably missing the permission that tool needs. Reconnect and approve it.

Your assistant is not listed here. Any client that speaks MCP over HTTP and signs in with OAuth will work. The two sections above are the only two shapes there are: either it discovers who it is, or you paste libretimes-agent.

Revoking access

A connected assistant shows up under Settings -> Security in the active sessions list, alongside your browsers. Ending that session cuts the assistant off immediately; it does not wait for its token to expire. Nothing it drafted is deleted – drafts are yours.

Sessions are listed by IP address and last activity rather than by name, so if you have several connected and cannot tell which is which, "log out everywhere" ends all of them and you reconnect the one you meant to keep.