Version: 4.0.0
Last Updated: 2025-10-18
Mimir MCP Server supports two configuration methods:
- Environment Variables (Recommended for Docker) - Set via
.envfile ordocker compose.yml - Config Files -
.mimir/llm-config.jsonfor LLM model selection
Key principle: Feature flags and deployment settings use environment variables for Docker-friendly configuration.
| Variable | Description | Default | Docker Value |
|---|---|---|---|
NEO4J_URI |
Neo4j connection string | bolt://localhost:7687 |
bolt://neo4j:7687 |
NEO4J_USER |
Database username | neo4j |
neo4j |
NEO4J_PASSWORD |
Database password | password |
Set in .env |
| Variable | Description | Default | Docker Value |
|---|---|---|---|
OLLAMA_BASE_URL |
Ollama API endpoint | http://localhost:11434 |
http://ollama:11434 |
| Variable | Description | Default | Notes |
|---|---|---|---|
MIMIR_FEATURE_PM_MODEL_SUGGESTIONS |
PM agent suggests models | false |
Experimental |
MIMIR_FEATURE_VECTOR_EMBEDDINGS |
Enable semantic search | false |
Requires Ollama |
Only used when MIMIR_FEATURE_VECTOR_EMBEDDINGS=true:
| Variable | Description | Default | Notes |
|---|---|---|---|
MIMIR_EMBEDDINGS_ENABLED |
Generate embeddings | false |
Must be true |
MIMIR_EMBEDDINGS_MODEL |
Ollama embedding model | nomic-embed-text |
See Vector Embeddings Guide |
MIMIR_EMBEDDINGS_DIMENSIONS |
Vector dimensions | 768 |
Model-specific |
MIMIR_EMBEDDINGS_CHUNK_SIZE |
Text chunk size | 512 |
Tokens |
MIMIR_EMBEDDINGS_CHUNK_OVERLAP |
Chunk overlap | 50 |
Tokens |
| Variable | Description | Default |
|---|---|---|
HOST_WORKSPACE_ROOT |
Host directory to mount | ~/src |
WORKSPACE_ROOT |
Container mount point | /workspace |
NODE_ENV |
Node environment | production |
PORT |
HTTP server port | 3000 |
| Variable | Description | Default | Notes |
|---|---|---|---|
MIMIR_AUTO_INDEX_DOCS |
Auto-index documentation on startup | true |
Allows semantic search of Mimir docs |
Documentation Auto-Indexing:
By default, Mimir automatically indexes its own documentation (/app/docs) on startup. This enables immediate semantic search of documentation:
# Enable (default)
MIMIR_AUTO_INDEX_DOCS=true
# Disable
MIMIR_AUTO_INDEX_DOCS=falseBenefits:
- ✅ Query documentation via natural language immediately
- ✅ No manual indexing required
- ✅ Documentation is searchable on first startup
Example queries:
- "How do I configure embeddings?"
- "Show me the IDE integration guide"
- "Explain the multi-agent architecture"
File: .mimir/llm-config.json
Used for LLM model selection and provider configuration. Feature flags are now in environment variables.
Example:
{
"defaultProvider": "ollama",
"providers": {
"ollama": {
"baseUrl": "http://localhost:11434",
"defaultModel": "gpt-oss",
"models": {
"gpt-oss": {
"name": "gpt-oss",
"contextWindow": 32768,
"description": "Open-source GPT model",
"recommendedFor": ["pm", "worker", "qc"],
"config": {
"numCtx": 32768,
"temperature": 0.0,
"numPredict": -1
}
}
}
}
}
}Note: baseUrl can be overridden by OLLAMA_BASE_URL environment variable.
| Environment Variable | Description | Default | Example |
|---|---|---|---|
MCP_MEMORY_STORE_PATH |
Path to memory storage file | .mcp-memory-store.json |
~/.mcp-memories.json |
MCP_MEMORY_SAVE_INTERVAL |
Operations before auto-save | 10 |
5 |
MCP_MEMORY_TODO_TTL |
TODO decay time (milliseconds) | 86400000 (24h) |
172800000 (48h) |
MCP_MEMORY_PHASE_TTL |
Phase decay time (milliseconds) | 604800000 (7d) |
1209600000 (14d) |
MCP_MEMORY_PROJECT_TTL |
Project decay time (milliseconds) | -1 (permanent) |
-1 |
Convert to milliseconds:
- 1 hour =
3600000ms - 1 day =
86400000ms - 1 week =
604800000ms - Permanent =
-1
Location: Settings → settings.json
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/Mimir/build/index.js"]
}
}
}{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/Mimir/build/index.js"],
"env": {
"MCP_MEMORY_STORE_PATH": "/Users/you/.mcp-memories/project-memories.json"
}
}
}
}{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/Mimir/build/index.js"],
"env": {
"MCP_MEMORY_SAVE_INTERVAL": "5"
}
}
}
}{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/Mimir/build/index.js"],
"env": {
"MCP_MEMORY_TODO_TTL": "172800000",
"MCP_MEMORY_PHASE_TTL": "1209600000"
}
}
}
}Explanation:
- TODOs: 48 hours (2 days) instead of 24 hours
- Phases: 14 days instead of 7 days
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/Mimir/build/index.js"],
"env": {
"MCP_MEMORY_STORE_PATH": "~/.mcp-project-memories.json",
"MCP_MEMORY_SAVE_INTERVAL": "5",
"MCP_MEMORY_TODO_TTL": "172800000",
"MCP_MEMORY_PHASE_TTL": "1209600000",
"MCP_MEMORY_PROJECT_TTL": "-1"
}
}
}
}Location (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
Location (Windows): %APPDATA%\Claude\claude_desktop_config.json
Location (Linux): ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/Mimir/build/index.js"],
"env": {
"MCP_MEMORY_STORE_PATH": "/Users/you/.claude-memories.json",
"MCP_MEMORY_SAVE_INTERVAL": "10"
}
}
}
}Location: ~/.config/cline/mcp_settings.json (or similar)
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MCP_MEMORY_STORE_PATH": ".cline-memories.json"
}
}
}
}Use case: Different memory for each project
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MCP_MEMORY_STORE_PATH": ".project-memories.json"
}
}
}
}Benefit: Each project has its own isolated memory. Switch projects, switch memory.
Use case: One memory store for all projects
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MCP_MEMORY_STORE_PATH": "~/.mcp-global-memories.json"
}
}
}
}Benefit: AI remembers context across all your projects.
Use case: Year-long project with extended retention
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MCP_MEMORY_TODO_TTL": "604800000",
"MCP_MEMORY_PHASE_TTL": "2592000000",
"MCP_MEMORY_PROJECT_TTL": "-1"
}
}
}
}Configuration:
- TODOs: 7 days (week-long sprints)
- Phases: 30 days (monthly milestones)
- Projects: Permanent
Use case: Quick prototype with aggressive decay
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MCP_MEMORY_TODO_TTL": "14400000",
"MCP_MEMORY_PHASE_TTL": "86400000"
}
}
}
}Configuration:
- TODOs: 4 hours
- Phases: 1 day
Use case: Never lose recent changes
{
"mcpServers": {
"knowledge-graph-todo": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"MCP_MEMORY_SAVE_INTERVAL": "1"
}
}
}
}Configuration: Save after every single write operation
Trade-off: More disk I/O, but zero risk of data loss
When the server starts, it logs the active configuration:
🧠 TODO + Memory System MCP Server v3.0 starting...
⚙️ Configuration:
- Memory store: /Users/you/.mcp-memories.json
- Save interval: every 5 operations
- TODO TTL: 24h
- Phase TTL: 7d
- Project TTL: permanent
Check your server logs to verify your configuration is being applied.
# In your terminal
echo $MCP_MEMORY_STORE_PATH
echo $MCP_MEMORY_SAVE_INTERVAL# Create a test TODO, then check if file exists
ls -la /path/you/configured/.mcp-memories.jsonWatch server logs for [Persistence] Saved memory store messages. Count operations between saves.
# View memory store timestamps
cat .mcp-memory-store.json | jq '.todos[] | {title, created}'
# Wait past TTL, restart server
npm start
# Check if memories decayed
cat .mcp-memory-store.json | jq '.todos[] | {title, created}'Recommended:
{
"env": {
"MCP_MEMORY_STORE_PATH": "~/.mcp-memories.json",
"MCP_MEMORY_SAVE_INTERVAL": "10"
}
}Why: Shared memory across projects, standard auto-save.
Recommended:
{
"env": {
"MCP_MEMORY_STORE_PATH": "/shared/project/.team-memories.json",
"MCP_MEMORY_SAVE_INTERVAL": "5"
}
}Why: Team-shared memory (if network filesystem), faster saves.
Note: Requires careful concurrency management if multiple users.
Recommended:
{
"env": {
"MCP_MEMORY_STORE_PATH": "/tmp/ci-memories-${BUILD_ID}.json",
"MCP_MEMORY_TODO_TTL": "3600000"
}
}Why: Isolated per-build, aggressive decay (1h).
Symptoms: Server logs show default values
Solution:
- Check JSON syntax in settings file
- Restart VSCode/editor completely
- Verify environment variables in shell:
node -e "console.log(process.env.MCP_MEMORY_STORE_PATH)"
Symptoms: [Persistence] No existing memory store found
Solution:
- This is normal on first run
- File will be created automatically
- Check path is writable:
touch /your/configured/path.json
Symptoms: [Persistence] Health: Memory persistence is not working: EACCES
Solution:
# Check permissions
ls -l /path/to/memory/store.json
# Fix permissions
chmod 644 /path/to/memory/store.json
# Fix directory permissions
chmod 755 /path/to/memory/Symptoms: Expected file doesn't exist, but memories persist
Solution:
# Find where it actually is
find ~ -name ".mcp-memory-store.json"
# Check server logs for actual path
# Look for: "📁 Memory store: /actual/path"Memory stores may contain:
- File paths
- Project structure
- Error messages
- Decisions and notes
Recommendations:
- Don't commit memory stores: Already in
.gitignore - Use project-specific stores: Avoid shared stores with sensitive projects
- Encrypt if needed:
# Backup encrypted tar czf - .mcp-memory-store.json | openssl enc -aes-256-cbc > memories.tar.gz.enc
If sharing memory stores:
- Use read-only access for viewers
- Implement concurrency control (not built-in)
- Consider separate stores per developer
- PERSISTENCE.md - Detailed persistence guide
- MEMORY_GUIDE.md - Memory system usage
- README.md - General overview
Default Values:
MCP_MEMORY_STORE_PATH = .mcp-memory-store.json
MCP_MEMORY_SAVE_INTERVAL = 10
MCP_MEMORY_TODO_TTL = 86400000 (24 hours)
MCP_MEMORY_PHASE_TTL = 604800000 (7 days)
MCP_MEMORY_PROJECT_TTL = -1 (permanent)
VSCode Config Location:
- macOS/Linux:
~/.vscode/settings.jsonor workspace settings - Windows:
%APPDATA%\Code\User\settings.json
Most Common Custom Config:
{
"env": {
"MCP_MEMORY_STORE_PATH": "~/.mcp-memories.json"
}
}Last Updated: 2025-10-13
Questions: See README.md for support contacts