使用说明
MCP文档服务器
一种模型上下文协议(MCP)服务器,使Claude能够与文档集合进行交互和分析。此服务器提供用于从各种文档格式中搜索、读取和提取信息的工具。
目录
特性
- 多格式支持:读取和处理各种文档格式,包括纯文本、Markdown、PDF和JSON
- 全文搜索:使用可配置的区分大小写功能搜索所有文档
- 文档管理:列出所有包含元数据的文档(大小、修改日期、类型)
- 内容提取:使用正则表达式模式从文档中提取特定部分
- 资源访问:通过MCP资源URI直接访问文档内容
- 实时更新:自动检测添加到受监视目录的新文档
先决条件
- Node.js 18.0或更高版本
- npm或yarn包管理器
- Claude桌面应用程序
安装
- 克隆或下载此存储库:
git clone <repository-url>
cd mcp-document-server
- 安装依赖项:
npm install
- 创建文档目录(或准备现有目录):
mkdir documents
配置
Claude桌面配置
- 打开克劳德桌面设置
- 导航到“开发人员”设置
- 将以下内容添加到MCP服务器配置中:
{
"mcpServers": {
"document-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-document-server/src/index.js"],
"env": {
"DOCUMENTS_PATH": "/absolute/path/to/your/documents"
}
}
}
}
备注:替换 /absolute/path/to/ 使用系统上的实际路径。
配置选项
DOCUMENTS_PATH:环境变量,用于指定包含文档的目录(默认为./documents)
用法
启动服务器
如果配置正确,当Claude Desktop启动时,服务器会自动启动。要手动测试,请执行以下操作:
# Using default documents directory
node src/index.js
# Using custom documents directory
DOCUMENTS_PATH=/path/to/docs node src/index.js
添加文档
只需将文档放置在配置的文档目录中即可。在以下情况下,服务器将自动检测到它们:
- 列出文档
- 执行搜索
- 访问资源
通过克劳德互动
配置后,您可以要求Claude:
-
列出所有文件:
- “显示所有可用文档”
- “您可以访问哪些文件?”
-
跨文档搜索:
- “在所有文档中搜索‘机器学习’”
- “查找所有提到的‘API’(区分大小写)”
-
阅读特定文档:
- “阅读example.txt的内容”
- “显示README文件中的内容”
-
提取部分:
- “从markdown文件中提取所有标题”
- “在documents.md中查找以'##'开头的所有部分”
可用工具
1. list_documents
列出所有具有元数据的可用文档。
参数:无
退货:
{
"documents": [
{
"name": "example.txt",
"path": "/full/path/to/example.txt",
"size": 1234,
"modified": "2024-01-15T10:30:00.000Z",
"type": "txt"
}
]
}
2. search_documents
在所有文档中搜索文本。
参数:
query(必填):要搜索的文本case_sensitive(可选):用于区分大小写搜索的布尔值(默认值:false)
退货:
{
"results": [
{
"file": "example.txt",
"path": "/full/path/to/example.txt",
"matches": [
{
"line": 5,
"text": "This line contains the search term"
}
],
"total_matches": 3
}
]
}
3. extract_sections
根据正则表达式模式从文档中提取部分。
参数:
file_path(必填):文档路径pattern(必需):正则表达式模式以匹配部分
退货:
{
"sections": [
{
"heading": "## Section Title",
"line_start": 10,
"line_end": 25,
"content": "Section content..."
}
]
}
支持的文件格式
- 纯文本 (
.txt):直接阅读文本 - 降价 (
.md):作为纯文本处理,保留完整的markdown语法 - 可移植文档格式 (
.pdf):从PDF文档中提取文本 - 对象符号 (
.json):打印精美的JSON内容
例子
示例1:文档研究工作流程
User: "I need to find all mentions of authentication in my documentation"
Claude will:
1. Use search_documents tool with query "authentication"
2. Present all matches with file names and line numbers
3. Offer to read specific documents for more context
示例2:提取API文档
User: "Extract all API endpoints from my API.md file"
Claude will:
1. Use extract_sections with pattern "^###.*endpoint|^###.*api"
2. Return all matching sections with their content
示例3:文档概述
User: "Give me an overview of all technical documents"
Claude will:
1. Use list_documents to get all files
2. Filter for technical documentation
3. Provide summary with file sizes and last modified dates
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
DOCUMENTS_PATH |
文档目录的路径 | ./documents |
故障排除
常见问题
-
服务器未出现在Claude中:
- 验证配置路径是绝对的,而不是相对的
- 检查Node.js是否在您的系统PATH中
- 配置更改后重新启动Claude Desktop
-
未找到文档:
- 确保DOCUMENT_PATH设置正确
- 检查文档目录上的文件权限
- 验证文档是否位于目录的根目录中(而不是子目录)
-
PDF阅读错误:
- 某些PDF可能存在文本提取问题
- 如果问题仍然存在,请尝试转换为文本格式
调试模式
要查看服务器日志,请执行以下操作:
node src/index.js 2> server.log
发展
项目结构
mcp-document-server/
├── src/
│ └── index.js # Main server implementation
├── documents/ # Default documents directory
├── package.json # Project dependencies
└── README.md # This file
添加新功能
要添加对新文件格式的支持,请执行以下操作:
- 将文件扩展名添加到
getMimeType()方法 - 在中添加解析逻辑
loadDocument()方法 - 安装任何必要的解析库
贡献
请随时提交问题或拉取请求:
- 新的文件格式支持
- 附加搜索功能
- 性能改进
- 错误修正
许可证
[您选择的许可证]
致谢
使用Anthropic的模型上下文协议SDK构建。
