Skip to main content
Glama
kyodule

Personal Knowledge MCP Server

by kyodule

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 配置

  1. 打开 Cherry Studio 设置

  2. 找到 "MCP Servers" 或 "Model Context Protocol"

  3. 添加新的 Server

  4. 配置如下:

{ "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:

  1. 确认文档已被索引(运行 npm run index

  2. 检查 file_extensions 是否包含你的文件类型

  3. 尝试使用不同的关键词(支持 SQLite FTS5 语法)

Q: Cherry Studio 连接失败?

A:

  1. 确认已运行 npm run build

  2. 检查配置中的路径是否为绝对路径

  3. 查看 Cherry Studio 的日志输出

Q: 如何更新索引?

A: 重新运行 npm run index 即可。已存在的文档会被更新,删除的文件会被移除。

📈 性能优化建议

  1. 定期清理数据库: 删除不再需要的文档

  2. 合理设置监控路径: 避免监控整个硬盘

  3. 限制文件大小: 在 local-crawler.ts 中可以添加文件大小限制

  4. 使用 SSD: 数据库访问速度直接影响搜索性能

🛣️ 下一步计划

Phase 2: 飞书集成

  1. OAuth 认证

  2. 文档列表获取

  3. 内容下载和解析

  4. 增量同步

Phase 3: 企业微信集成

  1. 评估 API 可用性

  2. 实现文件下载

  3. 或采用手动导出方案

Phase 4: 高级搜索

  1. 接入本地 Embedding 模型(ollama)

  2. 向量化文档

  3. 语义搜索 + 关键词搜索混合

📝 开发说明

# 开发模式(自动编译) npm run dev # 手动编译 npm run build # 索引文档 npm run index # 启动 MCP Server npm start

⚠️ 重要提示

  1. 合规性: 确保索引企业文档符合公司信息安全政策

  2. 权限: 某些文档可能需要管理员授权才能访问

  3. 隐私: 本地数据库包含文档内容,注意保护

  4. 备份: 定期备份 data/knowledge.db

📄 许可证

MIT


问题反馈: 如遇到问题,请检查日志输出并提供详细错误信息。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kyodule/personal-knowledge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server