Personal Knowledge MCP Server
Indexes local and enterprise documents to provide a unified personal knowledge base for AI clients via the Model Context Protocol. It supports full-text search across various file formats and integrates with platforms like Feishu and WeChat Work.
README
Personal Knowledge MCP Server
个人知识库 MCP 服务器 - 将本地文档、飞书、企业微信文档统一索引,通过 MCP 协议提供给 AI 客户端(如 Cherry Studio)访问。
✨ 功能特性
Phase 1 (已实现)
- ✅ 本地文档索引(支持 TXT, MD, PDF, DOCX, PPTX)
- ✅ 全文搜索(SQLite FTS5)
- ✅ MCP 协议接口
- ✅ 文档元数据管理
Phase 2-3 (规划中)
- 🚧 飞书文档同步
- 🚧 企业微信文档同步
- 🚧 语义搜索(向量化)
🚀 快速开始
1. 安装依赖
cd personal-knowledge-mcp
npm install
2. 配置
编辑 config.json,设置你想要索引的文档路径:
{
"local": {
"enabled": true,
"watch_paths": [
"~/Documents",
"~/Desktop"
],
"file_extensions": [".txt", ".md", ".pdf", ".docx"],
"exclude_patterns": [
"**/node_modules/**",
"**/.git/**"
]
},
"database": {
"path": "./data/knowledge.db"
}
}
3. 构建项目
npm run build
4. 索引本地文档
npm run index
输出示例:
开始扫描本地文档...
扫描目录: ~/Documents
找到 45 个 .md 文件
找到 12 个 .pdf 文件
正在保存 57 个文档到数据库...
索引完成!
数据库统计:
local: 57 个文档
5. 配置 Cherry Studio
在 Cherry Studio 中添加 MCP Server:
方法 1: 通过 UI 配置
- 打开 Cherry Studio 设置
- 找到 "MCP Servers" 或 "Model Context Protocol"
- 添加新的 Server
- 配置如下:
{
"personal-knowledge": {
"command": "node",
"args": ["/path/to/personal-knowledge-mcp/dist/index.js"],
"cwd": "/path/to/personal-knowledge-mcp"
}
}
方法 2: 直接编辑配置文件
找到 Cherry Studio 的配置文件(通常在 ~/.cherry-studio/config.json 或应用设置目录),添加:
{
"mcpServers": {
"personal-knowledge": {
"command": "node",
"args": ["/path/to/personal-knowledge-mcp/dist/index.js"],
"cwd": "/path/to/personal-knowledge-mcp"
}
}
}
6. 在 Cherry Studio 中使用
重启 Cherry Studio 后,你可以在对话中使用以下方式访问知识库:
请帮我搜索知识库中关于"TypeScript 泛型"的文档
AI 会自动调用 search_documents 工具进行搜索。
🛠️ MCP 工具列表
服务器提供以下 MCP 工具:
1. search_documents
搜索知识库中的文档
参数:
query(必填): 搜索关键词source(可选): 限定来源 ('local', 'feishu', 'wecom')limit(可选): 返回数量,默认 20
示例:
{
"query": "React Hooks",
"source": "local",
"limit": 10
}
2. get_document
获取完整文档内容
参数:
document_id(必填): 文档 ID
3. list_documents
列出所有文档
参数:
source(可选): 限定来源limit(可选): 返回数量,默认 50
4. get_stats
获取知识库统计信息
返回示例:
{
"stats": {
"local": 57,
"feishu": 0,
"wecom": 0
}
}
5. sync_local_documents
手动触发本地文档同步
📁 项目结构
personal-knowledge-mcp/
├── src/
│ ├── index.ts # 入口文件
│ ├── server.ts # MCP Server 实现
│ ├── types.ts # TypeScript 类型定义
│ ├── storage/
│ │ └── database.ts # SQLite 数据库管理
│ ├── crawlers/
│ │ └── local-crawler.ts # 本地文档爬虫
│ └── utils/
│ └── file-parser.ts # 文件解析器
├── data/
│ └── knowledge.db # SQLite 数据库(自动生成)
├── config.json # 配置文件
├── package.json
├── tsconfig.json
└── README.md
🔧 常见问题
Q: 索引速度慢?
A:
- 减少
watch_paths的范围 - 使用
exclude_patterns排除大型目录 - 大型 PDF 文件解析较慢,可以先排除
Q: 搜索不到文档?
A:
- 确认文档已被索引(运行
npm run index) - 检查
file_extensions是否包含你的文件类型 - 尝试使用不同的关键词(支持 SQLite FTS5 语法)
Q: Cherry Studio 连接失败?
A:
- 确认已运行
npm run build - 检查配置中的路径是否为绝对路径
- 查看 Cherry Studio 的日志输出
Q: 如何更新索引?
A:
重新运行 npm run index 即可。已存在的文档会被更新,删除的文件会被移除。
📈 性能优化建议
- 定期清理数据库: 删除不再需要的文档
- 合理设置监控路径: 避免监控整个硬盘
- 限制文件大小: 在
local-crawler.ts中可以添加文件大小限制 - 使用 SSD: 数据库访问速度直接影响搜索性能
🛣️ 下一步计划
Phase 2: 飞书集成
- OAuth 认证
- 文档列表获取
- 内容下载和解析
- 增量同步
Phase 3: 企业微信集成
- 评估 API 可用性
- 实现文件下载
- 或采用手动导出方案
Phase 4: 高级搜索
- 接入本地 Embedding 模型(ollama)
- 向量化文档
- 语义搜索 + 关键词搜索混合
📝 开发说明
# 开发模式(自动编译)
npm run dev
# 手动编译
npm run build
# 索引文档
npm run index
# 启动 MCP Server
npm start
⚠️ 重要提示
- 合规性: 确保索引企业文档符合公司信息安全政策
- 权限: 某些文档可能需要管理员授权才能访问
- 隐私: 本地数据库包含文档内容,注意保护
- 备份: 定期备份
data/knowledge.db
📄 许可证
MIT
问题反馈: 如遇到问题,请检查日志输出并提供详细错误信息。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。