| Endpoint | https://one.habiff.si/connect |
| Transport | Streamable HTTP (POST, JSON-RPC 2.0) |
| Sign-in | OAuth 2.1 authorization code with PKCE (S256). No client secret, no API key. |
| Registration | Dynamic client registration at https://one.habiff.si/api/oauth/register |
| Metadata | https://one.habiff.si/.well-known/oauth-authorization-server https://one.habiff.si/.well-known/oauth-protected-resource/connect |
| Tokens | Access 15 minutes · refresh 30 days, rotated on use |
| Tools | 80 across 13 apps |
Four levels per assistant and per app: Full access, Read-only, Pick actions, No access. Tools outside the level are not listed and cannot be called.
Every tool is labelled read write sensitive. Read calls run and are logged. Write calls run and are logged. A sensitive call — send, delete, publish, browser action — creates a card instead: the whole payload, sixty seconds, no answer means deny, one use. The receipt is written before the effect.
claude mcp add --transport http --scope user habiff https://one.habiff.si/connect
codex mcp add habiff --url https://one.habiff.si/connect
# Cursor: {"mcpServers":{"habiff":{"url":"https://one.habiff.si/connect"}}}
Dynamic registration: 30 an hour per address. Approval cards: 60 seconds, single use. Files: 2.9 MB each. Memory suggestions: 1,000 characters, 20 waiting. Playbooks: 20,000 characters, 50 per user. Alert windows: 10 minutes.
The catalogue below is generated from the running server, so it cannot drift from behaviour.
One document about you. Assistants read it; you approve every change.
| memory_read | read | Read the user's memory: one markdown document they wrote about themselves. |
| memory_suggest | write | Suggest adding one lasting fact or preference. Nothing changes until the user accepts it. |
Your documents, plus one private folder per assistant.
| files_list | read | List the user's documents and the files this assistant saved. |
| files_search | read | Search the user's documents and this assistant's files by meaning. |
| files_read | read | Read a file's extracted text, with a short-lived download link. |
| files_upload | write | Save a file into this assistant's own folder. Max 2.9 MB. |
Saved methods your assistant can follow, with your own apps.
| playbook_list | read | List the user's playbooks and any this assistant proposed. |
| playbook_get | read | Load one playbook by slug: its connectors, boundaries and steps. |
| playbook_save | write | Propose a new playbook, or a change to one. Waits for the user to accept. |
A browser signed in to your sites, one tab group per assistant.
| browser_navigate | write | Open a web page in the user's cloud browser and return a snapshot. |
| browser_snapshot | read | Read the current page as text and elements with refs. |
| browser_screenshot | read | See the current page as an image. |
| browser_click | sensitive | Click an element by ref. |
| browser_type | sensitive | Type into a field, replacing its contents. |
| browser_select | write | Pick an option from a dropdown by its text. |
| browser_press_key | sensitive | Press a key or shortcut in the focused element. |
| browser_scroll | read | Scroll the page by most of a screen. |
| browser_tabs | write | List this assistant's tabs, optionally closing one. |
| browser_open | sensitive | Get a CDP endpoint for your own Playwright/Puppeteer code. |
Search, read, draft and send. Up to five accounts, each on its own.
| search_threads | read | Search Gmail conversations with Gmail search syntax. |
| get_message | read | One message by id; FULL adds body and attachments. |
| create_draft | write | Save a draft in Gmail. Not sent. |
| get_draft | read | Read one draft by id. |
| update_draft | write | Change a draft; pass only what changes. |
| send_message | sensitive | Send an email, or send a draft by id. |
| email_archive | write | Archive messages: leave the inbox, stay in All Mail. |
| email_update | sensitive | Mark read or unread, star, mark important, move to inbox, label. |
| email_trash | sensitive | Move messages to the trash. Gmail deletes them after 30 days. |
| email_labels | read | List the user's Gmail labels. |
| email_read_thread | read | Read every message in a thread, oldest first. |
| email_attachment | read | Read one attachment, up to 10 MB. |
| email_list_drafts | read | List drafts with ids. |
| email_send_draft | sensitive | Send an existing draft as it is. |
| email_delete_draft | sensitive | Delete a draft for good. |
| email_untrash | write | Restore messages from the trash. |
Send from a personal Outlook or Microsoft 365 mailbox.
| get_me | read | The user's Microsoft account and the address it sends from. |
| send_mail | sensitive | Send an Outlook email; a copy goes to Sent Items. |
A Zoho mailbox in its own data centre. List, search, read and send.
| zoho_mail_account | read | The Zoho mailbox this sends from, and the name on it. |
| zoho_mail_list | read | List Inbox mail newest first. Use for unread or very recent mail. |
| zoho_mail_search | read | Search Zoho Mail with its search syntax, newest first. |
| zoho_mail_read | read | Read one email's full content. |
| zoho_mail_send | sensitive | Send from the user's Zoho address; a copy goes to Sent. |
Read channels and threads, find people, post as you.
| slack_list_channels | read | List channels, group DMs and DMs the user is in. |
| slack_search_channels | read | Find channels whose name contains the query. |
| slack_search_users | read | Find people by name, display name or email. |
| slack_read_channel | read | Read a channel or DM, newest first. |
| slack_read_thread | read | Read a thread, oldest first. |
| slack_read_user_profile | read | A person's Slack profile. Defaults to the user. |
| slack_send_message | sensitive | Send a message as the user. thread_ts replies in a thread. |
Post, comment and like as you. LinkedIn does not allow reading.
| linkedin_account | read | The account posts go out as. |
| linkedin_post | sensitive | Publish a post as the user, right away. No drafts. |
| linkedin_comment | sensitive | Comment on a post as the user. |
| linkedin_like | write | Like a post as the user. |
See what's on, find free time, create and answer invites.
| calendar_list_events | read | List events, default the next seven days. |
| calendar_create_event | sensitive | Create an event and invite attendees. |
| calendar_get_event | read | One event's details, guests and answers. |
| calendar_update_event | sensitive | Change an event; only the fields you pass. |
| calendar_delete_event | sensitive | Delete an event and tell its guests. |
| calendar_respond | sensitive | Accept, decline or tentatively accept an invite. |
| calendar_find_free_time | read | Open slots between two moments, at least N minutes long. |
Docs, Sheets and plain files. Doc changes arrive as suggestions.
| drive_search | read | Find files by name or content. |
| drive_recent | read | Files that changed most recently. |
| drive_read | read | Read a file as text, paged with offset. |
| drive_upload | write | Save a new file to Drive and return its link. |
| docs_read | read | Read a Google Doc as Markdown, tab by tab. |
| docs_suggest | sensitive | Suggest changes the user accepts in the Doc. |
| docs_edit | sensitive | Change a Doc directly, without suggestions. |
| docs_comment | sensitive | Comment on a passage of a Doc. |
| sheets_read | read | Read a Sheet's tabs and values. |
| sheets_update | sensitive | Write values from a start cell, as if typed. |
| sheets_batch_update | sensitive | Write up to 100 ranges atomically. |
| sheets_append | sensitive | Add rows after the last row of a table. |
| sheets_add_tab | sensitive | Add an empty tab to a Sheet. |
Notion, Linear, Jira, Todoist, Stripe and any MCP server you add.
| app_tools | read | List the user's connected apps, and one app's tools. |
| app_read | read | Run one of an app's read-only tools. |
| app_call | sensitive | Run any tool the user allows on a connected app. |
One room, several assistants, you leading.
| meeting_join | write | Join a meeting when the user gives you a meet link. |
| meeting_send | write | Say something in a meeting you joined. |
| meeting_wait | read | Wait for the next messages in a meeting, up to 50 seconds. |
| meeting_leave | write | Leave a meeting you joined. |
Preview build. Provider calls are demo-mode until OAuth client credentials are configured; the gateway, cards and ledger are live code.
Open Habiff One