一个强大的 MCP (Model Context Protocol) 服务器,用于搜索和访问本地 Markdown 知识库。支持关键词搜索和先进的语义搜索功能。
这是一个 MCP (Model Context Protocol) 服务器,用于搜索和访问本地 Markdown 知识库。该项目参考了 context7 的设计理念,但专注于本地文件而非在线文档,为 AI 助手提供访问本地知识库的能力。
# 克隆项目
git clone <repository-url>
# 安装依赖
npm install
# 构建项目
npm run build
默认配置会搜索以下目录:
~/Documents/notes~/Projects/docs创建配置文件来自定义搜索路径和搜索模式:
{
"knowledgePaths": [
"/path/to/your/notes",
"/path/to/your/docs"
],
"searchOptions": {
"defaultMode": "semantic",
"maxResults": 20,
"semantic": {
"enabled": true,
"provider": "local",
"model": "Xenova/all-MiniLM-L6-v2",
"cacheEmbeddings": true,
"batchSize": 100
}
}
}
{
"searchOptions": {
"defaultMode": "keyword"
}
}
{
"searchOptions": {
"defaultMode": "semantic",
"semantic": {
"enabled": true,
"provider": "local",
"model": "Xenova/all-MiniLM-L6-v2",
"cacheEmbeddings": true
}
}
}
{
"searchOptions": {
"defaultMode": "semantic",
"semantic": {
"enabled": true,
"provider": "openai",
"model": "text-embedding-3-small",
"apiKey": "your-openai-api-key",
"cacheEmbeddings": true
}
}
}
{
"searchOptions": {
"defaultMode": "semantic",
"semantic": {
"enabled": true,
"provider": "cohere",
"model": "embed-english-v3.0",
"apiKey": "your-cohere-api-key",
"cacheEmbeddings": true
}
}
}
{
"searchOptions": {
"defaultMode": "hybrid",
"semantic": {
"enabled": true,
"provider": "local",
"model": "shibing624/text2vec-base-chinese"
},
"hybrid": {
"keywordWeight": 0.7,
"semanticWeight": 0.3
}
}
}
本项目默认使用专门优化的中文嵌入模型 shibing624/text2vec-base-chinese,该模型:
如需使用其他模型,可在配置中指定:
{
"searchOptions": {
"semantic": {
"model": "Xenova/paraphrase-multilingual-MiniLM-L12-v2" // 多语言模型
}
}
}
构建项目:
npm run build
在 Claude Desktop 配置文件中添加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"context6": {
"command": "node",
"args": ["/path/to/context6/dist/index.js"]
}
}
}
重启 Claude Desktop
验证集成:在 Claude 中输入 "使用 list_files 工具" 来测试是否正常工作
npm run inspector
智能搜索本地 Markdown 文件中的内容。根据配置自动选择搜索模式(关键词、语义或混合搜索)。
参数:
query (必需): 搜索查询limit (可选): 最大结果数,默认为 10mode (可选): 搜索模式 ("keyword" | "semantic" | "hybrid")示例:
// 使用默认搜索模式
await search({ query: "机器学习算法" });
// 强制使用语义搜索
await search({ query: "neural networks", mode: "semantic" });
// 使用混合搜索(结合关键词和语义)
await search({ query: "性能优化", mode: "hybrid" });
// 限制结果数量
await search({ query: "配置", limit: 5 });
读取指定 Markdown 文件的完整内容。
参数:
path (必需): Markdown 文件的路径示例:
// 读取特定文件
await read_file({ path: "git-commands.md" });
列出可用的 Markdown 文件。
参数:
directory (可选): 要列出文件的目录示例:
// 列出所有文件
await list_files();
// 列出特定目录的文件
await list_files({ directory: "~/Documents/notes" });
当集成到 Claude Desktop 后,可以这样使用:
使用 search 工具搜索 "git branch"
使用 list_files 工具查看所有文档
使用 read_file 工具读取 "git-commands.md"
与传统关键词搜索相比,语义搜索提供:
示例对比:
| 查询 | 关键词搜索 | 语义搜索 |
|---|---|---|
| "人工智能" | 只匹配包含"人工智能"的文档 | 匹配 AI、机器学习、深度学习等相关概念 |
| "troubleshooting" | 只匹配英文关键词 | 可以匹配"故障排除"、"问题解决"等中文内容 |
| "performance optimization" | 精确关键词匹配 | 理解性能、优化、提升效率等相关概念 |
# 克隆项目
git clone <repository-url>
# 安装依赖
npm install
# 开发模式(自动重新编译)
npm run watch
# 构建项目
npm run build
# 测试相关
npm test # 运行所有测试
npm run test:watch # 监视模式
npm run test:coverage # 生成覆盖率报告
npm run test:manual # 运行手动测试
# 代码质量检查
npm run lint # ESLint 检查
npm run format # Prettier 格式化
# 调试 MCP 通信
npm run inspector # 使用 MCP Inspector 调试
详细的测试文档请参见 tests/README.md
添加新的 MCP 工具:
server.ts 构造函数中定义工具handleToolCall 方法中添加处理逻辑src/types.ts 中的类型定义扩展搜索引擎:
SearchEngine 抽象类src/search/ 目录下实现新引擎/
├── src/ # 源代码
│ ├── index.ts # CLI 入口,处理配置加载和服务器启动
│ ├── server.ts # MCP 服务器实现,使用 StdioTransport
│ ├── fileService.ts # 文件系统操作,处理 Markdown 文件
│ ├── config.ts # 配置管理,支持深度合并
│ ├── types.ts # TypeScript 类型定义
│ └── search/ # 搜索引擎实现
│ ├── searchEngine.ts # 搜索引擎抽象基类
│ ├── keywordSearch.ts # 关键词搜索实现
│ └── semanticSearch.ts # 语义搜索实现
├── tests/ # 单元测试和集成测试
├── dist/ # 编译输出
└── README.md # 项目文档
Claude Desktop → StdioTransport → Context6Server → Tool Handlers
↓
FileService ← SearchEngine
--config 参数CONTEXT6_CONFIGsrc/config.tsglob 进行文件发现gray-matter 解析 Markdown frontmatter.gitignore 风格的忽略模式项目包含全面的测试套件,确保代码质量和功能可靠性。
npm test # 运行所有测试
npm run test:watch # 监视模式
npm run test:coverage # 覆盖率报告
完整的测试文档和指南请参见 tests/README.md
欢迎贡献代码!请遵循以下步骤:
npm run format # 格式化代码
npm run lint # 代码质量检查
npm test # 运行所有测试
MIT
6 commits
TypeScript
91.5%
JavaScript
8.5%
一个强大的 MCP (Model Context Protocol) 服务器,用于搜索和访问本地 Markdown 知识库。支持关键词搜索和先进的语义搜索功能。
这是一个 MCP (Model Context Protocol) 服务器,用于搜索和访问本地 Markdown 知识库。该项目参考了 context7 的设计理念,但专注于本地文件而非在线文档,为 AI 助手提供访问本地知识库的能力。
# 克隆项目
git clone <repository-url>
# 安装依赖
npm install
# 构建项目
npm run build
默认配置会搜索以下目录:
~/Documents/notes~/Projects/docs创建配置文件来自定义搜索路径和搜索模式:
{
"knowledgePaths": [
"/path/to/your/notes",
"/path/to/your/docs"
],
"searchOptions": {
"defaultMode": "semantic",
"maxResults": 20,
"semantic": {
"enabled": true,
"provider": "local",
"model": "Xenova/all-MiniLM-L6-v2",
"cacheEmbeddings": true,
"batchSize": 100
}
}
}
{
"searchOptions": {
"defaultMode": "keyword"
}
}
{
"searchOptions": {
"defaultMode": "semantic",
"semantic": {
"enabled": true,
"provider": "local",
"model": "Xenova/all-MiniLM-L6-v2",
"cacheEmbeddings": true
}
}
}
{
"searchOptions": {
"defaultMode": "semantic",
"semantic": {
"enabled": true,
"provider": "openai",
"model": "text-embedding-3-small",
"apiKey": "your-openai-api-key",
"cacheEmbeddings": true
}
}
}
{
"searchOptions": {
"defaultMode": "semantic",
"semantic": {
"enabled": true,
"provider": "cohere",
"model": "embed-english-v3.0",
"apiKey": "your-cohere-api-key",
"cacheEmbeddings": true
}
}
}
{
"searchOptions": {
"defaultMode": "hybrid",
"semantic": {
"enabled": true,
"provider": "local",
"model": "shibing624/text2vec-base-chinese"
},
"hybrid": {
"keywordWeight": 0.7,
"semanticWeight": 0.3
}
}
}
本项目默认使用专门优化的中文嵌入模型 shibing624/text2vec-base-chinese,该模型:
如需使用其他模型,可在配置中指定:
{
"searchOptions": {
"semantic": {
"model": "Xenova/paraphrase-multilingual-MiniLM-L12-v2" // 多语言模型
}
}
}
构建项目:
npm run build
在 Claude Desktop 配置文件中添加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"context6": {
"command": "node",
"args": ["/path/to/context6/dist/index.js"]
}
}
}
重启 Claude Desktop
验证集成:在 Claude 中输入 "使用 list_files 工具" 来测试是否正常工作
npm run inspector
智能搜索本地 Markdown 文件中的内容。根据配置自动选择搜索模式(关键词、语义或混合搜索)。
参数:
query (必需): 搜索查询limit (可选): 最大结果数,默认为 10mode (可选): 搜索模式 ("keyword" | "semantic" | "hybrid")示例:
// 使用默认搜索模式
await search({ query: "机器学习算法" });
// 强制使用语义搜索
await search({ query: "neural networks", mode: "semantic" });
// 使用混合搜索(结合关键词和语义)
await search({ query: "性能优化", mode: "hybrid" });
// 限制结果数量
await search({ query: "配置", limit: 5 });
读取指定 Markdown 文件的完整内容。
参数:
path (必需): Markdown 文件的路径示例:
// 读取特定文件
await read_file({ path: "git-commands.md" });
列出可用的 Markdown 文件。
参数:
directory (可选): 要列出文件的目录示例:
// 列出所有文件
await list_files();
// 列出特定目录的文件
await list_files({ directory: "~/Documents/notes" });
当集成到 Claude Desktop 后,可以这样使用:
使用 search 工具搜索 "git branch"
使用 list_files 工具查看所有文档
使用 read_file 工具读取 "git-commands.md"
与传统关键词搜索相比,语义搜索提供:
示例对比:
| 查询 | 关键词搜索 | 语义搜索 |
|---|---|---|
| "人工智能" | 只匹配包含"人工智能"的文档 | 匹配 AI、机器学习、深度学习等相关概念 |
| "troubleshooting" | 只匹配英文关键词 | 可以匹配"故障排除"、"问题解决"等中文内容 |
| "performance optimization" | 精确关键词匹配 | 理解性能、优化、提升效率等相关概念 |
# 克隆项目
git clone <repository-url>
# 安装依赖
npm install
# 开发模式(自动重新编译)
npm run watch
# 构建项目
npm run build
# 测试相关
npm test # 运行所有测试
npm run test:watch # 监视模式
npm run test:coverage # 生成覆盖率报告
npm run test:manual # 运行手动测试
# 代码质量检查
npm run lint # ESLint 检查
npm run format # Prettier 格式化
# 调试 MCP 通信
npm run inspector # 使用 MCP Inspector 调试
详细的测试文档请参见 tests/README.md
添加新的 MCP 工具:
server.ts 构造函数中定义工具handleToolCall 方法中添加处理逻辑src/types.ts 中的类型定义扩展搜索引擎:
SearchEngine 抽象类src/search/ 目录下实现新引擎/
├── src/ # 源代码
│ ├── index.ts # CLI 入口,处理配置加载和服务器启动
│ ├── server.ts # MCP 服务器实现,使用 StdioTransport
│ ├── fileService.ts # 文件系统操作,处理 Markdown 文件
│ ├── config.ts # 配置管理,支持深度合并
│ ├── types.ts # TypeScript 类型定义
│ └── search/ # 搜索引擎实现
│ ├── searchEngine.ts # 搜索引擎抽象基类
│ ├── keywordSearch.ts # 关键词搜索实现
│ └── semanticSearch.ts # 语义搜索实现
├── tests/ # 单元测试和集成测试
├── dist/ # 编译输出
└── README.md # 项目文档
Claude Desktop → StdioTransport → Context6Server → Tool Handlers
↓
FileService ← SearchEngine
--config 参数CONTEXT6_CONFIGsrc/config.tsglob 进行文件发现gray-matter 解析 Markdown frontmatter.gitignore 风格的忽略模式项目包含全面的测试套件,确保代码质量和功能可靠性。
npm test # 运行所有测试
npm run test:watch # 监视模式
npm run test:coverage # 覆盖率报告
完整的测试文档和指南请参见 tests/README.md
欢迎贡献代码!请遵循以下步骤:
npm run format # 格式化代码
npm run lint # 代码质量检查
npm test # 运行所有测试
MIT
6 commits
TypeScript
91.5%
JavaScript
8.5%