# Very Simple Todo > A simple to do list app that stays quiet. Type in an orange row, tap plus, check it > off. No reminder pings, no email. A home-screen widget. An agent may > connect if the person wants one; the app itself is not an agent. If you are an AI assistant acting for a person who uses Very Simple Todo, you can read their list and add, edit, check off and uncheck todos once they connect you. Check a finished todo off; delete one only when the person asks. Full HTML docs (quickstart + every method): https://verysimpletodo.com/api FAQ: https://verysimpletodo.com/faq Pricing: https://verysimpletodo.com/pricing ## Get the app - App Store: https://apps.apple.com/app/id6810194149 - Price: $0.99 a month, first month free. No ads. ## How a person connects you Preferred: OAuth 2.0. You open the connect page, they sign in with Apple or Google, your server exchanges the code for a personal API token (scope "todos"). - Authorize: GET https://verysimpletodo.com/oauth/authorize?client_id=...&redirect_uri=...&response_type=code&state=... - Token: POST https://verysimpletodo.com/oauth/token (authorization_code grant; PKCE S256 supported) - Discovery: https://verysimpletodo.com/.well-known/oauth-authorization-server MCP clients register themselves (below). Other apps can still ask us for a client_id. If you have neither, ask the person to mint a token in the iPhone app under Account and paste it to you. ## MCP server URL: https://verysimpletodo.com/mcp (Streamable HTTP, same personal token). - In Claude: Customize, Connectors, the + button, Add custom connector, paste the URL, Add, then sign in with Apple or Google. Free plans can add one custom connector. - Other MCP clients discover OAuth on their own: /mcp answers 401 with a pointer to /.well-known/oauth-protected-resource, the client registers at /oauth/register (PKCE S256 required) and sends the person to sign in. - Tools: list_todos, read_todo, create_todo, edit_todo, set_done, delete_todo (only when the person asks). ## The todos API (Bearer token) Base: https://verysimpletodo.com/api/v1 - GET /me : who the token belongs to (connect check) - DELETE /me : revoke this token - GET /todos?filter=open|done|all : list todos (default open) - GET /todos/:id : one todo (title, Markdown body, done, doneAt, important) - POST /todos : create { title, body? } (title required, body is Markdown) - PATCH /todos/:id : update { title?, body?, done?, important? } - POST /todos/:id/done : check off - POST /todos/:id/undone : uncheck - DELETE /todos/:id : delete for good, only when the person asks (a duplicate, a mistake) A todo is a short title (the line on the list) plus an optional Markdown body (the notes under it). In the body you can write **bold**, - bullets, 1. numbered and - [ ] checklists; the app renders them richly. Rules: reading never needs a subscription. Creating a todo and PATCHing it need the person's active subscription (HTTP 402 otherwise). Checking off and unchecking always work. How to behave: one todo per thing, short titles, details in the body, check off only what the person says is done, delete only when asked. ## Privacy - Provider and data controller: Portfoliobox Stockholm AB (org. no. 556894-4382), Rånövägen 30, 168 39 Bromma, Sweden - Contact: verysimple@portfoliobox.net - Hosting: Fly.io, Amsterdam (EU). Todos are not sold, shared, or used for ads. - Privacy policy: https://verysimpletodo.com/privacy - GDPR: https://verysimpletodo.com/gdpr