---
title: "Datapacks"
url: "https://docs.mekodata.ai/architecture/core-concepts/datapacks/"
---

# Datapacks

The isolation unit for agent data in Meko

A **datapack** is Meko's fundamental unit of isolation. Each datapack provides a self-contained persistent store for conversations, memory, and knowledge. MCP clients connect to the shared endpoint (`https://mcp.mekodata.ai/mcp`) and target a datapack by passing the datapack ID in tool calls.

A memory, a knowledge-base file, and an artifact are different things. See [Where to store it](/guides/where-to-store/).

## What's in a datapack

When you create a datapack, Meko provisions isolated storage, scoped to your agent(s), and managed internally by Meko.

To connect an external MCP client (Cursor, Claude Code, and so on), you need:

- The **MCP server URL**, `https://mcp.mekodata.ai/mcp` (the same for every datapack and user).
- A **user API key**: a long-lived key you generate under **Settings > API Keys** in the portal (values start with `mko_tkn_`).

Agents select the datapack to connect to by passing the `datapack_id` inside each MCP tool call, not by using a different URL per datapack.

## Create a datapack

The first time you sign in to the Meko portal, Meko walks you through the steps to create your default datapack (`meko_default_datapack`) and connect it to your client.

To create additional datapacks:

1. In the Meko portal, navigate to **Datapacks**.
2. Click **Add Datapack**.
3. Follow the instructions in the configure wizard.

If Meko can't finish setting up the datapack's tracing project, creation fails with `Could not finish setting up the datapack; nothing was created. Please retry.` Nothing is left behind, so retry with the same name.

You can create more than one datapack at the same time, up to your plan's datapack cap.

Free tier

Free accounts can create up to **10 datapacks**. When you reach the limit, **Add Datapack** is disabled. See [Reach a tier limit](#reach-a-tier-limit).

## Reach a tier limit

The Free tier includes limits on datapack creation, knowledge base storage, number of conversations, and WorkbenchLM token usage. When you exceed a limit, Meko displays a corresponding message. Click **Upgrade to Standard** on the message banner to open **Settings > Pricing** with the Standard plan selected.

Choose **AWS Marketplace** under Standard ($25 / month), then **Continue to AWS Marketplace**. After you subscribe, click **Set up your account**. If you skip that step, the plan stays on Free. Stripe is marked coming soon. See [Meko pricing](https://mekodata.ai/pricing/).

You cannot upgrade from Standard using the Marketplace. To upgrade, choose **Talk to our team**.

Free tier has the following limits:

- 10 datapacks
- 100 MB of knowledge base storage
- 1,000 conversations
- 10 million WorkbenchLM tokens

## Manage datapacks

Manage your datapacks from the **Datapacks** page in the Meko portal. **Datapacks** lists all your datapacks. From here you can add and share datapacks.

Select a datapack to view the conversations, memories, learnings, and knowledge the datapack holds.

From here, you can review and promote learnings to [knowledge](/architecture/core-concepts/knowledgebase/).

After you create a datapack:

- Share it. Invite team members or share a link. See [Share a datapack](/architecture/core-concepts/sharing/).
- Manage access to your shared datapack by assigning roles. See [Manage access](/architecture/core-concepts/manage-access/).
- Add it to a project. A project groups datapacks that work toward one outcome, while keeping each datapack independent. See [Projects](/architecture/core-concepts/projects/).

## Isolation model

Each datapack is fully isolated:

- **Data isolation**. Logical isolation within a shared YugabyteDB universe. An agent's `memory_search` returns that user's memories. In the portal and the API list, other members of the datapack can see those memories. Viewers see them without who wrote them.
- **Credential isolation**. User API keys and database credentials are scoped to your account; datapack data is separated in storage.
- **MCP isolation**. Tool calls include a `datapack_id` so the shared MCP server only reads and writes that datapack's data.

## Connect via MCP

Each datapack exposes an MCP server that agents use to interact with their data.

When you create a datapack in the Meko portal, Meko provides instructions to connect your datapack to your agent automatically. The connection commands are also available under **Connect** in the Meko portal.

You can also configure clients by manually adding this configuration to your coding agent or agent framework. See [Integrations](/integrations/).

## Automatic capture and datapack pinning

When you have multiple datapacks, you designate one as your **active pin** - the default datapack where Meko saves conversations and memories. If you only have one datapack, Meko uses it automatically.

### How to change your pin

**Ask your agent in plain language:**

```text
Switch my Meko datapack to research
```

**Or invoke the selector skill directly:**

```text
# Claude Code
/meko-agent-skills:meko-select-datapack

# Claude Desktop
/meko-select-datapack-desktop
```

The selector shows 10 datapacks at a time, newest first. It shows your role on each row, such as `owner` or `viewer`, and marks the current pin.

Reply with a number to pin that row, part of a name to search, or `next` / `prev` to change pages. A name reply searches the whole account, including rows that are not on this page. Reply with `clear` or `none` to drop the pin and use your account default.

### Pins apply to new conversations only

**When you switch pins:** Your current conversation stays in its original datapack. The new pin takes effect only when you start a new chat. Existing conversations never move between datapacks.

| Scenario                              | Result                                                                          |
|---------------------------------------|---------------------------------------------------------------------------------|
| Pin a datapack, then start a new chat | New chat uses the pinned datapack                                               |
| Pin a datapack while chatting         | Current conversation stays in its original datapack; next chat uses the new pin |
| Switch pins on Claude Desktop         | Ask the agent to "start a new Meko conversation" to apply the pin immediately   |

**Example:** You're chatting in the "research" datapack. You say "Switch my pin to personal-projects." Meko updates the pin, but the current conversation keeps writing to "research." Your next chat will use "personal-projects."

### How the pin persists across sessions

**Claude Code**: The pin is stored per project and survives restarting Claude Code, clearing your transcript, and opening another window in the same repository. Different projects can have different pins.

**Claude Desktop**: The pin is stored in Meko memory and survives across all Desktop conversations until you change or clear it.

If your pinned datapack is deleted or you lose access, Meko fails gracefully rather than silently writing elsewhere. Run the selector to pick an accessible datapack, or clear the pin.

Cursor, Codex, and Kiro

These clients don't have a guided datapack selector. You can still name a datapack directly in a prompt without changing your pin (for example, "save this conversation to the research datapack"). To set or change your default pin, use Claude Code or Claude Desktop's selector.

OpenCode

Installer 2.5.0 capture for OpenCode CLI and TUI uses your account's default datapack. It doesn't read the pin. `--datapack` applies only when you import old sessions with `--migrate`.

## Delete a datapack

Only the owner can delete a datapack.

Open the actions menu (the gear next to **Share**) and choose **Delete** plus the datapack name, such as **Delete research**. In the **Delete datapack** dialog, click **Delete**.

On a datapack's own menu, **Delete** does not open the dialog for `meko_default_datapack`, the datapack Meko created when you signed in.

You can delete a datapack when tracing is unavailable.
