# MCP Usage Scenarios | Albato Embedded Docs

Source: https://albato.com/wiki/articles/mcp-usage-scenarios

Welcome to Albato Help

Search articles

# MCP Usage Scenarios

Last update:  
2/9/2026 · 3 min read

* * *

IN THIS ARTICLE

These are common end-to-end call sequences your agent runs through the tools described in the [MCP Tools Reference](https://albato.com/wiki/articles/mcp-tools-reference): running an action against an existing connection, handling a multi-step wizard connection, connecting a new app, and more.

## 1\. Run an action (existing connection)

The most common flow: the app is already connected, so the agent moves straight from finding the action to running it.

**find\_action**(serviceQuery: "HubSpot", actionQuery: "find deal") → status: "success", partnerId, triggerActionId, connections: \[{ credentialId: 90001 }\]  
**get\_action\_schema**(partnerId, triggerActionId, credentialData: {"0": {"value": 90001}}, fieldFilter: \["deal", "name"\]) → status: "success", variables: \[...\]  
**run\_action\_sync**(partnerId, triggerActionId, credentialData: {"0": {"value": 90001}}, runnerData) → result

## 2\. Multiple apps in one scenario

**find\_action** and **get\_action\_schema** each run once, covering every app the scenario needs in a single call rather than once per app.

**find\_action**(queries: \[{ HubSpot, "find deal" }, { Slack, "send message" }\]) → results for both apps in one array  
**get\_action\_schema**(actions: \[HubSpot params, Slack params\]) → variables for both  
**run\_action\_sync**(HubSpot action, credentialData: {"0": {"value": id1}}) → deal data  
**run\_action\_sync**(Slack action, credentialData: {"0": {"value": id2}}) → message sent

## 3\. Wizard connection (Google Sheets)

For actions with **hasCredentialWizard: true**, the agent collects connection settings step by step through **get\_credential\_wizard\_step** before it can request a schema.

**find\_action**(serviceQuery: "Google Sheets", actionQuery: "add row") → hasCredentialWizard: true, connections: \[{ credentialId: 90002 }\]  
**get\_credential\_wizard\_step**(triggerActionId, {"0": {"value": 90002}}) → list of spreadsheets  
**get\_credential\_wizard\_step**(triggerActionId, {"0": {...}, "1": {"value": "40002"}}) → list of sheets  
**get\_credential\_wizard\_step**(triggerActionId, {"0": {...}, "1": {...}, "2": {"value": "Sheet1"}}) → complete: true, final currentCredentialData  
**get\_action\_schema**(partnerId, triggerActionId, credentialData: final currentCredentialData) → variables  
**run\_action\_sync**(partnerId, triggerActionId, credentialData: final currentCredentialData, runnerData) → result

## 4\. No connection yet

If **connections** comes back empty, the agent has to get the user connected before it can do anything else.

**find\_action**(serviceQuery: "HubSpot", actionQuery: "create contact") → connections: \[\]  
**create\_connection\_link**(partnerId) → linkUrl, sharingId  
Agent sends the linkUrl to the user and waits for confirmation.  
**check\_connection\_status**(sharingId) → credentialId: 90001  
Continue with Scenario 1 above, using credentialData: {"0": {"value": 90001}}.

## 5\. Native adapter, multiple connected accounts

When a native adapter partner has more than one connected account, the agent asks the user which one to use before calling **run\_action\_sync**.

**find\_action**(serviceQuery: "HubSpot", actionQuery: "find deal") → triggerActionId: "native:...", connected: true, connections: \[{ connectionId: "acc-1", displayName: "My Team" }, { connectionId: "acc-2", displayName: "Sandbox" }\]  
Multiple connections found: ask the user which account to use.  
**get\_action\_schema**(partnerId, triggerActionId) → variables. credentialData is not needed for native adapter actions.  
**run\_action\_sync**(partnerId, triggerActionId, connectionId: "acc-2", runnerData) → result from the "Sandbox" account

If the adapter has only one connection, **connectionId** can be omitted: it's selected automatically.

## 6\. What's connected, disconnect an account

**list\_connections** shows everything the user has connected across every app, which is useful before offering to disconnect something.

**list\_connections**() → nativeConnections: \[{ adapterId: "hubspot-native", connectionId: "acc-2", displayName: "Sandbox" }\], albatoConnections: \[{ credentialId: 90001, partnerId: 10001, partnerTitle: "HubSpot", title: "My HubSpot account" }\]  
Show the user what they have connected.  
**disconnect\_adapter**({ adapterId: "hubspot-native", connectionId: "acc-2" }) → disconnected: true  
**disconnect\_partner**({ partnerId: 10001, credentialId: 90001 }) → disconnected: true

See the [MCP Tools Reference](https://albato.com/wiki/articles/mcp-tools-reference) for full parameter and response details on each of these tools, and the [MCP Architectural Principles](https://albato.com/wiki/articles/mcp-architectural-principles) guide for the design reasoning behind this flow.

Need help? Contact your Albato manager or reach out to the Albato technical team.

## Related articles

-   [MCP Tools Reference](https://albato.com/en/wiki/articles/mcp-tools-reference)

Did this answer your question?
