iai-mcp-memory-server

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

iai-mcp Memory Server

iai-mcp 记忆服务器

Skill by ara.so — MCP Skills collection.
ara.so 开发的Skill — 属于MCP Skills集合。

What It Is

什么是iai-mcp

iai-mcp is a local MCP server that provides long-term memory for AI coding assistants (Claude Code, Codex CLI, etc.). It captures every conversation turn verbatim, stores them encrypted with semantic embeddings, and automatically recalls relevant context at session start. All data stays local with no telemetry.
Key Features:
  • ≥99% verbatim recall at 10k memories
  • <100ms p95 recall latency
  • AES-256-GCM encryption at rest
  • Automatic capture/recall via hooks
  • LanceDB vector storage with bge-small-en-v1.5 embeddings
  • Background consolidation and duplicate merging
iai-mcp是一款本地MCP服务器,可为AI编码助手(Claude Code、Codex CLI等)提供长期记忆功能。它会逐字捕获每一轮对话,将其加密存储并生成语义嵌入,在会话开始时自动召回相关上下文。所有数据均本地存储,无遥测数据传输。
核心特性:
  • 存储10000条记忆时,精确回忆率≥99%
  • p95召回延迟<100毫秒
  • AES-256-GCM加密静态数据
  • 通过钩子实现自动捕获/召回
  • 使用bge-small-en-v1.5嵌入模型的LanceDB向量存储
  • 后台合并重复内容并进行整合

Installation

安装步骤

Prerequisites Check

前置条件检查

bash
undefined
bash
undefined

Verify requirements

Verify requirements

python3 --version # Must be 3.11 or 3.12 node --version # Must be 18+ uname -m # Apple Silicon recommended
undefined
python3 --version # Must be 3.11 or 3.12 node --version # Must be 18+ uname -m # Apple Silicon recommended
undefined

Install the Server

安装服务器

bash
git clone https://github.com/CodeAbra/iai-mcp.git
cd iai-mcp
bash scripts/install.sh
This creates a Python venv, installs dependencies (LanceDB, sentence-transformers, torch, NetworkX, igraph), downloads the embedding model (~130 MB), and registers the daemon with launchd on macOS.
bash
git clone https://github.com/CodeAbra/iai-mcp.git
cd iai-mcp
bash scripts/install.sh
此命令会创建Python虚拟环境,安装依赖(LanceDB、sentence-transformers、torch、NetworkX、igraph),下载嵌入模型(约130 MB),并在macOS上通过launchd注册守护进程。

Add to PATH

添加至PATH

bash
undefined
bash
undefined

Add to ~/.zshrc or ~/.bashrc

Add to ~/.zshrc or ~/.bashrc

export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"

Verify

Verify

iai-mcp --version
undefined
iai-mcp --version
undefined

Install Capture Hooks

安装捕获钩子

For Claude Code:
bash
iai-mcp capture-hooks install
iai-mcp capture-hooks status  # Should show "status: ACTIVE"
For Codex CLI:
bash
iai-mcp capture-hooks install --target codex
For both:
bash
iai-mcp capture-hooks install --target all
This installs three hooks to
~/.claude/hooks/
:
  • iai-mcp-turn-capture.sh
    (UserPromptSubmit) — Captures each turn to session buffer
  • iai-mcp-session-capture.sh
    (Stop) — Processes buffer at session end
  • iai-mcp-session-recall.sh
    (SessionStart) — Injects memory context at start
针对Claude Code:
bash
iai-mcp capture-hooks install
iai-mcp capture-hooks status  # Should show "status: ACTIVE"
针对Codex CLI:
bash
iai-mcp capture-hooks install --target codex
同时安装两者:
bash
iai-mcp capture-hooks install --target all
此操作会在
~/.claude/hooks/
目录下安装三个钩子:
  • iai-mcp-turn-capture.sh
    (UserPromptSubmit)—— 将每一轮对话捕获至会话缓冲区
  • iai-mcp-session-capture.sh
    (Stop)—— 在会话结束时处理缓冲区内容
  • iai-mcp-session-recall.sh
    (SessionStart)—— 在会话开始时注入记忆上下文

Connect MCP Host

连接MCP主机

