Skip to main content
Glama
structure.py3.32 kB
"""Word 文档结构操作工具.""" from typing import Any, Optional from fastmcp import FastMCP from loguru import logger from office_mcp_server.handlers.word_handler import WordHandler def register_structure_tools(mcp: FastMCP, word_handler: WordHandler) -> None: """注册 Word 文档结构操作工具.""" @mcp.tool() def generate_word_table_of_contents( filename: str, title: str = "目录", max_level: int = 3, hyperlink: bool = True, insert_position: Optional[int] = None, ) -> dict[str, Any]: """生成 Word 文档目录. Args: filename: 文件名 title: 目录标题 (默认 '目录') max_level: 最大标题级别 (1-9, 默认 3) hyperlink: 是否包含超链接样式 (默认 True) insert_position: 插入位置(段落索引,None表示在文档开头) Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: generate_word_table_of_contents(filename={filename}, insert_position={insert_position})") return word_handler.generate_table_of_contents(filename, title, max_level, hyperlink, insert_position) @mcp.tool() def add_word_comment( filename: str, paragraph_index: int, comment_text: str, author: str = "User", date: Optional[str] = None, ) -> dict[str, Any]: """添加 Word 文档批注. Args: filename: 文件名 paragraph_index: 段落索引(从0开始) comment_text: 批注内容 author: 作者名称(默认 'User') date: 日期(可选,格式 'YYYY-MM-DD') Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: add_word_comment(filename={filename})") return word_handler.add_comment(filename, paragraph_index, comment_text, author, date) @mcp.tool() def split_word_document( filename: str, split_by: str = "page", output_dir: Optional[str] = None, ) -> dict[str, Any]: """拆分 Word 文档. Args: filename: 文件名 split_by: 拆分方式 ('page'按页, 'section'按节, 'heading'按标题, 默认 'page') output_dir: 输出目录 (可选,默认为源文件目录) Returns: dict: 拆分后的文件列表 """ logger.info(f"MCP工具调用: split_word_document(filename={filename})") return word_handler.split_document(filename, split_by, output_dir) @mcp.tool() def insert_datetime_field_to_word(filename: str, paragraph_index: int, format_string: str = "yyyy-MM-dd", field_type: str = "date") -> dict[str, Any]: """向 Word 文档插入日期时间域. Args: filename: 文件名 paragraph_index: 段落索引 format_string: 格式字符串 (默认 'yyyy-MM-dd') field_type: 域类型 ('date'日期, 'time'时间, 'datetime'日期时间) Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: insert_datetime_field_to_word(filename={filename})") return word_handler.insert_datetime_field(filename, paragraph_index, format_string, field_type)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/walkingzzzy/office-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server