个人KOI MCP服务器
通过模型上下文协议(MCP)进行个人知识管理。使用语义搜索搜索您的电子邮件、黑曜石保险库和克劳德代码会话。
这有什么作用
| 来源 | 计数 | 特征 |
|---|---|---|
| 电子邮件 | 13400+ | 语义搜索、发件人/日期过滤 |
| 黑曜石保险库 | 您的笔记 | 实体提取、维基链接解析 |
| 克劳德·塞申斯 | 260+ | 搜索过去的对话 |
快速开始
1.先决条件
- 运行在端口8351上的个人KOI API
- 端口8091上的BGE嵌入服务器
- PostgreSQL数据库
personal_koi
此本地堆栈不共享Octo的数据库。它使用自己的KOI后端部署和 personal_koi DB,即使后端来自同一个数据库 koi-processor 生物区域节点使用的代码库家族。
# Start the backend
~/.config/personal-koi/start.sh2.配置克劳德代码
添加 ~/.mcp.json:
{
"mcpServers": {
"personal-koi": {
"command": "node",
"args": ["/Users/darrenzal/projects/personal-koi-mcp/dist/index.js"],
"env": {
"KOI_API_ENDPOINT": "http://localhost:8351",
"KOI_BACKEND_URL": "http://localhost:8351",
"MCP_SERVER_NAME": "personal-koi"
}
}
}
}启用 ~/.claude/settings.local.json:
{
"enabledMcpjsonServers": ["personal-koi"]
}3.重新启动克劳德代码
可用工具
知识搜索
| 工具 | 说明 |
|---|---|
search | 跨电子邮件、vault、会话的语义搜索 |
get_stats | 关于索引内容的统计数据 |
示例:
search(query="hackathon", source="email")
search(query="regen network carbon credits")保险库操作
| 工具 | 说明 |
|---|---|
vault_read_note | 阅读黑曜石笔记 |
vault_write_note | 创建/更新笔记 |
vault_list_notes | 按文件夹列出笔记 |
vault_search_notes | 搜索笔记内容 |
vault_get_entity | 按类型+名称查找实体 |
vault_prep_meeting | 为与会者收集背景信息 |
会话搜索
| 工具 | 说明 |
|---|---|
search_sessions | 搜索Claude Code对话历史记录 |
get_session_stats | 关于索引会话的统计信息 |
search_sessions_by_tool | 使用特定工具查找会话 |
search_sessions_by_files | 查找涉及特定文件的会话 |
KOI联盟共享(P2P+共享)
| 工具 | 说明 |
|---|---|
share_document | 使用丰富模式将vault文档共享到KOI节点别名(root_only, root_plus_required, context_pack) |
shared_with_me | 列出入站共享文档并共享元数据 |
commons_intake | 列出分阶段/批准/拒绝的公地摄入记录 |
commons_intake_decide | 批准/拒绝分阶段的公共资源引入条目(本地管理员身份验证) |
钥匙 share_document args:
recipient--节点别名或节点名称(例如shawn,cowichan)recipient_type—peer(默认)或commonsmode—root_only,root_plus_required,或context_packcontext_depth--遍历深度(1-4)
例子:
share_document({
document_path: "projects/koi-protocol-comparison.md",
recipient: "cowichan",
recipient_type: "commons",
mode: "context_pack",
context_depth: 2
})实体解析
| 工具 | 说明 |
|---|---|
resolve_entity | 在个人知识库中查找或创建实体 |
get_entity_neighborhood | 获取实体关系 |
vault_ingest_extraction | 通过上下文解析摄取实体 |
vault_sync_entities | 将vault实体文件夹同步到后端 |
情境解决方案 (1.5级):
- 通过
context.organizations和context.project为了消除歧义 - 按实体
associated_people/associated_organizations领域 - 名称变体的语音匹配(Sean→ 肖恩)
- 2跳关系路径:Person→ Org → 项目
// Example: Resolve ambiguous name with context
vault_ingest_extraction({
path: "Meetings/My Meeting.md",
entities: [{
name: "Sean Anderson",
type: "Person",
associated_organizations: ["Symbiocene Labs"]
}],
context: {
organizations: ["Symbiocene Labs"],
project: "Gaia AI"
}
})
// Result: Resolves to "Shawn Anderson" @ 93.4% confidence任务管理
| 工具 | 说明 |
|---|---|
task_dashboard | 统计摘要+收件箱预览 |
task_list | 列出带有筛选器的任务(状态、优先级、所有者、截止日期) |
task_add | 创建/追加任务(由taskKey幂等) |
task_update | 修补现有任务上的特定字段 |
动态查询
| 工具 | 说明 |
|---|---|
koi_query | 对知识图执行只读SQL(10个表白名单,仅参数化查询) |
这 koi_query 该工具支持任意SELECT查询 $1,$2 参数化值。深度防御:客户端SELECT/WITH预验证、服务器端表白名单、只读事务、5秒超时、参数化强制。需要 QUERY_ENDPOINT_ENABLED=true 在后端(POST /sql 端点)。
索赔引擎
| 工具 | 说明 |
|---|---|
create_claim | 创建影响索赔(图中注册的实体) |
get_claim | 用相关证据获取索赔 |
search_claims | 按类型、索赔人、验证状态搜索 |
verify_claim | 预先验证:自我报告→ 同行评审→ 已验证→ 壁架锚定 |
link_evidence | 在索赔中附上证据实体 |
extract_claims | AI从文档文本中提取索赔 |
anchor_claim | 锚在Regen Ledger上验证了声明(返回202,等待异步轮询) |
reconcile_claim | 检查待广播的链状态 |
测试:
npm run test:claims # 8-tool MCP smoke test via handleKoiApiTool()建筑
此本地设置是一个3存储库堆栈:
koi-sensors用于数据摄取(email,claude_sessions、保险库/传感器管道)koi-processor用于存储和查询端点http://localhost:8351personal-koi-mcp用于Claude Code使用的MCP工具
这里的后端是生物区域节点使用的相同KOI后端代码库的单独部署。共享的是代码和API契约,而不是活动数据库或运行时实例。
运行手册: docs/LOCAL_STACK_RUNBOOK.md
┌─────────────────────────────────────────────────────────────────┐
│ Personal KOI System │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ ┌────────────────────────┐ │
│ │ personal-koi │ ◀─────────────▶│ Personal KOI API │ │
│ │ MCP Server │ │ (port 8351) │ │
│ └──────────────────┘ └────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ PostgreSQL │ │
│ │ personal_koi DB │ │
│ │ - koi_memories │ │
│ │ - koi_embeddings │ │
│ │ - email_metadata │ │
│ │ - session_chunks │ │
│ └────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Data Ingestion │ │
│ ├──────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ┌──────────────┐ Periodic (30 min) ┌───────────────┐ │ │
│ │ │ Email Sensor │ ──────────────────▶ │ koi_memories │ │ │
│ │ └──────────────┘ └───────────────┘ │ │
│ │ │ │
│ │ ┌──────────────┐ Real-time (fswatch) │ │
│ │ │ File Watcher │ ─────────────────────────────────────▶ │ │
│ │ └──────────────┘ │ │
│ │ │ │
│ │ ┌──────────────┐ On-demand │ │
│ │ │Session Sensor│ ─────────────────────────────────────▶ │ │
│ │ └──────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘电子邮件同步系统
电子邮件通过两种机制保持更新:
定期同步(launchd)
- 每30分钟跑一次
- 从获取新电子邮件
~/Mail/Gmail/(通过mbsync发送邮件目录) - 生成BGE嵌入并存储在PostgreSQL中
# Check status
launchctl list com.personal-koi.email-sensor
# View logs
tail -f ~/projects/RegenAI/koi-sensors/sensors/email/email_sensor.log实时监视器(launchd)
- 监视Maildir以获取新文件
- 新电子邮件到达时立即触发索引
# Check status
launchctl list com.personal-koi.email-watcher手动同步
要手动触发同步,请执行以下操作:
cd ~/projects/RegenAI/koi-sensors/sensors/email
./venv/bin/python email_sensor.py发展
# Install dependencies
npm install
# Build
npm run build
# Run directly
npm start相关项目
- koi处理器 -后端API和处理
- koi传感器 -电子邮件和保险库传感器
- regen-koi-mcp -原始再生网络KOI MCP(这是一个分叉)
与摄政王koi mcp的区别
| 功能 | 再生koi mcp | 个人koi mcp |
|---|---|---|
| 数据 | Regen Network(Discourse、GitHub、Notion) | 个人(电子邮件、保管库、会话) |
| API | https://regen.gaiaai.xyz/api/koi | http://localhost:8351 |
| 嵌入 | OpenAI ada-002(1536昏暗) | BGE(1024昏暗) |
| 认证 | Google OAuth for@regen.network | 无需 |
| Vault工具 | ❌ | ✅ |
| 会话搜索 | ❌ | ✅ |
许可证
麻省理工学院
