MCP知识检索服务器
用于基于BM25的文档搜索和检索的模型上下文协议(MCP)服务器。
- 参考的TOS结算联动MCP技术博客。https://toss.tech/article/tosspayments-mcp
🚀 立即开始
🎯 超简单安装(推荐)
# macOS/Linux
./run.sh
# Windows
run.bat这些脚本将自动处理:
- 检查Node.js版本
- 安装依赖性(
npm install) - 构建项目(
npm run build) - 创建配置文件(
config.json) - 创建示例文档(
docs/文件夹) - Claude Desktop设置指南输出
- 运行MCP服务器
手动安装
# 단계별 설치
npm install && npm run build && cp config.example.json config.json
# 서버 실행
npm start开发模式
npm run dev📋 首选项
config.json(自动生成)
{
"serverName": "knowledge-retrieval",
"serverVersion": "1.0.0",
"documentSource": {
"type": "local",
"basePath": "./docs",
"domains": [
{
"name": "company",
"path": "company",
"category": "회사정보"
},
{
"name": "customer",
"path": "customer",
"category": "고객서비스"
},
{
"name": "product",
"path": "product",
"category": "제품정보"
},
{
"name": "technical",
"path": "technical",
"category": "기술문서"
}
]
},
"bm25": {
"k1": 1.2,
"b": 0.75
},
"chunk": {
"minWords": 30,
"contextWindowSize": 1
},
"logLevel": "info"
}主要设置项目
- documentSource.basePath:文档文件所在的默认路径
- 领域:要搜索的域的设置
- bm25.k1:BM25算法的term frequency saturation参数(默认值:1.2)
- bm25.b:BM25算法的field length normalization参数(默认值:0.75)
- chunk.minWords:区块的最小字数(默认值:30)
🔧 克劳德桌面연동
设置文件位置
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%/Claude/claude_desktop_config.json
设置内容(绝对路径)
{
"mcpServers": {
"knowledge-retrieval": {
"command": "node",
"args": ["/dist/index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}重要: ``将更改为实际项目文件夹的绝对路径!
建议设置(指定工作目录)
{
"mcpServers": {
"knowledge-retrieval": {
"command": "npm",
"args": ["start"],
"cwd": ""
}
}
}📁 文档结构
文档必须由以下结构组成:
docs/
├── company/ # 회사 정보
│ ├── about.md
│ └── team.md
├── customer/ # 고객 서비스
│ ├── support.md
│ └── sla.md
├── product/ # 제품 정보
│ ├── ai-platform.md
│ └── web-app.md
└── technical/ # 기술 문서
├── api-guide.md
└── deployment.md支持文件格式
.md(Markdown).mdx(MDX).markdown
🛠 可用的MCP工具
1.搜索文档
执行文档搜索。
参数:
keywords:要搜索的关键字数组maxResults:最大结果数(默认值:10)domain:搜索限制到特定域(可选)
示例:
// Claude Desktop에서 사용할 때
"AI 플랫폼의 가격 정책을 알려줘"2.通过id获取文档
使用特定文档ID导入整个文档。
参数:
documentId:文档ID
3.列出域名
查看所有可用域和文档的数量。
4.使用上下文获取块
获取特定区块及其周围的上下文。
参数:
chunkId:区块IDcontextSize:上下文窗口大小(可选)
🧪 测试和验证
1.确认服务器运行情况
npm run dev成功时输出示例:
Initializing knowledge-retrieval v1.0.0...
Loaded 8 documents
Initialized repository with 36 chunks from 8 documents
MCP server started successfully2.在Claude桌面上立即测试
重新启动Claude Desktop后,测试以下问题:
우리 회사의 비전과 미션이 뭐야?
AI 플랫폼의 가격 정책을 알려줘
API 인증 방법을 설명해줘3.快速解决问题
| 问题 | 解决方法 |
|---|---|
| 服务器启动失败 | npm install && npm run build |
| 无法加载文档 | docs/ 文件夹和 .md 检查文件 |
| Claude桌面连接失败 | 检查配置文件路径后重新启动Claude桌面 |
📊 性能优化
BM25参数调整
- 增加k1值:词频的影响增加(1.2→2.0)
- 调整b值:文档长度规范化强度(0.75→0.5)
优化区块大小
- minWords增加:更大的上下文,搜索速度较慢
- minWords减少:精确匹配,快速搜索
🔒 安全注意事项
- 文件权限:在文档目录中设置适当的读取权限
- 环境变量:将敏感设置作为环境变量进行管理
- 网络:根据需要设置防火墙规则
📝 设置环境变量
export MCP_SERVER_NAME="my-knowledge-server"
export DOCS_BASE_PATH="./my-docs"
export BM25_K1="1.5"
export BM25_B="0.8"
export CHUNK_MIN_WORDS="50"
export LOG_LEVEL="debug"🆘 故障排除
出现问题时的确认顺序:
- 检查日志:
npm run dev输出消息 - 配置文件:
config.json语法错误检查 - 文档文件夹:
docs/目录和.md确认文件 - Claude Desktop:配置文件路径和重新启动
💡 核心摘要
立即使用的核对表
使用自动安装:
- \[ \]
./run.sh(或run.bat)运行 - \[\]复制脚本输出的Claude Desktop设置
- \[\]重新启动Claude Desktop
- \[\]通过测试问题确认操作
使用手动安装:
- \[ \]
npm install && npm run build && cp config.example.json config.json - \[ \]
docs/将标记文件添加到文件夹 - \[\]在Claude Desktop设置文件中指定项目路径
- \[\]重新启动Claude Desktop
- \[\]通过测试问题确认操作
主要命令
- 开发:
npm run dev - 构建:
npm run build - 运行:
npm start - 测试:
npm test
______________________________________________________________________
MIT许可证 | 开发中 npm run dev 建议使用
