Skip to content

Overview

Other services a person connects to Lucy, starting with Microsoft 365 (Outlook mail and calendar, OneDrive and SharePoint files; work, school or personal accounts). An organization turns a connector on and chooses its apps (PUT /org/connectors/{connector}); each person then connects their own account for the allowed apps. A connection is the person’s: Lucy acts as that person, never as a shared account.

The catalog: Lucy’s curated connectors (Microsoft 365) and the organization’s own, which admins add as a remote MCP server by URL (createOrgMcpServer), with no sign-in or a credential “Shared by the organization”. Two organization settings open it up, both off by default: connectors_open_catalog and connectors_member_servers.

Tool permissions: each tool of a connector, and of local access, is allow, ask or deny (PermissionLevel). Admins set it for everyone (setOrgToolPermission); a person can make it stricter for themselves (setMyToolPermission), never looser. Defaults come from the tool’s MCP annotations: read-only tools are allow, tools that write, delete, reach the open world or other people are ask. ask puts a card in the chat (Step.approval) before each call; deny hides the tool from the model. Permissions are the person’s, for all their conversations: none is set per conversation.

Signing in: startConnection returns the service’s sign-in address; the person signs in there and the service sends the browser back to https://api.asklucy.eu/v1/connectors/{connector}/callback (no bearer token: the single-use state made by startConnection says who it is). Lucy then redirects to the return_url with ?connector=m365&result=connected|denied|error.

Tokens are sealed in Lucy’s database with a key that is not in the database, are never returned by any endpoint, and never reach the model, the worker or a sandbox. Turning an app off for the organization stops Lucy using it for everyone at once, without asking anyone to connect again. Removing a person deletes their connections.