Claude Code:
bash
cd /path/to/iai-mcp
claude mcp add iai-mcp -- node "$(pwd)/mcp-wrapper/dist/index.js"
Or edit
~/.claude.json
manually:
json
{
  "mcpServers": {
    "iai-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/iai-mcp/mcp-wrapper/dist/index.js"]
    }
  }
}
Codex CLI (
~/.codex/config.toml
):
toml
[mcp_servers.iai-mcp]
command = "node"
args = ["/absolute/path/to/iai-mcp/mcp-wrapper/dist/index.js"]

[mcp_servers.iai-mcp.env]
IAI_MCP_PYTHON = "/absolute/path/to/iai-mcp/.venv/bin/python"
IAI_MCP_STORE = "/Users/you/.iai-mcp"
TRANSFORMERS_VERBOSITY = "error"
TOKENIZERS_PARALLELISM = "false"
Claude Code:
bash
cd /path/to/iai-mcp
claude mcp add iai-mcp -- node "$(pwd)/mcp-wrapper/dist/index.js"
或手动编辑
~/.claude.json
json
{
  "mcpServers": {
    "iai-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/iai-mcp/mcp-wrapper/dist/index.js"]
    }
  }
}
Codex CLI(
~/.codex/config.toml
):
toml
[mcp_servers.iai-mcp]
command = "node"
args = ["/absolute/path/to/iai-mcp/mcp-wrapper/dist/index.js"]

[mcp_servers.iai-mcp.env]
IAI_MCP_PYTHON = "/absolute/path/to/iai-mcp/.venv/bin/python"
IAI_MCP_STORE = "/Users/you/.iai-mcp"
TRANSFORMERS_VERBOSITY = "error"
TOKENIZERS_PARALLELISM = "false"

Verify Installation

验证安装

bash
iai-mcp doctor  # Should show 14/14 PASS or 13/14 during sleep cycle
iai-mcp daemon status
bash
iai-mcp doctor  # Should show 14/14 PASS or 13/14 during sleep cycle
iai-mcp daemon status

Check logs after first session

Check logs after first session

tail ~/.iai-mcp/logs/capture-$(date -u +%Y-%m-%d).log
tail ~/.iai-mcp/logs/capture-$(date -u +%Y-%m-%d).log

Look for "rc=0" indicating successful capture

Look for "rc=0" indicating successful capture

undefined
undefined

Key Commands

核心命令

Daemon Management

守护进程管理

bash
undefined
bash
undefined

Start daemon (usually auto-starts via launchd)

Start daemon (usually auto-starts via launchd)

iai-mcp daemon start
iai-mcp daemon start

Check status

Check status

iai-mcp daemon status
iai-mcp daemon status

Stop daemon

Stop daemon

iai-mcp daemon stop
iai-mcp daemon stop

Restart daemon

Restart daemon

iai-mcp daemon restart
iai-mcp daemon restart

View daemon logs

View daemon logs

tail -f ~/.iai-mcp/logs/daemon.log
undefined
tail -f ~/.iai-mcp/logs/daemon.log
undefined

Capture Hooks

捕获钩子

bash
undefined
bash
undefined

Install hooks

Install hooks

iai-mcp capture-hooks install [--target {claude|codex|all}]
iai-mcp capture-hooks install [--target {claude|codex|all}]

Check hook status

Check hook status

iai-mcp capture-hooks status
iai-mcp capture-hooks status

Uninstall hooks

Uninstall hooks

iai-mcp capture-hooks uninstall
iai-mcp capture-hooks uninstall

Manual transcript capture (fallback)

Manual transcript capture (fallback)

iai-mcp capture-transcript --no-spawn
undefined
iai-mcp capture-transcript --no-spawn
undefined

Memory Operations

记忆操作

bash
undefined
bash
undefined

Trigger session start (usually called by hook)

Trigger session start (usually called by hook)

iai-mcp session-start
iai-mcp session-start

Query memory directly

Query memory directly

iai-mcp query "what did we discuss about error handling?"
iai-mcp query "what did we discuss about error handling?"

View recent memories

View recent memories

iai-mcp list --limit 20
iai-mcp list --limit 20

Export memories

Export memories

