医生史密斯mcp
](https://www.npmjs.com/package/docsmith-mcp)
使用MCP应用程序进行Python驱动的文档处理MCP——使用Python轻松处理Excel、Word、PDF、PowerPoint文档,并通过交互式MCP应用程序美观地查看它们。
特性
- Excel:读/写
.xlsx支持工作表和分页的文件 - 字:读/写
.docx支持段落和表格的文件 - PDF:阅读
.pdf具有文本提取和分页功能的文件 - 幻灯片:阅读
.pptx带有幻灯片内容提取功能的文件 - 文本文件:读/写
.txt,.csv,.md,.json,.yaml,.yml支持分页 - 运行Python:执行Python代码以实现灵活的文件操作和数据处理
- MCP应用程序:漂亮的React+Tailwind CSS应用程序,用于查看所有文档类型
- 灵活的阅读模式:大文件的原始完全读取或分页
- 由Pyodide提供技术支持:通过代码运行器mcp在安全的WebAssembly沙盒中运行
快速开始
MCP配置
添加到您的MCP客户端配置中(例如,Claude Desktop、Cline等):
通过npx(推荐):
{
"mcpServers": {
"docsmith": {
"command": "npx",
"args": ["-y", "docsmith-mcp"],
"env": {
"DOC_PAGE_SIZE": "100"
}
}
}
}通过全局安装:
npm install -g docsmith-mcp{
"mcpServers": {
"docsmith": {
"command": "docsmith-mcp",
"env": {
"DOC_PAGE_SIZE": "100"
}
}
}
}通过本地路径:
{
"mcpServers": {
"docsmith": {
"command": "node",
"args": ["/path/to/docsmith-mcp/dist/index.js"]
}
}
}然后使用 read_document 工具:
{
"file_path": "/path/to/document.xlsx",
"mode": "paginated",
"page": 1,
"page_size": 50
}MCP应用程序将自动打开,以美观的方式显示文档内容。
支持的格式
| 格式 | 扩展 | 读 | 写 | 注释 |
|---|---|---|---|---|
| Excel | .xlsx | ✅ | ✅ | 多页支持,分页 |
| Word | .docx | ✅ | ✅ | 段落和表格 |
.pdf | ✅ | ❌ | 带分页的文本提取 | |
| PowerPoint | .pptx | ✅ | ❌ | 幻灯片内容提取 |
| CSV | .csv | ✅ | ✅ | - |
| 文本 | .txt, .md | ✅ | ✅ | 分页支持 |
| JSON | .json | ✅ | ✅ | - |
| YAML | .yaml, .yml | ✅ | ✅ | - |
工具
read_文档
通过自动格式检测读取文档内容。
参数:
file_path(字符串,必填):文档的路径mode(字符串,可选):"paginated"或"raw"(默认值:"paginated")page(数字,可选):分页模式的页码(默认值:1)page_size(数量,可选):每页项目数(默认值:100)sheet_name(字符串,可选):Excel文件的工作表名称
例子:
{
"file_path": "/path/to/document.xlsx",
"mode": "paginated",
"page": 1,
"page_size": 50,
"sheet_name": "Sheet1"
}write_文档
写文档内容。
参数:
file_path(字符串,必填):输出路径format(字符串,必填):"excel","word","csv","txt","json","yaml"data(数组/对象,必填):文档内容
例子:
{
"file_path": "/path/to/output.xlsx",
"format": "excel",
"data": [
["Product", "Q1", "Q2"],
["Laptop", 100, 150],
["Mouse", 500, 600]
]
}get_document_info
在不读取完整内容的情况下获取文档元数据。
参数:
file_path(字符串,必填):文档的路径
例子:
{
"file_path": "/path/to/document.pdf"
}run_python
执行Python代码以实现灵活的文件操作、数据处理和自定义任务。支持任何文件格式和Python库。
参数:
code(string,必填):要执行的Python代码packages(对象,可选):所需依赖项的包映射(import_name->pypi_name)file_paths(array,可选):代码需要访问的文件路径
示例:
读取并处理任何文件:
{
"code": "import json\nwith open('/path/to/file.json') as f:\n data = json.load(f)\n result = len(data)\n print(json.dumps({'count': result}))",
"file_paths": ["/path/to/file.json"]
}使用正则表达式批量重命名文件:
{
"code": "import os, re\nfolder = '/path/to/files'\nfor name in os.listdir(folder):\n new_name = re.sub(r'old_', 'new_', name)\n os.rename(os.path.join(folder, name), os.path.join(folder, new_name))\nprint(json.dumps({'success': True}))",
"file_paths": ["/path/to/files"]
}使用pandas处理数据:
{
"code": "import pandas as pd\ndf = pd.read_csv('/path/to/data.csv')\nsummary = df.describe().to_dict()\nprint(json.dumps(summary))",
"packages": {"pandas": "pandas"},
"file_paths": ["/path/to/data.csv"]
}提取存档文件:
{
"code": "import zipfile, os\nwith zipfile.ZipFile('/path/to/archive.zip', 'r') as z:\n z.extractall('/path/to/output')\nfiles = os.listdir('/path/to/output')\nprint(json.dumps({'extracted_files': files}))",
"file_paths": ["/path/to/archive.zip", "/path/to/output"]
}MCP应用程序
内置的MCP应用程序为查看文档提供了一个美观的交互式界面:
- Excel:带有粘性标题的交互式表格
- PDF:逐页文本查看
- 字:段落和表格渲染
- 幻灯片:滑动导航
使用React 19、Tailwind CSS v4和Lucide图标构建。
配置
用于自定义行为的环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
DOC_RAW_FULL_READ | 启用完全原始读取模式 | false |
DOC_PAGE_SIZE | 每页默认项目数 | 100 |
DOC_MAX_FILE_SIZE | 最大文件大小(MB) | 50 |
贡献
看 贡献.md 用于开发设置和贡献指南。
许可证
麻省理工学院
