CONNECT APP
Build with Plaid
Connect to users' bank accounts.
Commerce
- API key
MCP
Give your agent Plaid tools
Every Plaid action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Plaid account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "plaid",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Access Token:
const result = await mcp.callTool({
name: "plaid-create-access-token",
arguments: {
publicToken: "Public Token",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "plaid",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Access Token:
result = await session.call_tool("plaid-create-access-token", {
"publicToken": "Public Token",
})SDK
Run Plaid actions from your backend
Connect a user's Plaid account once, then run Create Access Token on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "plaid-create-access-token",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
plaid: { authProvisionId: "apn_xxxxxxx" },
publicToken: "Public Token",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="plaid-create-access-token",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"plaid": {"authProvisionId": "apn_xxxxxxx"},
"publicToken": "Public Token",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "plaid-create-access-token",
"configured_props": {
"plaid": { "authProvisionId": "apn_xxxxxxx" },
"publicToken": "Public Token"
}
}'TOOLS
Plaid actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Access Token
actionExchange a Linkpublic_tokenfor an APIaccess_token. See the documentation.Writev0.0.2 -
Create Sandbox Public Token
actionCreates a validpublic_tokenfor an arbitrary institution ID, initial products, and test credentials. See the documentation.Writev0.0.2 -
Create User
actionCreates a user ID and token to be used with Plaid Check, Income, or Multi-Item Link flow. See the documentation.Writev0.0.2 -
Get Real-Time Balance
actionGet the real-time balance for each of an Item's accounts. See the documentation.Read-onlyv0.0.2 -
Get Transactions
actionRetrieves user-authorized transaction data for a specified date range. See the documentationRead-onlyv0.0.3
-
New Accounts Available (Instant)
triggerEmit new event when there are new accounts available at the Financial Institution. See the documentation.Instantv0.0.1 -
New Event (Instant)
triggerEmit new event when there are changes to Plaid Items or the status of asynchronous processes. See the documentation.Instantv0.0.1 -
Sync Updates Available (Instant)
triggerEmit new event when there are new updates available for a connected account. See the documentation.Instantv0.0.1
MULTI-APP
Use Plaid with other popular apps
Most products don't stop at one integration. Pair Plaid with the other apps your users rely on, and ship use cases that span both.
- App slug
- plaid
- Authentication
- API key
- Categories
- Commerce
- Actions
- 5
- Triggers
- 3
- API proxy
- Not available