---
title: "Integration Checklist"
description: "The fast-path, end-to-end checklist for integrating with AINative — get a key, authenticate, connect an MCP server, and make a working call, all on one page."
canonical: "https://docs.ainative.studio/docs/getting-started/integration-checklist"
last-updated: "2026-10-22T17:48:46.689Z"
---

# Integration Checklist

Source: https://docs.ainative.studio/docs/getting-started/integration-checklist

> The fast-path, end-to-end checklist for integrating with AINative — get a key, authenticate, connect an MCP server, and make a working call, all on one page.

**Version**: 1.0
**Last Updated**: 2026-09-12

---

This page is the connective tissue between the three resources most integrations need — [Prerequisites](https://ainative.studio/getting-started), the [Quick Start](./quick-start) (auth + curl examples), and [MCP Servers Overview](../mcp/overview) (config JSON, package names, tool counts). It inlines everything in one linear sequence so you (human or agent) never have to cross-reference three pages to assemble a working integration. For deep dives on any step, follow the links out — this page intentionally keeps each step short.

## Checklist

1. [Get an API key](#1-get-an-api-key) — zero-auth in 30 seconds, or a permanent account
2. [Authenticate correctly](#2-authenticate-correctly) — `X-API-Key`, not `Authorization: Bearer`
3. [Pick and configure an MCP server](#3-pick-and-configure-an-mcp-server) — 7 real servers, package names, tool counts
4. [Prove it works](#4-prove-it-works-end-to-end) — one curl call and one MCP call, both live

---

## 1. Get an API Key

You have two paths. Both work for agents and humans.

### Path A — Zero-auth, no signup (fastest)

Call the public instant-db endpoint. No email, no password, no CAPTCHA:

```bash
curl -X POST https://api.ainative.studio/api/v1/public/instant-db \
  -H "Content-Type: application/json" \
  -d '{"agree_terms": true}'
```

```json
{
  "api_key": "tmp_xxx...",
  "project_id": "uuid",
  "base_url": "https://api.ainative.studio",
  "expires_at": "72 hours from now"
}
```

:::info Must include agree_terms
Omitting `"agree_terms": true` returns HTTP 451 with a link to the terms. This is the entire zero-auth flow — one call, no other steps required to start making requests.
:::

The returned `tmp_` key is fully functional for 72 hours. When you're ready to keep your data, register a real account and claim it — see [Quick Start → For AI Agents](./quick-start#for-ai-agents-zero-human-provisioning) for the claim flow.

### Path B — Permanent account

```bash
curl -X POST https://api.ainative.studio/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "your-email@example.com",
    "password": "YourSecurePass123!",
    "full_name": "Your Name"
  }'
```

Then create a scoped, long-lived API key:

```bash
curl -X POST https://api.ainative.studio/api/v1/api-keys \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "My First API Key", "expires_in_days": 90}'
```

Full walkthrough, including prerequisites for a permanent setup: [ainative.studio/getting-started](https://ainative.studio/getting-started) and [Quick Start → Full Setup](./quick-start#full-setup-permanent-account).

---

## 2. Authenticate Correctly

Once you have a key (`tmp_`, `sk_`, or `zdb_live_`), send it as **`X-API-Key`**:

```bash
curl https://api.ainative.studio/api/v1/database/projects \
  -H "X-API-Key: YOUR_API_KEY"
```

:::danger The #1 integration trap: `Authorization: Bearer` is for JWTs, not API keys
`Authorization: Bearer <token>` is the header for **JWT session tokens** (issued by `/api/v1/auth/login` or `/api/v1/auth/register`). API keys (`sk_*`, `tmp_*`, `zdb_live_*`) belong in **`X-API-Key`**. Sending an API key as `Authorization: Bearer sk_...` on a route that expects a JWT returns a **401**, even though the key itself is valid — this is a real, easy-to-hit trap, not a hypothetical. If you get an unexplained 401 with a key you know is good, check which header you used before assuming the key is bad.
:::

| Credential | Header | Example |
|---|---|---|
| API key (`sk_`, `tmp_`, `zdb_live_`) | `X-API-Key` | `X-API-Key: sk_live_...` |
| JWT access token (from register/login) | `Authorization: Bearer` | `Authorization: Bearer eyJhbGc...` |

Full reference, including OAuth2 and key rotation: [Authentication Guide](./authentication).

---

## 3. Pick and Configure an MCP Server

AINative publishes **7 MCP servers**. Pick the one matching what you need:

| Server | Package | Tools | What It Does |
|--------|---------|:-----:|-------------|
| [ZeroDB Full](../mcp/full-server) | `pip install zerodb-mcp` | 69+ | Complete data layer: vectors, memory, tables, files, events, PostgreSQL, graph |
| [ZeroDB Memory](../mcp/memory-server) | `npm i ainative-zerodb-memory-mcp` | 10 | Agent memory + plan artifacts: store, recall, semantic search, versioned plans |
| [PRD Generator](../mcp/prd-generator-server) | `npm i ainative-prd-mcp` | 18 | Generate, validate, and manage PRDs with AINative platform awareness + ZeroDB persistence |
| [Sequential Thinking](../mcp/sequential-thinking-server) | `npx zerodb-sequential-thinking-mcp` | 3 | Persistent reasoning chains with cross-session resume — self-provisioning |
| [Design System](../mcp/design-system-server) | `npm i -g ainative-design-system-mcp-server` | 3 | Extract tokens, analyze components, generate themes |
| [GTM](../mcp/gtm-server) | `npx @ainative/gtm-mcp` | 20 | Audit, fix, and publish Google Tag Manager containers |
| [Strapi CMS](../mcp/strapi-server) | `npm i -g ainative-strapi-mcp-server` | 21 | Create, update, and publish Strapi content via natural language |

### Fastest setup — auto-detect

```bash
npx zerodb-cli init
```

Auto-detects Claude Code, Cursor, VS Code, or Windsurf and writes the config for you.

### Manual setup — Claude Code

Edit `~/.claude.json` (global) or `.claude/settings.json` (project):

```json
{
  "mcpServers": {
    "zerodb-memory": {
      "command": "npx",
      "args": ["-y", "ainative-zerodb-memory-mcp"],
      "env": {
        "ZERODB_API_KEY": "your-api-key",
        "ZERODB_PROJECT_ID": "your-project-id"
      }
    }
  }
}
```

Note this config uses your API key as an env var directly — the MCP server sends it as `X-API-Key` under the hood, so the gotcha in [Step 2](#2-authenticate-correctly) doesn't apply here.

Full setup for every server, plus Cursor config and hosted remote MCP (no local install): [MCP Servers Overview](../mcp/overview).

---

## 4. Prove It Works, End-to-End

### Option A — curl (REST)

Using the key from Step 1 and the header from Step 2:

```bash
curl -X POST https://api.ainative.studio/api/v1/chat/completions \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "digitalocean",
    "model": "Llama-3.3-70B-Instruct",
    "messages": [
      {"role": "user", "content": "Hello, world!"}
    ]
  }'
```

A successful response is a standard chat-completion payload with a `choices[0].message.content` field. If you get a 401, re-check Step 2 — it's almost always the header, not the key.

### Option B — MCP tool call

After `npx zerodb-cli init` (or the manual config from Step 3), ask your agent to call a ZeroDB Memory tool, e.g. "store a memory that says integration test successful." A working setup returns a tool result with a memory ID — no REST call needed, the MCP server handled auth internally using the env vars you configured.

---

## What's Next

- Full prerequisites and account walkthrough: [ainative.studio/getting-started](https://ainative.studio/getting-started)
- Full quick-start with SDK examples (Python, Node.js), vector search, and common use cases: [Quick Start](./quick-start)
- All 7 MCP servers in depth, hosted remote MCP, REST tool discovery, and the Agent Security Guide: [MCP Servers Overview](../mcp/overview)
- Deep-dive on JWT vs API key vs OAuth2: [Authentication Guide](./authentication)

Refs #7332
