CONNECT APP
Build with Miro Developer App
Web & App Development
- API key
MCP
Give your agent Miro Developer App tools
Every Miro Developer App 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 Miro Developer App 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": "miro_custom_app",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Board:
const result = await mcp.callTool({
name: "miro_custom_app-create-board",
arguments: {
name: "Board Name",
description: "Board Description",
},
})# 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": "miro_custom_app",
}
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 Board:
result = await session.call_tool("miro_custom_app-create-board", {
"name": "Board Name",
"description": "Board Description",
})API PROXY
Call the Miro Developer App API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Miro Developer App API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.miro.com/v1/oauth-token",
})
// Any allowed Miro Developer App endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.miro.com/v1/oauth-token
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkubWlyby5jb20vdjEvb2F1dGgtdG9rZW4?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Miro Developer App actions from your backend
Connect a user's Miro Developer App account once, then run Create Board 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: "miro_custom_app-create-board",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
miro_custom_app: { authProvisionId: "apn_xxxxxxx" },
name: "Board Name",
description: "Board Description",
},
})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="miro_custom_app-create-board",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"miro_custom_app": {"authProvisionId": "apn_xxxxxxx"},
"name": "Board Name",
"description": "Board Description",
},
)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": "miro_custom_app-create-board",
"configured_props": {
"miro_custom_app": { "authProvisionId": "apn_xxxxxxx" },
"name": "Board Name",
"description": "Board Description"
}
}'TOOLS
Miro Developer App actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Board
actionCreates a Miro board. See the docs.Writev0.0.3 -
Create Card Item
actionCreates a card item on a Miro board. See the documentation.Writev0.0.2 -
Create Shape
actionCreates a shape on a Miro board. See the docs.Writev0.0.3 -
Create Sticky Note
actionCreates a sticky note on a Miro board. See the docs.Writev0.0.3 -
Delete Board
actionDeletes a Miro board. See the docs.Writev0.0.3 -
Delete Item
actionDeletes an item from a Miro board. See the docs.Writev0.0.3 -
Get Board
actionReturns a Miro board. See the docs.Read-onlyv0.0.3 -
Get Items
actionReturns items on a Miro board. See the docs.Read-onlyv0.0.3 -
Get Specific Item
actionReturns a specific item on a Miro board. See the docs.Read-onlyv0.0.3 -
List Boards
actionReturns a user's Miro boards. See the docs.Read-onlyv0.0.4 -
Update Board
actionUpdates a Miro board. See the docs.Writev0.0.3 -
Update Card Item
actionUpdates a card item on a Miro board. See the documentation.Writev0.0.2 -
Update Shape
actionUpdates content of an existing shape on a Miro board. See the docs.Writev0.0.3 -
Update Sticky Note
actionUpdates content of an existing sticky note on a Miro board. See the docs.Writev0.0.3
EVENTS
Miro Developer App triggers
Event sources your backend can deploy for users and receive through a webhook.
MULTI-APP
Use Miro Developer App with other popular apps
Most products don't stop at one integration. Pair Miro Developer App with the other apps your users rely on, and ship use cases that span both.
REFERENCE
App details
Reference metadata for the Miro Developer App connector in the Pipedream registry.
- App slug
- miro_custom_app
- Authentication
- API key
- Categories
- Web & App Development
- Actions
- 14
- Triggers
- 3
- API proxy
- Available