The member's registered MCP servers
connections_mcp_serversEvery MCP server this account has registered - each assistant, machine or connector - and which workspace it runs in. CALL IT WITH action:'list' whenever the member asks what is connected, why an assistant is in the wrong place, or why a server 'is not doing anything': an UNASSIGNED server is bound to no workspace, so its tools answer no_company_assigned and it looks broken. The reply leads with how many are unassigned. An unassigned server is not automatically one to assign - read the name first. A real project whose workspace exists gets action:'assign' with server (an id from the list) and workspace (a companyId or the exact name). A dead end - a scratch folder, a machine name, a browser version, a throwaway agent codename last seen weeks ago - gets action:'retire', which disables the registration exactly as switching it off in Studio does and drops it out of the unassigned count. Binding a dead row to a workspace invents a fact and cleans nothing. Both assign and retire take an ARRAY in server too, so a whole backlog is one call. 'restore' undoes a retire; nothing here ever deletes. Retiring a server seen in the last 10 minutes returns an error unless force:true, because an agent is probably running on it - pass force:true only if you mean to cut that session off. Every write needs the member's bypass-permissions setting to be ON; when it is off the reply is studio_only with the link, so say that rather than retrying. Listing always works.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | For retire: act even on a server seen in the last 10 minutes. Default false. | |
| action | No | 'list' (default), 'assign' a real project to a workspace, 'retire' a dead registration, or 'restore' a retired one. | |
| server | No | The server id from the list, or an array of ids to act on in one call. | |
| workspace | No | For assign: companyId (preferred) or the exact workspace name. |