# Create Collection — Airweave

> Create a new Airweave collection. Collections are logical groups of data sources that provide unified search capabilities. The newly created collection is initially empty until you add source connections to it. See the documentation

- Key: `airweave-create-collection`
- Type: Action (Write)
- Version: 0.0.2
- App: Airweave (`airweave`) — https://pipedream.com/apps/airweave.md
- This page (HTML): https://pipedream.com/apps/airweave/actions/create-collection
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/airweave/actions/create-collection/create-collection.mjs

## Description

Create a new Airweave collection. Collections are logical groups of data sources that provide unified search capabilities. The newly created collection is initially empty until you add source connections to it. [See the documentation](https://docs.airweave.ai/api-reference/collections/create)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `name` | `string` | Yes | Display name for the collection (e.g., 'Customer Support Data') |
| `readableId` | `string` | Yes | URL-friendly identifier for the collection (lowercase, hyphens allowed, e.g., 'customer-support-data'). This cannot be changed after creation. |
| `description` | `string` | No | Optional description of what this collection contains and its purpose |

## Run it

**MCP**

```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": "airweave",
      },
    },
  },
)

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

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "airweave-create-collection",
  arguments: {
    name: "Name",
    readableId: "Readable ID",
  },
})
```

**TypeScript**

```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: "airweave-create-collection",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    airweave: { authProvisionId: "apn_xxxxxxx" },
    name: "Name",
    readableId: "Readable ID",
  },
})

console.log(result)
```

**cURL**

```bash
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": "airweave-create-collection",
    "configured_props": {
      "airweave": { "authProvisionId": "apn_xxxxxxx" },
      "name": "Name",
      "readableId": "Readable ID"
    }
  }'
```

---

- App: https://pipedream.com/apps/airweave.md · All apps: https://pipedream.com/apps
