如何搭建网站,常州云之家网站建设网络公司怎么样,vs做网站mvc,成都建设信息网官网一、项目背景
本文分享一个基于 FastMCP 框架实现的文档处理服务#xff0c;可实现 Word 文档#xff08;.docx#xff09;与 JSON 数据格式的双向转换。通过此服务#xff0c;开发者可以轻松实现文档内容提取、结构化数据填充、样式模板复用等功能#xff0c;适用于自动…一、项目背景
本文分享一个基于 FastMCP 框架实现的文档处理服务可实现 Word 文档.docx与 JSON 数据格式的双向转换。通过此服务开发者可以轻松实现文档内容提取、结构化数据填充、样式模板复用等功能适用于自动化报告生成、数据导入导出等场景。
二、核心代码解析
1. 服务端实现my_server.py
import json
from fastmcp import FastMCP
from wan_neng_copy_word import clone_document as word_to_dict
from wan_neng_copy_word_pro import clone_document
from wan_neng_copy_word import clone_document as get_para_style
from gen_all_styles import gen_all_stylesmcp FastMCP(nameMyServer)# 基础问候工具
mcp.tool
def greet(name: str) - str:Greet a user by name.return fHello, {name}!# Word 转 JSON 工具
mcp.tool
def word_to_json(word_path: str) - str:Convert a word document to json.body_s, body_p word_to_dict(word_path)return json.dumps(body_p)# JSON 转 Word 工具
mcp.tool
def json_to_word(word_path: str, json_data: str) - str:Convert a json to word document.try:body_ws, _ get_para_style(demo_template.docx)except:gen_all_styles()body_ws, _ get_para_style(demo_template.docx)body_s, _ get_para_style(word_path)clone_document(body_s, json.loads(json_data), body_ws, cloned_example.docx)return cloned_example.docx# 启动 MCP 服务
if __name__ __main__:mcp.run(transportstreamable-http, host127.0.0.1, port9000)关键组件说明
FastMCP基于 MCP 协议的服务框架提供工具注册与调用能力wan_neng_copy_word 系列模块实现 Word 文档解析与生成的核心逻辑gen_all_styles样式模板生成工具双向转换逻辑 word_to_json提取文档内容结构并序列化为 JSONjson_to_word应用模板样式生成新文档
2. 客户端测试代码
import asyncio
from fastmcp import Client# MCP 服务配置
config {mcpServers: {document-service: {url: http://127.0.0.1:9000/mcp,transport: streamable-http}}
}# 创建客户端实例
client Client(config)async def main():async with client:# 读取 JSON 数据with open(1.json, r, encodingutf-8) as f:body_p f.read()# 调用 JSON 转 Word 工具result await client.call_tool(json_to_word, {word_path: 1.docx, json_data: body_p})print(f生成文档路径: {result})if __name__ __main__:asyncio.run(main())三、运行环境要求
Python 3.8 环境依赖库安装pip install fastmcp python-docx文件依赖 demo_template.docx样式模板1.docx输入文档1.json结构化数据
四、功能演示流程
启动服务python my_server.py执行客户端测试python client_test.py输出结果 生成 cloned_example.docx 文档验证文档内容与原始模板样式的一致性
五、应用场景
自动化报告生成通过 API 动态填充数据到预设模板文档结构分析提取 Word 内容进行 NLP 处理跨格式转换作为其他格式如 Markdown、HTML转换的中间层样式统一管理基于模板批量生成标准化文档
六、注意事项
文件路径问题确保工作目录包含所需模板文件异常处理增强建议# 可扩展的异常处理示例
try:# 文件操作代码
except FileNotFoundError as e:return {error: fMissing file: {str(e)}}
except json.JSONDecodeError:return {error: Invalid JSON input}性能优化方向 添加缓存机制复用样式模板支持异步文件读写实现流式传输处理大文件
七、扩展建议
添加文件校验模块def validate_word_file(path):if not os.path.exists(path):raise ValueError(Template file not found)if not path.endswith(.docx):raise ValueError(Invalid file format)支持更多格式转换 集成 pandoc 实现多格式转换添加 PDF 导出功能 API 接口增强 添加文件上传下载接口实现任务队列异步处理
该实现展示了如何通过 MCP 协议构建文档处理服务开发者可根据实际需求扩展更多文档操作功能。完整项目代码需注意分离服务端/客户端模块并完善错误处理机制。