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@latestOr install the server globally:
bun add -g indra_db_mcpConfiguration
Claude Code
Add this import to your project's CLAUDE.md:
@import node_modules/indra_db_mcp/INDRA_INSTRUCTIONS.mdThe 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.mdGeneric 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
| Variable | Use |
|---|---|
INDRA_DB_PATH | Database file path. Default: ./.indra. |
INDRA_API_URL | Optional sync endpoint override. |
Available tools
indra_remember- Record reasoning, decisions, and insights. Create embeddings for search.
content: string; id?: stringindra_search- Find past reasoning by meaning. Use '*' to list all entries.
query: string; limit?: numberindra_status- Read the current branch and entry count.
No parameters.indra_branch- Create, switch, or list branches.
action: create|switch|list; name?: stringindra_experiment- Create a branch and switch to it in one step.
name: stringindra_history- Read the history of saved reasoning.
limit?: numberindra_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.