一个全面的用于Microsoft Word DOCX文件操作的模型上下文协议(MCP)服务器,使用Rust构建。该服务器为AI系统提供了强大的工具,可以创建、编辑、转换和管理Word文档。
# 克隆仓库
git clone https://github.com/yourusername/docx-mcp.git
cd docx-mcp
# 下载嵌入字体以支持独立运行(可选但推荐)
./download_fonts.sh
# 构建服务器(生成完全独立的二进制文件)
./build.sh
# 服务器现在已准备好 - 不需要外部依赖项!
此MCP服务器设计为完全独立运行,无需LibreOffice、unoconv或其他外部工具:
如果可用,服务器会自动使用外部工具以提高质量,但它们是完全可选的。
服务器包括企业级和受限环境的全面安全特性:
# 启用只读模式 - 只允许查看和分析文档
# 使用环境变量
export DOCX_MCP_READONLY=true
./target/release/docx-mcp
# 使用命令行参数
./target/release/docx-mcp --readonly
在只读模式下,仅允许以下操作:
# 仅允许特定命令
# 使用环境变量
export DOCX_MCP_WHITELIST="open_document,extract_text,get_metadata,export_to_markdown"
# 使用命令行参数
./target/release/docx-mcp --whitelist open_document,extract_text,get_metadata,export_to_markdown
# 或者禁止危险命令
# 使用环境变量
export DOCX_MCP_BLACKLIST="save_document,convert_to_pdf,merge_documents"
# 使用命令行参数
./target/release/docx-mcp --blacklist save_document,convert_to_pdf,merge_documents
# 将所有文件操作限制在临时目录内
# 使用环境变量
export DOCX_MCP_SANDBOX=true
./target/release/docx-mcp
# 使用命令行参数
./target/release/docx-mcp --sandbox
# 设置最大文档大小(默认100MB)
# 使用环境变量
export DOCX_MCP_MAX_SIZE=52428800 # 50MB
export DOCX_MCP_MAX_DOCS=20
export DOCX_MCP_NO_EXTERNAL_TOOLS=true
export DOCX_MCP_NO_NETWORK=true
./target/release/docx-mcp
# 使用命令行参数
./target/release/docx-mcp \
--max-size 52428800 \
--max-docs 20 \
--no-external-tools \
--no-network
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
带有安全选项(使用命令行参数):
{
"mcpServers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": ["--readonly", "--max-size", "52428800", "--no-network"],
"env": {
"RUST_LOG": "info"
}
}
}
}
带有安全选项(使用环境变量):
{
"mcpServers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": [],
"env": {
"RUST_LOG": "info",
"DOCX_MCP_READONLY": "true",
"DOCX_MCP_MAX_SIZE": "52428800",
"DOCX_MCP_NO_NETWORK": "true"
}
}
}
}
添加后,请重启Claude Desktop。然后您可以请求Claude:
添加到您的Cursor设置中(~/.cursor/config.json或通过设置UI):
基本配置:
{
"mcp": {
"servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
}
带有安全选项(使用命令行参数):
{
"mcp": {
"servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": ["--sandbox", "--whitelist", "open_document,extract_text,export_to_markdown"],
"env": {
"RUST_LOG": "info"
}
}
}
}
}
带有安全选项(使用环境变量):
{
"mcp": {
"servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": [],
"env": {
"RUST_LOG": "info",
"DOCX_MCP_SANDBOX": "true",
"DOCX_MCP_WHITELIST": "open_document,extract_text,export_to_markdown"
}
}
}
}
}
添加到您的Windsurf配置中(~/.windsurf/config.json):
基本配置:
{
"mcp": {
"servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
}
带有安全选项(使用参数):
{
"mcp": {
"servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": ["--readonly", "--no-external-tools"],
"env": {
"RUST_LOG": "info"
}
}
}
}
}
添加到您的Continue配置中(~/.continue/config.json):
基本配置:
{
"models": [
{
"title": "您的模型",
"provider": "您的提供商",
"mcp_servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": []
}
}
}
]
}
带有安全选项:
{
"models": [
{
"title": "您的模型",
"provider": "您的提供商",
"mcp_servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": ["--sandbox", "--max-size", "10485760"]
}
}
}
]
}
如果您正在使用VS Code的MCP扩展程序,请将其添加到您的工作区设置中(.vscode/settings.json):
基本配置:
{
"mcp.servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}
带有安全选项:
{
"mcp.servers": {
"docx": {
"command": "/absolute/path/to/docx-mcp/target/release/docx-mcp",
"args": ["--readonly", "--blacklist", "save_document,merge_documents"],
"env": {
"RUST_LOG": "info"
}
}
}
}
DOCX MCP服务器支持以下命令行参数进行配置:
docx-mcp --help
| 参数 | 环境变量 | 描述 | 示例 |
|---|---|---|---|
--readonly | DOCX_MCP_READONLY=true | 启用只读模式 - 只允许查看操作 | --readonly |
--whitelist <COMMANDS> | DOCX_MCP_WHITELIST | 允许的命令列表,逗号分隔 | --whitelist open_document,extract_text |
--blacklist <COMMANDS> | DOCX_MCP_BLACKLIST | 禁止的命令列表,逗号分隔 | --blacklist save_document,convert_to_pdf |
--sandbox | DOCX_MCP_SANDBOX=true | 将文件操作限制在临时目录内 | --sandbox |
--no-external-tools | DOCX_MCP_NO_EXTERNAL_TOOLS=true | 禁用外部工具(如LibreOffice等) | --no-external-tools |
--no-network | DOCX_MCP_NO_NETWORK=true | 禁用网络操作 | --no-network |
--max-size <BYTES> | DOCX_MCP_MAX_SIZE | 最大文档大小(字节) | --max-size 52428800 |
--max-docs <COUNT> | DOCX_MCP_MAX_DOCS | 最大打开文档数量 | --max-docs 20 |
--help | - | 显示帮助信息 | --help |
--version | - | 显示版本信息 | --version |
# 基本用法
./target/release/docx-mcp
# 带有大小限制的只读模式
./target/release/docx-mcp --readonly --max-size 10485760
# 带有命令白名单的沙箱模式
./target/release/docx-mcp --sandbox --whitelist open_document,extract_text,export_to_markdown
# 多种安全选项
./target/release/docx-mcp \
--readonly \
--no-external-tools \
--no-network \
--max-size 52428800 \
--max-docs 10
注意: 当同时指定时,命令行参数优先于环境变量。
配置完成后,您可以与Claude进行自然对话:
您:"创建一个适用于我咨询业务的专业发票模板"
Claude将:
1. 创建一个新的DOCX文档
2. 添加您的公司抬头
3. 插入项目表
4. 添加付款条款和页脚
5. 保存为invoice_template.docx
您:"将我报告文件夹中的所有Word文档转换为PDF"
Claude将:
1. 列出所有DOCX文件
2. 打开每个文档
3. 转换为同名的PDF
4. 报告完成状态
编码时,您可以生成文档:
您:"从这些TypeScript接口生成API文档并保存为Word"
AI将:
1. 解析您的代码
2. 创建一个格式化的DOCX,包括:
- 标题和目录
- 端点描述
- 请求/响应示例
- 错误代码表
3. 转换为PDF以便分发
# 请求您的AI:"创建一个生成月度报告的脚本"
# AI可以使用DOCX服务器来:
async def generate_monthly_report(month, year):
# 创建文档
doc = await mcp.call("create_document")
# 添加动态内容
await mcp.call("add_heading", {
"document_id": doc.id,
"text": f"月度报告 - {month} {year}",
"level": 1
})
# 从数据库添加数据
sales_data = fetch_sales_data(month, year)
await mcp.call("add_table", {
"document_id": doc.id,
"rows": format_sales_table(sales_data)
})
# 转换为PDF并发送电子邮件
await mcp.call("convert_to_pdf", {
"document_id": doc.id,
"output_path": f"reports/{year}_{month}_report.pdf"
})
服务器可以独立运行,但如果可用,可以选择使用以下工具:
LibreOffice(推荐):用于高质量的DOCX到PDF转换
# macOS
brew install libreoffice
# Ubuntu/Debian
sudo apt-get install libreoffice
# Windows
# 从 https://www.libreoffice.org/ 下载
PDF到图片工具(任选其一):