iai-mcp export --output memories.json
iai-mcp export --output memories.json

Clear all memories (irreversible)

Clear all memories (irreversible)

iai-mcp clear --confirm
undefined
iai-mcp clear --confirm
undefined

Diagnostics

诊断工具

bash
undefined
bash
undefined

Full health check (14 tests)

Full health check (14 tests)

iai-mcp doctor
iai-mcp doctor

Check specific components

Check specific components

iai-mcp doctor --check daemon iai-mcp doctor --check store iai-mcp doctor --check crypto
iai-mcp doctor --check daemon iai-mcp doctor --check store iai-mcp doctor --check crypto

View statistics

View statistics

iai-mcp stats
iai-mcp stats

Check embedding model

Check embedding model

iai-mcp info --embeddings
undefined
iai-mcp info --embeddings
undefined

Migrations

迁移操作

bash
undefined
bash
undefined

Re-embed store with different model

Re-embed store with different model

iai-mcp migrate reembed --model bge-m3
iai-mcp migrate reembed --model bge-m3

Rebuild graph indices

Rebuild graph indices

iai-mcp migrate rebuild-graph
iai-mcp migrate rebuild-graph

Compact database

Compact database

iai-mcp migrate compact
undefined
iai-mcp migrate compact
undefined

Configuration

配置

Environment Variables

环境变量

bash
undefined
bash
undefined

Data directory (default: ~/.iai-mcp/)

Data directory (default: ~/.iai-mcp/)

export IAI_MCP_STORE="/custom/path/to/store"
export IAI_MCP_STORE="/custom/path/to/store"

Embedding model (default: bge-small-en-v1.5)

Embedding model (default: bge-small-en-v1.5)

export IAI_MCP_EMBED_MODEL="bge-m3" # For multilingual support
export IAI_MCP_EMBED_MODEL="bge-m3" # 用于多语言支持

Daemon socket path (advanced)

Daemon socket path (advanced)

export IAI_MCP_SOCKET="/tmp/iai-mcp.sock"
export IAI_MCP_SOCKET="/tmp/iai-mcp.sock"

Log level

Log level

export IAI_MCP_LOG_LEVEL="DEBUG" # DEBUG, INFO, WARN, ERROR
undefined
export IAI_MCP_LOG_LEVEL="DEBUG" # DEBUG, INFO, WARN, ERROR
undefined

Config File (
~/.iai-mcp/config.json
)

