Mochi Agent MCP Server
英文學習卡片知識圖譜管理系統。透過 MCP 協議提供語義分析、向量搜尋、批量操作等 23 個工具。
架構
src/
├── index.ts # MCP 入口 (23 工具註冊)
├── mochi-client.ts # Mochi REST API 封裝
├── services/
│ ├── vector-service.ts # Chroma 向量索引
│ ├── embedding-service.ts # Gemini embedding
│ └── exclusion-service.ts # 排除名單持久化
└── tools/
├── link-suggestions.ts # 語義相似度分析
├── card-operations.ts # 卡片 CRUD
└── ...
環境配置
export MOCHI_API_KEY="your_mochi_api_key"
export GEMINI_API_KEY="your_gemini_api_key"
export CHROMA_HOST="localhost" # 可選,預設 localhost
export CHROMA_PORT="8000" # 可選,預設 8000
安裝與啟動
# 安裝依賴
npm install
# 編譯
npm run build
# 啟動 Chroma (需要 Docker)
docker run -p 8000:8000 chromadb/chroma
# 在 Claude Code 中配置 MCP
Claude Code MCP 設定 (~/.claude/settings.json):
{
"mcpServers": {
"mochi-agent": {
"command": "node",
"args": ["/path/to/mochi_agent/dist/index.js"],
"env": {
"MOCHI_API_KEY": "...",
"GEMINI_API_KEY": "..."
}
}
}
}
MCP 工具列表
卡片操作
| 工具 | 功能 |
|---|
create_card | 創建卡片(單張/批量) |
get_cards_batch | 批量獲取卡片 |
update_cards | 批量更新卡片 |
move_cards_to_deck | 移動卡片到資料夾 |
delete_cards | 刪除卡片 |
語義分析
| 工具 | 功能 |
|---|
semantic_search_cards | 向量相似度搜尋 |
analyze_semantic_links | 分析卡片語義相似度 |
add_semantic_exclusions | 添加排除配對 |
remove_semantic_exclusions | 移除排除配對 |
list_semantic_exclusions | 列出排除配對 |
維護工具
| 工具 | 功能 |
|---|
sync_vector_index | 同步向量索引 |
find_broken_vector_links | 找出斷鏈 |
find_cards_by_link_count | 找出高連結節點 |
list_english_decks | 列出資料夾 |
create_deck | 創建資料夾 |
語義連結工作流程
1. 分析 ─────────────────────────────────────
analyze_semantic_links(min, max)
→ 取得相似度區間內的卡片配對
2. 決策 ─────────────────────────────────────
✅ 合併 │ 內容高度重複 → 整合後刪除冗餘卡
✅ 關聯 │ 同義/反義/易混/因果 → 建立雙向連結
❌ 排除 │ 表層關聯 → 加入排除名單
3. 執行 ─────────────────────────────────────
get_cards_batch → 讀取原內容
update_cards → 添加 [[ID]] 連結
delete_cards → 刪除合併後的冗餘卡
add_semantic_exclusions → 排除無關配對
4. 維護 ─────────────────────────────────────
find_cards_by_link_count(n) → 找出連結過多的 hub
find_broken_vector_links → 找出斷鏈
規則:每節點 ≤ 3 連結
連結類型標籤
| 類型 | 標籤格式 | 範例 |
|---|
| 同義詞 | **同義:** | demonstrate ↔ manifest |
| 反義詞 | **反義:** | explicit ↔ implicit |
| 易混淆 | **易混:** | mitigate ↔ mediate |
| 詞族 | **詞族:** | competition ↔ competitiveness |
| 搭配 | **搭配:** | boost ↔ boost immunity |
| 因果 | **因果:** | persistence → achieve success |
技術棧
- MCP SDK - Model Context Protocol
- Chroma - 向量資料庫
- Gemini - embedding 模型 (gemini-embedding-001)
- Mochi API - 卡片存儲後端
License
MIT