iai-mcp-memory-server
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseiai-mcp Memory Server
iai-mcp 记忆服务器
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
undefinedbash
undefinedVerify requirements
Verify requirements
python3 --version # Must be 3.11 or 3.12
node --version # Must be 18+
uname -m # Apple Silicon recommended
undefinedpython3 --version # Must be 3.11 or 3.12
node --version # Must be 18+
uname -m # Apple Silicon recommended
undefinedInstall the Server
安装服务器
bash
git clone https://github.com/CodeAbra/iai-mcp.git
cd iai-mcp
bash scripts/install.shThis 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
undefinedbash
undefinedAdd 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
undefinediai-mcp --version
undefinedInstall 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 codexFor both:
bash
iai-mcp capture-hooks install --target allThis installs three hooks to :
~/.claude/hooks/- (UserPromptSubmit) — Captures each turn to session buffer
iai-mcp-turn-capture.sh - (Stop) — Processes buffer at session end
iai-mcp-session-capture.sh - (SessionStart) — Injects memory context at start
iai-mcp-session-recall.sh
针对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/- (UserPromptSubmit)—— 将每一轮对话捕获至会话缓冲区
iai-mcp-turn-capture.sh - (Stop)—— 在会话结束时处理缓冲区内容
iai-mcp-session-capture.sh - (SessionStart)—— 在会话开始时注入记忆上下文
iai-mcp-session-recall.sh
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 manually:
~/.claude.jsonjson
{
"mcpServers": {
"iai-mcp": {
"command": "node",
"args": ["/absolute/path/to/iai-mcp/mcp-wrapper/dist/index.js"]
}
}
}Codex CLI ():
~/.codex/config.tomltoml
[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.jsonjson
{
"mcpServers": {
"iai-mcp": {
"command": "node",
"args": ["/absolute/path/to/iai-mcp/mcp-wrapper/dist/index.js"]
}
}
}Codex CLI():
~/.codex/config.tomltoml
[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 statusbash
iai-mcp doctor # Should show 14/14 PASS or 13/14 during sleep cycle
iai-mcp daemon statusCheck 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
undefinedundefinedKey Commands
核心命令
Daemon Management
守护进程管理
bash
undefinedbash
undefinedStart 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
undefinedtail -f ~/.iai-mcp/logs/daemon.log
undefinedCapture Hooks
捕获钩子
bash
undefinedbash
undefinedInstall 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
undefinediai-mcp capture-transcript --no-spawn
undefinedMemory Operations
记忆操作
bash
undefinedbash
undefinedTrigger 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
undefinediai-mcp clear --confirm
undefinedDiagnostics
诊断工具
bash
undefinedbash
undefinedFull 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
undefinediai-mcp info --embeddings
undefinedMigrations
迁移操作
bash
undefinedbash
undefinedRe-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
undefinediai-mcp migrate compact
undefinedConfiguration
配置
Environment Variables
环境变量
bash
undefinedbash
undefinedData 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
undefinedexport IAI_MCP_LOG_LEVEL="DEBUG" # DEBUG, INFO, WARN, ERROR
undefinedConfig File (~/.iai-mcp/config.json
)
~/.iai-mcp/config.json配置文件(~/.iai-mcp/config.json
)
~/.iai-mcp/config.jsonjson
{
"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
undefinedbash
undefinedClone 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
undefinediai-mcp doctor
undefinedPattern 2: Multilingual Setup
场景2:多语言配置
bash
undefinedbash
undefinedSet 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
undefinedundefinedPattern 3: Manual Memory Query
场景3:手动查询记忆
python
undefinedpython
undefinedNot 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]}...")
undefinedmemories = query_memory("error handling patterns")
for mem in memories.get("results", []):
print(f"[{mem['timestamp']}] {mem['content'][:100]}...")
undefinedPattern 4: Custom Hook Integration
场景4:自定义钩子集成
bash
#!/usr/bin/env bashbash
#!/usr/bin/env bashCustom 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
-H "Authorization: Bearer $MY_BACKUP_TOKEN"
--data-binary "@$HOME/.iai-mcp/exports/latest.json" fi
undefinedif [ -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
-H "Authorization: Bearer $MY_BACKUP_TOKEN"
--data-binary "@$HOME/.iai-mcp/exports/latest.json" fi
undefinedPattern 5: Programmatic Memory Access
场景5:程序化访问记忆
python
undefinedpython
undefinedAdvanced: 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()
.to_pandas()
print(results[["timestamp", "content", "session_id"]])
undefinedtable = db.open_table("records")
results = table.search([0.1] * 384) \ # 替换为实际嵌入向量
.limit(10)
.to_pandas()
.to_pandas()
print(results[["timestamp", "content", "session_id"]])
undefinedBenchmarks
基准测试
Run the included benchmark suite to verify performance on your hardware:
bash
cd /path/to/iai-mcp运行内置的基准测试套件,验证你的硬件性能:
bash
cd /path/to/iai-mcpVerbatim 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
undefinedpython -m bench.longmemeval_blind
undefinedTroubleshooting
故障排除
Daemon Won't Start
守护进程无法启动
bash
undefinedbash
undefinedCheck 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
undefinediai-mcp daemon restart
undefinedHooks Not Capturing
钩子未捕获内容
bash
undefinedbash
undefinedVerify 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
undefinedcat ~/.iai-mcp/session-buffers/test-session-id.jsonl
undefinedNo Memory Recalled at Session Start
会话开始时未召回记忆
bash
undefinedbash
undefinedCheck 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
undefinediai-mcp daemon status
undefinedEncryption Key Lost
加密密钥丢失
bash
undefinedbash
undefinedCheck 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
下次捕获时会生成新密钥
undefinedundefinedHigh Memory Usage
内存占用过高
bash
undefinedbash
undefinedCheck 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
undefinediai-mcp daemon restart
undefinedSlow Recall
召回速度缓慢
bash
undefinedbash
undefinedCheck 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
undefinedtime iai-mcp query "test query" --debug
undefinedHook Timeout Errors
钩子超时错误
bash
undefinedbash
undefinedIncrease 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
}
}
}
undefinedDoctor Check Failures
健康检查失败
bash
undefinedbash
undefinedRun 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
undefinedrm ~/.iai-mcp/.daemon-state.json
iai-mcp daemon restart
undefinedMigration to New Machine
迁移至新机器
bash
undefinedbash
undefinedOn 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
undefinediai-mcp doctor
iai-mcp stats
undefinedAdvanced: Custom Embedding Models
进阶:自定义嵌入模型
bash
undefinedbash
undefinedList 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
undefinediai-mcp info --embeddings
undefinedSecurity Notes
安全说明
- All memories encrypted with AES-256-GCM at rest
- Encryption key: (mode 0600)
~/.iai-mcp/.key - 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加密
- 加密密钥:(权限模式0600)
~/.iai-mcp/.key - 请备份密钥 — 密钥丢失无法恢复
- 仅在启用洞察功能时会调用Anthropic API(默认禁用),无其他网络请求
- 无遥测数据、无分析,完全本地化
- 采用Unix域套接字(无网络暴露)
bash
undefinedBackup encryption key
备份加密密钥
cp ~/.iai-mcp/.key ~/secure-backup/.iai-mcp-key.backup
chmod 400 ~/secure-backup/.iai-mcp-key.backup
undefinedcp ~/.iai-mcp/.key ~/secure-backup/.iai-mcp-key.backup
chmod 400 ~/secure-backup/.iai-mcp-key.backup
undefinedNotes
注意事项
- 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 is ~130 MB.
bge-small-en-v1.5(multilingual) is ~380 MB.bge-m3 - 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)。
- 模型大小: 默认约130 MB。
bge-small-en-v1.5(多语言)约380 MB。bge-m3 - Token消耗: 会话开始时的召回操作会增加1k-3k Token(热缓存)或最多8k Token(冷缓存)。
- 内容整合: 空闲5分钟后自动运行。睡眠周期内套接字会短暂不可用(属于正常现象)。