View as Markdown
Amazon SES icon Keycloak icon

MULTI-APP TOOLKIT

Build with Amazon SES + Keycloak

Connect a user's Amazon SES and Keycloak accounts and expose tools for both apps directly in your product or your agent.
  • Multi-app
  • One MCP session
  • 10 actions
  • 1 triggers
  • Managed auth

MCP

One MCP session, both toolsets

One session gives your product or agent every Amazon SES and Keycloak tool at once — connect once, list tools, and call them like any single-app session.

// 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": "amazon_ses,keycloak",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// One list, both toolsets: Amazon SES and Keycloak tools arrive
// together, each keyed by its own app's slug.

// e.g. run Create Email Template:
const result = await mcp.callTool({
  name: "amazon_ses-create-email-template",
  arguments: {
    region: "AWS Region",
    TemplateName: "Template Name",
  },
})

ARCHITECTURE

One user, two connected accounts

Your user connects each account once, under whatever ID they already have in your product. The two stay independent — either can be revoked on its own — and your code reaches both through that one user.

Your product

external_user_id

{external_user_id}

Pipedream Connect

Managed identity

Auth · tools · routing

Amazon SES

Connected account

Keycloak

Connected account

x-pd-app-slug
amazon_ses,keycloak
Primary app
Amazon SES (amazon_ses)
Second app
Keycloak (keycloak)
Authentication
API key + OAuth
Available actions
10
Available triggers
1