EvyOS ships a remote MCP server over your tasks, projects, goals, habits, skills, notes and calendar. OAuth 2.1 with PKCE, dynamic client registration, nothing to paste but the URL, and access you can revoke from Settings.
Serverhttps://api.evyos.com/mcp
Connecting a client is a Pro feature. The trial does not need a card.
The client does the discovery. You paste a URL and approve a screen.
In ChatGPT or Claude, add a connector with the URL https://api.evyos.com/mcp. Any other MCP client that supports remote servers with OAuth takes the same URL.
An unauthenticated call returns a 401 carrying WWW-Authenticate with a pointer to the protected-resource metadata. From there the client finds the authorization server, registers itself under RFC 7591, and starts a PKCE flow. None of this is anything you do.
Your browser opens EvyOS, you sign in as normal, and a consent screen names the application that asked and what it wants: evyos:read, evyos:write and offline_access. Approve it and you are returned to the client. This is the step that requires Pro.
The client holds an EvyOS token, not your Clerk session. Every tool call runs as a request against the same API the web app uses, under your identity and your plan.
A CLI, a script or a self-hosted agent can use a long-lived key instead. Mint one in Settings and send it as a bearer token. It never expires, so disconnecting it in Settings is the only way it ends — treat it like any other secret.
The whole product, not a read-only slice. Updates are partial — a client sends only the fields that change — and the specific tool is always preferred over a generic update, so completing a task is evyos_complete_task rather than setting a status field.
The interesting decisions here are the ones that stop the connector becoming a second, subtly different product.
Each tool call is dispatched as an in-process request against the same application that serves the app. Nothing reimplements product logic, so quotas, workspace scoping, activity logging and cache invalidation are inherited rather than reproduced.
No session is held between requests. Every call carries its own bearer token, which means the server scales horizontally with no affinity and a restart never drops a connection mid-conversation.
Access and refresh tokens are stored hashed and rotate on refresh. Revoking a connection in Settings invalidates every token under it at once, and a connected app can never authorise another one.
A connection belongs to the account that approved it and sees only that account's data, including the shared workspaces that account is a member of. Nothing crosses between users.
A connection carries a snapshot of your plan, refreshed whenever you open Settings. Upgrading to Pro lifts the connector's limits on your next visit instead of requiring a reconnect.
The server sends the model the record model once, at connection time — how goals, projects and tasks ladder, that habits are per-day records, that deleting is not the same as finishing. It asks far better questions as a result.
Create one free, paste the URL into your client, and approve the consent screen.
Start for free →