# Clerk — Pipedream Connect

> Drop-in authentication for React and React Native.

- API slug: `clerk` (use in MCP headers and tool keys)
- Auth: API key (Pipedream-managed)
- Categories: Developer Tools
- Website: https://clerk.com/
- This page (HTML): https://pipedream.com/apps/clerk
- Tools: 7 actions · 0 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: clerk`

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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": "clerk",
      },
    },
  },
)

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

const { tools } = await mcp.listTools()

// e.g. run Create User:
const result = await mcp.callTool({
  name: "clerk-create-user",
  arguments: {
    externalId: "External Id",
    firstName: "First Name",
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a Clerk endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://api.clerk.com/v1/users

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuY2xlcmsuY29tL3YxL3VzZXJz?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```ts
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: "clerk-create-user",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    clerk: { authProvisionId: "apn_xxxxxxx" },
    externalId: "External Id",
    firstName: "First Name",
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (7)

### `clerk-create-user` — Create User (Write)

Creates a new user. Your user management settings determine how you should setup your user model. See the documentation

Full schema: https://pipedream.com/apps/clerk/actions/create-user.md

### `clerk-create-user-invitation` — Create User Invitation (Write)

Creates a new invitation for the given email address and sends the invitation email. Keep in mind that you cannot create an invitation if there is already one for the given email address. Also, trying to create an invitation for an email address that already exists in your application will result…

Full schema: https://pipedream.com/apps/clerk/actions/create-user-invitation.md

### `clerk-delete-user` — Delete User (Write)

Delete the specified user. See the documentation

Full schema: https://pipedream.com/apps/clerk/actions/delete-user.md

### `clerk-get-user` — Get User (Read-only)

Retrieve the details of a specific user. See the documentation

Full schema: https://pipedream.com/apps/clerk/actions/get-user.md

### `clerk-get-user-membership` — Get User Memberships (Read-only)

Retrieve a list of the user's organization memberships. See the documentation

Full schema: https://pipedream.com/apps/clerk/actions/get-user-membership.md

### `clerk-list-user-id-options` — List User Id Options (Read-only)

Retrieves available options for the User Id field.

Full schema: https://pipedream.com/apps/clerk/actions/list-user-id-options.md

### `clerk-update-user` — Update User (Write)

Update a user's attributes. You can set the user's primary contact identifiers (email address and phone numbers) by updating the Primary Email Address Id and Primary Phone Number Id attributes respectively. Both IDs should correspond to verified identifications that belong to the user. See the…

Full schema: https://pipedream.com/apps/clerk/actions/update-user.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
