Skip to content

Quickstart

Matt Dula edited this page Apr 18, 2026 · 1 revision

Quickstart

Five minutes from git clone to a local MCP server your agent can talk to.

Prerequisites

  • Docker Desktop (or an equivalent with docker compose v2)
  • git
  • Optional: an MCP-capable agent host (Claude Desktop, Cursor, etc.)

One command

git clone https://github.com/mrdulasolutions/NakatomiCRM.git
cd NakatomiCRM
./install.sh --seed you@example.com

Output:

───────────────────────────────────────────────────
 Nakatomi is up at http://localhost:8000
 Seeded user:  you@example.com
 Password:     <auto-generated>        (save this)
 Workspace:    you
 API key:      nk_<prefix>_<secret>    (save this)
 API docs:     http://localhost:8000/docs
 MCP endpoint: http://localhost:8000/mcp
───────────────────────────────────────────────────

Copy the API key now — it's only shown once.

Verify

curl -s http://localhost:8000/health
# {"ok":true,"version":"0.1.0"}

curl -s http://localhost:8000/schema | jq '.entities[].entity'
# "contact" "company" "deal" "activity" "note" "task" "relationship" ...

curl -s http://localhost:8000/contacts \
  -H "Authorization: Bearer nk_..." | jq
# {"items":[],"next_cursor":null,"count":0}

Add an MCP connector

Claude Desktop

Settings → Connectors → Add custom connector → HTTP MCP Server

  • URL: http://localhost:8000/mcp
  • Headers: Authorization: Bearer nk_<key>

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "nakatomi": {
      "url": "http://localhost:8000/mcp",
      "headers": { "Authorization": "Bearer nk_..." }
    }
  }
}

Claude Code

~/.claude/mcp_servers.json:

{
  "mcpServers": {
    "nakatomi": {
      "type": "http",
      "url": "http://localhost:8000/mcp",
      "headers": { "Authorization": "Bearer nk_..." }
    }
  }
}

First agent interaction

Tell your agent:

"Call describe_schema on Nakatomi so you know what's there, then create a contact named Ada Lovelace with email ada@example.com."

A good agent will:

  1. Call describe_schema → get the contact shape
  2. Call create_contact(first_name="Ada", last_name="Lovelace", email="ada@example.com")
  3. Return the created row's id

You can verify:

curl -s http://localhost:8000/contacts -H "Authorization: Bearer nk_..." | jq

Next steps

  • Read Architecture to understand what's wired to what
  • Read MCP-Tools for the full agent tool surface
  • Turn on the optional Dashboard if you want a read-only audit UI
  • Configure a Memory-Connectors if your workflow needs semantic recall
  • See AgentLab.md for end-to-end agent patterns (24/7 SDR, deal orchestration, swarms)

Stop / reset

docker compose down          # stop but keep data
docker compose down -v       # wipe Postgres + files volume

Clone this wiki locally