Neotoma with Claude

Claude's platform apps (claude.ai on web, the iOS/Android apps, and the desktop app) offer conversation memory and project-scoped files within Anthropic's ecosystem. Neotoma adds structured, deterministic memory that persists across all your tools and sessions.

Looking for Claude Code (the local CLI)? See Neotoma with Claude Code. Building with the Agent SDK or Managed Agents? See Memory infrastructure for Claude agents.

Setup overview

Start with evaluation. Once Neotoma has been evaluated, installed if needed, and activated with your first stored data, reliable Claude usage requires four more steps: connect the MCP server, set tool permissions, create a Project, and add routing instructions. Each step builds on the previous one.

  1. Connect the Neotoma MCP server
  2. Set tool permissions to “Always allow”
  3. Create a Claude Project for Neotoma-backed work
  4. Add project instructions that route queries to Neotoma

Step 1: Connect the Neotoma MCP server

Choose a connection method based on your setup. Claude Desktop uses local stdio; claude.ai uses remote MCP over HTTPS.

Claude Desktop (local stdio)Run Neotoma on the same machine. No API server or tunnel required.
claude.ai (remote MCP)Expose Neotoma over HTTPS via tunnel and connect from claude.ai settings.

After connecting, verify the connector appears in Settings → Connectors and shows a “Connected” state. You should see Neotoma listed with its tools.

Step 2: Set tool permissions

By default Claude may ask for permission before using connector tools, which breaks automatic retrieval. Set all Neotoma tools to always run without prompting:

  1. Open Settings → Connectors
  2. Click Neotoma in the connector list
  3. Under Tool permissions, set the dropdown for Other tools to Always allow

This ensures Claude can call Neotoma tools (retrieve, store, search) without interrupting you for approval each time.

Step 3: Create a Claude Project

Claude Projects let you attach persistent instructions that apply to every chat inside the project. This is the only way to give Claude standing orders on claude.ai without repeating them each conversation.

  1. In the Claude sidebar, click ProjectsCreate project
  2. Name it something like Neotoma workspace (or whatever fits your use case)
  3. Open the project. All new chats started inside it will inherit its instructions
Why a Project? Without a Project, Claude has no persistent instruction surface. You would need to paste routing instructions at the start of every new chat, and Claude may still fall back to its own memory for queries that Neotoma should handle.

Step 4: Add project instructions

Open your project's settings and paste the following into the Custom instructions field. This tells Claude to route all factual retrieval through Neotoma and refuse to answer from internal memory alone.

Code snippet
Copy the exact snippet shown below.
For any request that depends on stored facts, history, lists, counts, records,
timelines, prior work, or "what do you know / show me / list / summarize":

1. Call Neotoma MCP tools before answering.
2. Do not answer from Claude memory or chat history alone.
3. If Neotoma is unavailable or tool call fails, respond:
   "Neotoma retrieval failed: <error>. Please check the connector."
4. If no matching records are found, say so explicitly and stop.
5. Every factual claim must be traceable to Neotoma tool output from this turn.

This is a fail-closed policy: if Neotoma is unreachable, Claude says so instead of guessing from chat history. You can customize the wording, but the key constraints are:

  • Tool-first: Neotoma is called before composing a response
  • No silent fallback: Claude does not substitute its own memory
  • Grounded output: every fact traces to a tool call in the current turn

Verify the setup

Start a new chat inside the project and test with a query like:

Code snippet
Copy the exact snippet shown below.
show me all my posts

Claude should call Neotoma tools before answering. Look for tool-use indicators (e.g. “Ran commands, used Neotoma integration”) in the response. If Claude answers from memory instead, check that:

  • The chat is inside the project (not a standalone conversation)
  • The connector shows "Connected" in Settings → Connectors
  • Tool permissions are set to "Always allow"
  • The project instructions are saved (not just drafted)

What Claude's platform provides

  • Conversation memory (saved memories and chat history that persist across sessions on all plans)
  • Projects (organize chats with scoped documents and custom instructions, 200K context window)
  • Artifacts for generated documents and code
  • MCP server connections via Claude Desktop and claude.ai (remote MCP)
  • The Memory Tool (API beta) for agents built with the Agent SDK, which exposes a client-side /memories file directory for lightweight cross-session state

What the platform doesn't handle

  • Structured entity resolution across conversations and projects
  • Persistent memory that survives session resets and model updates. Claude's memory stores preferences but not structured, schema-bound entities
  • Cross-tool access; data stays inside Claude's ecosystem
  • Deterministic state reconstruction from recorded observations
  • Schema validation or append-only guarantees for the Memory Tool's /memories files. It is a useful scratchpad, but files can be silently overwritten and there is no field-level provenance. See Memory infrastructure for Claude agents for the comparison in detail.

Deterministic guarantees Neotoma provides

  • Structured entities with canonical IDs that persist across all sessions
  • Deterministic state evolution: same observations always produce the same result
  • Full provenance and audit trail for every stored fact
  • Cross-tool continuity: memory is shared with Claude Code, Cursor, Codex, and ChatGPT

Using them together

Keep Claude's memory and projects on. They handle conversational context and preferences; Neotoma handles structured state. Both are active simultaneously with no conflict.

ConcernClaudeNeotoma
Conversation preferencesMemory-
Project-scoped documents & instructionsProjects-
Structured entities (people, tasks, decisions)-Store via MCP
Cross-tool state-Shared memory graph
Versioned history & audit trail-Observation history

Claude documentation

Before and after: Claude with Neotoma

“Continue where we left off yesterday.”

Without Neotoma

Resuming based on thread from two weeks ago.

With Neotoma

Resuming yesterday’s thread on the migration plan. 3 open tasks remaining.

“What did I commit to with Sarah last week?”

Without Neotoma

No commitments found.

With Neotoma

You committed to sending the architecture doc by Friday. Sarah’s email updated Mar 28.

“How much did we spend on cloud hosting last month?”

Without Neotoma

No hosting expenses found.

With Neotoma

$847 across AWS and Vercel, up 12% from February.

After you connect

Once Neotoma is running, try these starter commands in Claude to see cross-session memory in action:

Store a contact

“Remember that Sarah Chen's email is sarah@newstartup.io — she's the CTO at NewStartup.”

Store a task

“I need to send the architecture doc to Sarah by Friday.”

Recall across sessions

“What do I know about Sarah? What did I commit to doing for her?”

Start with evaluation, see the install guide for more options, MCP reference for full setup, CLI reference for terminal usage, and agent instructions for behavioral details.