个性化文档助手 MCP 服务器
March 20, 2025 · View on GitHub
一个基于 MCP 的个性化文档助手服务器,可以查询指定电脑路径的文档内容。
功能特点
- 支持多种文档格式:PDF、TXT、CSV、Excel、Word、Markdown 等
- 使用向量数据库进行语义检索
- 符合 MCP 协议标准
- 提供标准 MCP 服务接口
依赖安装
# 安装基础依赖
pip install langchain langchain-community faiss-cpu pypdf transformers unstructured docx2txt pandas openpyxl mcp
## 使用方法
### 启动服务器
```bash
python test_mcp_server.py --paths /path/to/documents /another/path --embedding-model moka-ai/m3e-base
参数说明:
--paths: 文档路径列表,可以是文件或目录--embedding-model: 嵌入模型名称,默认为 moka-ai/m3e-base
与服务器交互
该服务器支持标准的 MCP 交互协议,可以通过 MCP 客户端与其交互。
服务器提供的功能:
- 资源列表(list_resources):列出所有可用的文档资源
- 读取资源(read_resource):读取指定文档的内容
- 工具列表(list_tools):列出可用的工具
- 调用工具(call_tool):调用查询文档内容的工具
示例:查询文档
可以使用 MCP 客户端调用 query_document 工具来查询文档内容:
from mcp.client import Client
async with Client() as client:
# 连接到文档助手服务器
await client.connect("document_assistant_mcp")
# 调用查询工具
result = await client.call_tool(
"query_document",
{"question": "我想了解关于某个主题的信息"}
)
# 打印结果
print(result[0].text)
注意事项
- 首次加载文档时会构建向量索引,可能需要一定时间
- 查询性能取决于文档数量和嵌入模型的性能
- 服务器使用标准输入输出作为传输方式,适合与其他 MCP 组件集成使用
客户端配置
{
"mcpServers": {
"document-assistant": {
"command": "python",
"args": [
"你的 python 文件地址 如./mcp_server.py",
"--paths",
"你的文档路径 如/Users/Downloads",
"--embedding-model",
"moka-ai/m3e-base"
],
"env": {}
}
}
}