GMT
--:--:--
GET
---:--:--:--
CLI
0.1.10
MCP
0.2.2

IndraDB / documentation

MCP server

Give an agent tools to record, search, and compare its reasoning.

Installation

The server runs on Bun and calls the Indra CLI. Install the CLI with cargo install indra_db. Install Bun before you start the server.

bunx -y indra_db_mcp@latest

Or install the server globally:

bun add -g indra_db_mcp

Configuration

Claude Code

Add this import to your project's CLAUDE.md:

@import node_modules/indra_db_mcp/INDRA_INSTRUCTIONS.md

The import points to a file inside your project's node_modules. It loads the instructions only. Register the MCP server in your client as well.

Claude Desktop

Add this server to claude_desktop_config.json:

{
  "mcpServers": {
    "indra": {
      "command": "bunx",
      "args": ["-y", "indra_db_mcp@latest"]
    }
  }
}

OpenCode

Add this configuration to ~/.config/opencode/opencode.json:

{
  "mcp": {
    "indra": {
      "command": ["bunx", "-y", "indra_db_mcp@latest"],
      "type": "local"
    }
  },
  "instructions": ["~/.config/opencode/instructions/indra.md"]
}

Create the instructions directory. Then download the instructions file.

mkdir -p ~/.config/opencode/instructions
curl -o ~/.config/opencode/instructions/indra.md \
  https://raw.githubusercontent.com/moonstripe/indra_db_mcp/main/INDRA_INSTRUCTIONS.md

Generic MCP client

For clients that use the mcpServers format:

{
  "mcpServers": {
    "indra": {
      "command": "bunx",
      "args": ["-y", "indra_db_mcp@latest"],
      "env": { "INDRA_DB_PATH": "./.indra" }
    }
  }
}

Environment variables

VariableUse
INDRA_DB_PATHDatabase file path. Default: ./.indra.
INDRA_API_URLOptional sync endpoint override.

Available tools

indra_remember
Record reasoning, decisions, and insights. Create embeddings for search.
content: string; id?: string
indra_search
Find past reasoning by meaning. Use '*' to list all entries.
query: string; limit?: number
indra_status
Read the current branch and entry count.
No parameters.
indra_branch
Create, switch, or list branches.
action: create|switch|list; name?: string
indra_experiment
Create a branch and switch to it in one step.
name: string
indra_history
Read the history of saved reasoning.
limit?: number
indra_diff
Compare two points in history.
from?: string; to?: string

Example / making a decision

This is an example conversation, not a recorded result.

User: Should I use microservices or a monolith?

indra_search({ query: "architecture decisions" })

Found: “Recommended monolith-first for small teams...”

Agent: Based on your team size and my previous analysis, I recommend starting with a monolith.

indra_remember({ content: "Recommended monolith for this project. Team of 3, need fast iteration.", id: "arch-decision" })

Example / exploring a branch

Create an experiment. Record your reasoning there. Compare it with the main branch before you switch back.

indra_experiment({ name: "try-nosql" })
indra_diff({ from: "main" })
indra_branch({ action: "switch", name: "main" })

Read the branch concepts or the CLI reference.