Overview
Connectors
Section titled “Connectors”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.