kebo mcp
⚠️ 进行中 --该项目正在积极开发中,尚未准备好投入生产使用。API、工具签名和数据库模式可能会更改,恕不另行通知。
MCP(模型上下文协议)服务器,有助于 Keyhole软件 开发人员从过去的客户参与中挖掘出模式,而不会暴露任何客户身份。使用它来指导博客文章、开源项目和投资组合决策。
它做什么
三个MCP工具,全部在本地运行,无需云成本:
| 工具 | 说明 |
|---|---|
fetch_drive_documents | 搜索谷歌云端硬盘,通过清单选择文档,编辑个人身份信息,存储和自动嵌入 |
embed_document | (重新)使用本地LLM为存储的文档生成语义嵌入 |
query_insights | 问自然语言问题;恢复聚合模式——行业组合、技术栈频率、预算层次、云提供商 |
嵌入捕获 *什么样的工作* 在未披露的情况下完成(行业、技术、预算级别、云提供商、参与类型) *客户是谁*.
建筑
- 运行时:Node.js 22+,TypeScript
- MCP传输:stdio(在Claude Desktop/Claude Code中作为子进程运行)
- 数据库:PostgreSQL 17+pgvector(Docker)
- 法学硕士(编辑+总结):
Phi-4-mini-instruct通过节点llama cpp--在本地运行 - 对象关系映射:使用pgvector支持的Drizzle ORM
- Google 云端硬盘:服务帐户身份验证(只读)
所有模型推理都在设备上进行。没有OpenAI,没有外部嵌入API,没有每次查询的成本。
先决条件
- Node.js 22+
- Docker(用于PostgreSQL+pgvector)
- 约3.7 GB磁盘用于型号(首次运行时自动下载)
- 具有Drive读取权限的Google Cloud服务帐户(请参阅 谷歌云端硬盘设置)
设置
# 1. Install dependencies
npm install
# 2. Copy and fill in environment config
cp .env.example .env
# Required fields: DATABASE_URL, GOOGLE_SERVICE_ACCOUNT_KEY_PATH
# See .env.example for all options and documentationGoogle服务帐户密钥: 将JSON密钥文件放在里面的任何位置 credentials/ (忽略了)。集 GOOGLE_SERVICE_ACCOUNT_KEY_PATH 指向它,例如。 ./credentials/my-key.json.
# 3. Start PostgreSQL
docker compose up -d
# 4. Run database migrations
npm run db:migrate
# 5. Build
npm run build在第一次运行时,节点llama cpp将把嵌入模型(~1.2 GB)和LLM(~2.5 GB)下载到 ./models/ (忽略了)。这需要几分钟,但只发生一次。
关于db:migrate: 如果命令挂起,您可以直接应用迁移: ``bash psql $DATABASE_URL -c "CREATE EXTENSION IF NOT EXISTS vector;" psql $DATABASE_URL -f src/db/migrations/0000_soft_wendigo.sql``
跑步
# Start the MCP server (stdio transport)
npm start
# Inspect tools interactively in a browser UI
npm run inspect克劳德桌面/克劳德代码集成
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"kebo-mcp": {
"command": "node",
"args": ["/path/to/kebo-mcp/dist/index.js"],
"env": {
"DATABASE_URL": "postgresql://postgres:postgres@localhost:5432/kebo_mcp",
"GOOGLE_SERVICE_ACCOUNT_KEY_PATH": "/path/to/kebo-mcp/credentials/your-key.json",
"GOOGLE_DRIVE_FOLDER_ID": "your_folder_id"
}
}
}
}Claude Desktop不继承您的shell环境,因此必须在配置中显式设置所有必需的环境变量。
谷歌云端硬盘设置
- 创建Google Cloud服务帐户并将其JSON密钥下载到
credentials/(忽略) - 使用服务帐户电子邮件共享包含您的文档的Drive文件夹(查看器访问权限就足够了)
- 集
GOOGLE_SERVICE_ACCOUNT_KEY_PATH在.env到密钥文件的路径 - 可选设置
GOOGLE_DRIVE_FOLDER_ID将搜索限制到特定文件夹
要使用SOW模板感知摘要,请设置 SCOPE_OF_WORK_TEMPLATE_FILE_ID 您的SOW模板的Google Docs文件ID(也可与服务帐户共享)。
测试
# Unit tests only (no Docker, no models needed)
npm run test:unit
# Integration tests (requires Docker for testcontainers)
npm run test:integration
# All tests
npm test集成测试通过testcontainers启动一个真正的pgvector容器。LLM和Drive API调用被嘲笑。
项目状态
- \[x\] 核心MCP服务器脚手架
- \[x\] 谷歌云端硬盘搜索+文档导出
- \[x\] 基于正则表达式+LLM的PII编辑
- \[x\] 结构化匿名摘要生成(本地LLM)
- \[x\] pgvector嵌入(局部模型)
- \[x\] 余弦相似度洞察查询
- \[x\] 通过启发式检查表选择文档
- \[x\] 安全审查——输入验证、错误净化、向量有限保护、LLM输入截断
- \[x\] 67项测试通过(单元+集成)
- \[\]SOW模板感知提取提示(已实现,需要端到端验证)
- \[\]克劳德桌面端到端验证
许可证
待定——将在首次稳定发布前确认。