配置文件(
~/.iai-mcp/config.json

json
{
  "embedding": {
    "model": "bge-small-en-v1.5",
    "batch_size": 32,
    "normalize": true
  },
  "recall": {
    "max_tokens": 3000,
    "cold_max_tokens": 8000,
    "min_similarity": 0.3
  },
  "consolidation": {
    "enabled": true,
    "idle_delay_seconds": 300,
    "cluster_threshold": 0.7,
    "decay_rate": 0.95
  },
  "encryption": {
    "enabled": true,
    "algorithm": "aes-256-gcm"
  },
  "insights": {
    "enabled": false,
    "api_key_env": "ANTHROPIC_API_KEY"
  }
}
json
{
  "embedding": {
    "model": "bge-small-en-v1.5",
    "batch_size": 32,
    "normalize": true
  },
  "recall": {
    "max_tokens": 3000,
    "cold_max_tokens": 8000,
    "min_similarity": 0.3
  },
  "consolidation": {
    "enabled": true,
    "idle_delay_seconds": 300,
    "cluster_threshold": 0.7,
    "decay_rate": 0.95
  },
  "encryption": {
    "enabled": true,
    "algorithm": "aes-256-gcm"
  },
  "insights": {
    "enabled": false,
    "api_key_env": "ANTHROPIC_API_KEY"
  }
}

Real Usage Patterns

实际使用场景

Pattern 1: Basic Setup for Claude Code

场景1:Claude Code基础配置

bash
undefined
bash
undefined

Clone and install

Clone and install

git clone https://github.com/CodeAbra/iai-mcp.git cd iai-mcp bash scripts/install.sh
git clone https://github.com/CodeAbra/iai-mcp.git cd iai-mcp bash scripts/install.sh

Add to PATH

Add to PATH

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc source ~/.zshrc

Install hooks

Install hooks

iai-mcp capture-hooks install
iai-mcp capture-hooks install

Connect to Claude Code

Connect to Claude Code

claude mcp add iai-mcp -- node "$(pwd)/mcp-wrapper/dist/index.js"
claude mcp add iai-mcp -- node "$(pwd)/mcp-wrapper/dist/index.js"

Verify

Verify

iai-mcp doctor
undefined
iai-mcp doctor
undefined

Pattern 2: Multilingual Setup

场景2:多语言配置

bash
undefined
bash
undefined

Set multilingual model

设置多语言模型

export IAI_MCP_EMBED_MODEL="bge-m3"
export IAI_MCP_EMBED_MODEL="bge-m3"

Install with custom model

使用自定义模型安装

bash scripts/install.sh
bash scripts/install.sh

Verify model loaded

验证模型已加载

iai-mcp info --embeddings
iai-mcp info --embeddings

Should show: Model: bge-m3

应显示: Model: bge-m3

undefined
undefined

Pattern 3: Manual Memory Query

场景3:手动查询记忆

python
undefined
python
undefined

Not typical usage (hooks handle this), but for debugging:

非典型用法(通常由钩子处理),用于调试:

import subprocess import json
def query_memory(text: str) -> dict: """Query iai-mcp memory directly.""" result = subprocess.run( ["iai-mcp", "query", text, "--json"], capture_output=True, text=True ) return json.loads(result.stdout) if result.returncode == 0 else {}
import subprocess import json
def query_memory(text: str) -> dict: """直接查询iai-mcp记忆。""" result = subprocess.run( ["iai-mcp", "query", text, "--json"], capture_output=True, text=True ) return json.loads(result.stdout) if result.returncode == 0 else {}

Example

示例

memories = query_memory("error handling patterns") for mem in memories.get("results", []): print(f"[{mem['timestamp']}] {mem['content'][:100]}...")
undefined
memories = query_memory("error handling patterns") for mem in memories.get("results", []): print(f"[{mem['timestamp']}] {mem['content'][:100]}...")
undefined

Pattern 4: Custom Hook Integration

场景4:自定义钩子集成

bash
#!/usr/bin/env bash
bash
#!/usr/bin/env bash

Custom post-session hook: ~/.claude/hooks/my-custom-capture.sh

自定义会话后钩子: ~/.claude/hooks/my-custom-capture.sh

set -euo pipefail
SESSION_ID="$1" TRANSCRIPT_PATH="$2"
set -euo pipefail
SESSION_ID="$1" TRANSCRIPT_PATH="$2"

Let iai-mcp process the transcript

让iai-mcp处理对话记录

iai-mcp capture-transcript --session-id "$SESSION_ID" --path "$TRANSCRIPT_PATH"
iai-mcp capture-transcript --session-id "$SESSION_ID" --path "$TRANSCRIPT_PATH"

Custom logic: export to external system

自定义逻辑: 导出至外部系统

if [ -f "$HOME/.iai-mcp/exports/latest.json" ]; then curl -X POST https://my-backup.example.com/sync
-H "Authorization: Bearer $MY_BACKUP_TOKEN"
--data-binary "@$HOME/.iai-mcp/exports/latest.json" fi
undefined
if [ -f "$HOME/.iai-mcp/exports/latest.json" ]; then curl -X POST https://my-backup.example.com/sync
-H "Authorization: Bearer $MY_BACKUP_TOKEN"
--data-binary "@$HOME/.iai-mcp/exports/latest.json" fi
undefined

Pattern 5: Programmatic Memory Access

场景5:程序化访问记忆

python
undefined
python
undefined

Advanced: Direct LanceDB access (not recommended for normal use)

进阶用法: 直接访问LanceDB(不推荐常规使用)

import lancedb import os from pathlib import Path
store_path = Path.home() / ".iai-mcp" db = lancedb.connect(str(store_path / "lance"))
import lancedb import os from pathlib import Path
store_path = Path.home() / ".iai-mcp" db = lancedb.connect(str(store_path / "lance"))

Query episodic memories

查询情景记忆

table = db.open_table("records") results = table.search([0.1] * 384) \ # Replace with actual embedding .limit(10)
.to_pandas()
print(results[["timestamp", "content", "session_id"]])
undefined
table = db.open_table("records") results = table.search([0.1] * 384) \ # 替换为实际嵌入向量 .limit(10)
.to_pandas()
print(results[["timestamp", "content", "session_id"]])
undefined

Benchmarks

基准测试

Run the included benchmark suite to verify performance on your hardware:
bash
cd /path/to/iai-mcp
运行内置的基准测试套件,验证你的硬件性能:
bash
cd /path/to/iai-mcp

Verbatim recall accuracy

精确回忆准确率

python -m bench.verbatim
python -m bench.verbatim

Expected: >=99% byte-exact recall at N=10k

预期: N=10k时字节级精确召回率≥99%

Recall latency

召回延迟

python -m bench.neural_map
python -m bench.neural_map

Expected: p95 <100ms

预期: p95 <100ms

Memory footprint

内存占用

python -m bench.memory_footprint
python -m bench.memory_footprint

Expected: ~150-300 MB steady state

预期: 稳定状态约150-300 MB

Session-start token cost

会话启动Token消耗

python -m bench.tokens
python -m bench.tokens

Expected: <=3000 tokens warm, <=8000 cold

预期: 热缓存≤3000 Token,冷缓存≤8000 Token

Full session cost

完整会话消耗

python -m bench.total_session_cost
python -m bench.total_session_cost

Longitudinal trajectory (30 sessions)

长期轨迹(30个会话)

python -m bench.trajectory
python -m bench.trajectory

Contradiction detection

矛盾检测

python -m bench.contradiction_longitudinal
python -m bench.contradiction_longitudinal

LongMemEval-S blind run (no tuning)

LongMemEval-S盲测(无调优)

python -m bench.longmemeval_blind
undefined
python -m bench.longmemeval_blind
undefined

Troubleshooting

故障排除

Daemon Won't Start

守护进程无法启动

bash
undefined
bash
undefined

Check for orphan processes

检查孤儿进程

ps aux | grep iai-mcp
ps aux | grep iai-mcp

Kill orphans

杀死孤儿进程

killall -9 iai-mcp-daemon
killall -9 iai-mcp-daemon

Remove stale socket

删除过期套接字

rm -f ~/.iai-mcp/daemon.sock
rm -f ~/.iai-mcp/daemon.sock

Check logs

查看日志

tail -n 100 ~/.iai-mcp/logs/daemon.log
tail -n 100 ~/.iai-mcp/logs/daemon.log

Restart

重启

iai-mcp daemon restart
undefined
iai-mcp daemon restart
undefined

Hooks Not Capturing

钩子未捕获内容

bash
undefined
bash
undefined

Verify hook installation

验证钩子安装状态

iai-mcp capture-hooks status
iai-mcp capture-hooks status

Check hook permissions

检查钩子权限

ls -la ~/.claude/hooks/iai-mcp-*.sh
ls -la ~/.claude/hooks/iai-mcp-*.sh

Should be -rwxr-xr-x

权限应为 -rwxr-xr-x

Test hook manually

手动测试钩子

~/.claude/hooks/iai-mcp-turn-capture.sh "test-session-id" "user" "Test prompt"
~/.claude/hooks/iai-mcp-turn-capture.sh "test-session-id" "user" "Test prompt"

Check buffer

检查缓冲区

cat ~/.iai-mcp/session-buffers/test-session-id.jsonl
undefined
cat ~/.iai-mcp/session-buffers/test-session-id.jsonl
undefined

No Memory Recalled at Session Start

会话开始时未召回记忆

bash
undefined
bash
undefined

Check if store is empty

检查存储是否为空

iai-mcp stats
iai-mcp stats

Should show total_memories > 0

应显示total_memories > 0

Test recall manually

手动测试召回

iai-mcp session-start --debug
iai-mcp session-start --debug

Check recall hook logs

查看召回钩子日志

tail ~/.iai-mcp/logs/recall-$(date -u +%Y-%m-%d).log
tail ~/.iai-mcp/logs/recall-$(date -u +%Y-%m-%d).log

Verify daemon is running

验证守护进程是否运行

iai-mcp daemon status
undefined
iai-mcp daemon status
undefined

Encryption Key Lost

加密密钥丢失

bash
undefined
bash
undefined

Check key exists

检查密钥是否存在

ls -la ~/.iai-mcp/.key
ls -la ~/.iai-mcp/.key

Should be -rw------- (600)

权限应为 -rw------- (600)

If lost, data is unrecoverable

若密钥丢失,数据无法恢复

Backup key location (if you made one):

备份密钥位置(如果已备份):

cat ~/.iai-mcp/.key.backup
cat ~/.iai-mcp/.key.backup

Start fresh (destroys all memories)

重新开始(销毁所有记忆)

iai-mcp clear --confirm
iai-mcp clear --confirm

New key generated on next capture

下次捕获时会生成新密钥

undefined
undefined

High Memory Usage

内存占用过高

bash
undefined
bash
undefined

Check current footprint

检查当前内存占用

iai-mcp stats --memory
iai-mcp stats --memory

Compact database

压缩数据库

iai-mcp migrate compact
iai-mcp migrate compact

Reduce embedding batch size

减小嵌入批量大小

export IAI_MCP_EMBED_BATCH=16 # Default 32
export IAI_MCP_EMBED_BATCH=16 # 默认32

Restart daemon

重启守护进程

iai-mcp daemon restart
undefined
iai-mcp daemon restart
undefined

Slow Recall

召回速度缓慢

bash
undefined
bash
undefined

Check store size

检查存储大小

du -sh ~/.iai-mcp/lance/
du -sh ~/.iai-mcp/lance/

Rebuild indices

重建索引

iai-mcp migrate rebuild-graph
iai-mcp migrate rebuild-graph

Check embedding model is cached

检查嵌入模型是否已缓存

ls -lh ~/.cache/huggingface/hub/
ls -lh ~/.cache/huggingface/hub/

Should see models--BAAI--bge-small-en-v1.5

应看到models--BAAI--bge-small-en-v1.5

Profile a query

分析查询耗时

time iai-mcp query "test query" --debug
undefined
time iai-mcp query "test query" --debug
undefined

Hook Timeout Errors

钩子超时错误

bash
undefined
bash
undefined

Increase hook timeout (Claude Code settings.json)

增加钩子超时时间(Claude Code settings.json)

Edit: ~/.claude/settings.json

编辑: ~/.claude/settings.json

{ "hooks": { "timeouts": { "UserPromptSubmit": 10000, # Default 5000ms "Stop": 60000, # Default 35000ms "SessionStart": 45000 # Default 30000ms } } }
undefined
{ "hooks": { "timeouts": { "UserPromptSubmit": 10000, # 默认5000ms "Stop": 60000, # 默认35000ms "SessionStart": 45000 # 默认30000ms } } }
undefined

Doctor Check Failures

健康检查失败

bash
undefined
bash
undefined

Run with verbose output

运行详细输出

iai-mcp doctor --verbose
iai-mcp doctor --verbose

Fix common issues:

修复常见问题:

Check (a) Daemon alive

检查(a)守护进程是否存活

iai-mcp daemon start
iai-mcp daemon start

Check (b) Socket fresh (may fail during consolidation - normal)

检查(b)套接字是否正常(整合期间可能失败,属于正常现象)

Wait 30s and retry

等待30秒后重试

Check (h) Crypto file state

检查(h)加密文件状态

chmod 600 ~/.iai-mcp/.key
chmod 600 ~/.iai-mcp/.key

Check (i) Lance versions piling up

检查(i)Lance版本堆积

iai-mcp migrate compact
iai-mcp migrate compact

Check (k) Lifecycle history

检查(k)生命周期历史

rm ~/.iai-mcp/.daemon-state.json iai-mcp daemon restart
undefined
rm ~/.iai-mcp/.daemon-state.json iai-mcp daemon restart
undefined

Migration to New Machine

迁移至新机器

bash
undefined
bash
undefined

On old machine: backup store and key

在旧机器上: 备份存储和密钥

tar czf iai-mcp-backup.tar.gz ~/.iai-mcp/
tar czf iai-mcp-backup.tar.gz ~/.iai-mcp/

On new machine: install iai-mcp

在新机器上: 安装iai-mcp

git clone https://github.com/CodeAbra/iai-mcp.git cd iai-mcp bash scripts/install.sh
git clone https://github.com/CodeAbra/iai-mcp.git cd iai-mcp bash scripts/install.sh

Restore backup

恢复备份

tar xzf iai-mcp-backup.tar.gz -C ~/
tar xzf iai-mcp-backup.tar.gz -C ~/

Verify key permissions

验证密钥权限

chmod 600 ~/.iai-mcp/.key
chmod 600 ~/.iai-mcp/.key

Restart daemon

重启守护进程

iai-mcp daemon restart
iai-mcp daemon restart

Verify

验证

iai-mcp doctor iai-mcp stats
undefined
iai-mcp doctor iai-mcp stats
undefined

Advanced: Custom Embedding Models

进阶:自定义嵌入模型

bash
undefined
bash
undefined

List available models

列出可用模型

huggingface-cli scan-cache
huggingface-cli scan-cache

Download custom model

下载自定义模型

huggingface-cli download BAAI/bge-large-en-v1.5
huggingface-cli download BAAI/bge-large-en-v1.5

Configure

配置

export IAI_MCP_EMBED_MODEL="bge-large-en-v1.5"
export IAI_MCP_EMBED_MODEL="bge-large-en-v1.5"

Re-embed existing store

重新嵌入现有存储

iai-mcp migrate reembed --model bge-large-en-v1.5 --confirm
iai-mcp migrate reembed --model bge-large-en-v1.5 --confirm

Verify

验证

iai-mcp info --embeddings
undefined
iai-mcp info --embeddings
undefined

Security Notes

安全说明

  • All memories encrypted with AES-256-GCM at rest
  • Encryption key:
    ~/.iai-mcp/.key
    (mode 0600)
  • Backup the key — no key recovery possible
  • No network calls except optional Anthropic API for insights (disabled by default)
  • No telemetry, no analytics, fully local
  • Socket: Unix domain socket (no network exposure)
bash
undefined
  • 所有记忆静态存储时采用AES-256-GCM加密
  • 加密密钥:
    ~/.iai-mcp/.key
    (权限模式0600)
  • 请备份密钥 — 密钥丢失无法恢复
  • 仅在启用洞察功能时会调用Anthropic API(默认禁用),无其他网络请求
  • 无遥测数据、无分析,完全本地化
  • 采用Unix域套接字(无网络暴露)
bash
undefined

Backup encryption key

备份加密密钥

cp ~/.iai-mcp/.key ~/secure-backup/.iai-mcp-key.backup chmod 400 ~/secure-backup/.iai-mcp-key.backup
undefined
cp ~/.iai-mcp/.key ~/secure-backup/.iai-mcp-key.backup chmod 400 ~/secure-backup/.iai-mcp-key.backup
undefined

Notes

注意事项

  • Platform: macOS (Apple Silicon tested). Linux/Windows support planned.
  • Python: 3.11 or 3.12 required (3.13 may have torch compatibility issues).
  • Disk: ~500 MB for fresh install, grows with memories (~1-2 MB per 1000 turns).
  • Model: Default
    bge-small-en-v1.5
    is ~130 MB.
    bge-m3
    (multilingual) is ~380 MB.
  • Token Cost: Session-start recall adds 1k-3k tokens (warm) or up to 8k (cold cache).
  • Consolidation: Runs every 5 minutes of idle time. Socket briefly unavailable during sleep cycle (normal).
  • 平台支持: macOS(已测试Apple Silicon)。Linux/Windows支持计划中。
  • Python版本: 需要3.11或3.12(3.13可能存在torch兼容性问题)。
  • 磁盘占用: 全新安装约500 MB,随记忆增长(每1000轮对话约1-2 MB)。
  • 模型大小: 默认
    bge-small-en-v1.5
    约130 MB。
    bge-m3
    (多语言)约380 MB。
  • Token消耗: 会话开始时的召回操作会增加1k-3k Token(热缓存)或最多8k Token(冷缓存)。
  • 内容整合: 空闲5分钟后自动运行。睡眠周期内套接字会短暂不可用(属于正常现象)。