这是一个模型上下文协议(MCP)服务器,支持检索增强生成(RAG)。它索引您的文档并通过MCP协议向大型语言模型提供相关上下文。
{
"mcpServers": {
"rag": {
"command": "npx",
"args": ["-y", "mcp-rag-server"],
"env": {
"BASE_LLM_API": "http://localhost:11434/v1",
"EMBEDDING_MODEL": "nomic-embed-text",
"VECTOR_STORE_PATH": "./vector_store",
"CHUNK_SIZE": "500"
}
}
}
}
# 索引文档
>> tool:embedding_documents {"path":"./docs"}
# 检查状态
>> resource:embedding-status
<< rag://embedding/status
当前路径: ./docs/file1.md
已完成: 10
失败:
总块数: 15
失败原因:
.txt、.md、.json、.jsonl和.csv格式的文档npm install -g mcp-rag-server
git clone https://github.com/kwanLeeFrmVi/mcp-rag-server.git
cd mcp-rag-server
npm install
npm run build
npm start
export BASE_LLM_API=http://localhost:11434/v1
export EMBEDDING_MODEL=granite-embedding-278m-multilingual-Q6_K-1743674737397:latest
export VECTOR_STORE_PATH=./vector_store
export CHUNK_SIZE=500
# 运行(全局安装)
mcp-rag-server
# 或通过npx
npx mcp-rag-server
💡 提示: 我们推荐使用 Ollama 进行嵌入。安装并拉取
nomic-embed-text模型:
ollama pull nomic-embed-text
export EMBEDDING_MODEL=nomic-embed-text
| 变量 | 描述 | 默认值 |
|---|---|---|
BASE_LLM_API | 嵌入API的基础URL | http://localhost:11434/v1 |
LLM_API_KEY | 您的LLM提供商的API密钥 | (空) |
EMBEDDING_MODEL | 嵌入模型标识符 | nomic-embed-text |
VECTOR_STORE_PATH | 本地向量存储目录 | ./vector_store |
CHUNK_SIZE | 文本块中的字符数(数字) | 500 |
💡 建议: 使用如
nomic-embed-text的Ollama嵌入模型以获得最佳性能。
运行后,服务器通过MCP暴露以下工具:
embedding_documents(path: string): 在给定路径下索引文档query_documents(query: string, k?: number): 检索前 k 个块(默认15)remove_document(path: string): 移除特定文档remove_all_documents(confirm: boolean): 清空整个索引(confirm=true)list_documents(): 列出所有已索引文档路径客户端还可以通过URI读取资源:
rag://documents — 列出所有文档URIrag://document/{path} — 获取文档全文内容rag://query-document/{numberOfChunks}/{query} — 查询文档作为资源rag://embedding/status — 检查当前索引状态(已完成、失败、总数)CHUNK_SIZE 将文本分割成块,并排队进行嵌入。npm install
npm run build # 编译TypeScript
npm start # 运行服务器
npm run watch # 监控更改
欢迎贡献!请在 GitHub 上打开问题或拉请求。
MIT 2025 Quan Le