list_apps is the read-only connected-app inventory. Use it before a workflow that depends on Gmail, Google Drive, Notion, Linear or another account the human controls.
Signature
list_apps({ provider? })Input fields:
| Field | Type | Required | Meaning |
|---|---|---|---|
provider | string | no | One exact app slug, such as notion. Omit it to list every app available to this workspace. |
Example requests:
{ "name": "list_apps", "arguments": {} }{ "name": "list_apps", "arguments": { "provider": "notion" } }Return shape
The result contains only the agent-safe workspace projection:
{
"count": 1,
"apps": [
{
"provider": "notion",
"name": "Notion",
"connected": false,
"capability_count": 4,
"live_capability_count": 3,
"connect_url": "https://scrollport.com/connect/notion"
}
],
"next_step": "Only the human can open connect_url and approve access. After they finish, call list_apps again to confirm the connection."
}connect_url appears only while an app is disconnected. A connected result omits it. If no apps are available, the response says to continue with ready-to-run catalog tools. If every requested app is connected, continue to search_tools for the outcome you want.
Human approval and privacy boundary
list_apps never starts OAuth, creates or polls a connection session, disconnects an app, or exposes an external account identity, connection id, credential or provider token. The human must open connect_url, sign in if needed and approve access on Scrollport. Call list_apps again only after the human says the flow is complete.
The inventory follows the same publication and workspace allowlist rules as the connected-apps dashboard. A shared connection profile does not make one workspace's hidden app visible to another workspace.
Common errors
- Unknown
provider: calllist_apps({})and use one returned slug. - Blank
provider: omit it to list all apps. - Extra input fields: call
list_apps({})orlist_apps({ provider: "notion" })only.
list_apps is read-only and free. App capabilities remain catalog data: use search_tools, then inspect_tool, before run_tool.