Skip to main content
Glama
batch.py3.6 kB
"""Word 批量操作工具.""" from typing import Any, List, Optional from fastmcp import FastMCP from loguru import logger from office_mcp_server.handlers.word_handler import WordHandler def register_batch_tools(mcp: FastMCP, word_handler: WordHandler) -> None: """注册 Word 批量操作工具.""" @mcp.tool() def batch_replace_word_text( filenames: List[str], search_text: str, replace_text: str, ) -> dict[str, Any]: """批量替换多个 Word 文档中的文本. Args: filenames: 文件名列表 search_text: 要查找的文本 replace_text: 替换为的文本 Returns: dict: 批量操作结果 """ logger.info(f"MCP工具调用: batch_replace_word_text(files={len(filenames)})") return word_handler.batch_replace_text(filenames, search_text, replace_text) @mcp.tool() def batch_apply_word_style( filenames: List[str], style_name: str, apply_to: str = "body", ) -> dict[str, Any]: """批量应用样式到多个 Word 文档. Args: filenames: 文件名列表 style_name: 样式名称 apply_to: 应用范围 ('body'正文 或 'headings'标题) Returns: dict: 批量操作结果 """ logger.info(f"MCP工具调用: batch_apply_word_style(files={len(filenames)})") return word_handler.batch_apply_style(filenames, style_name, apply_to) @mcp.tool() def merge_word_documents( source_filenames: List[str], output_filename: str, add_page_breaks: bool = True, ) -> dict[str, Any]: """合并多个 Word 文档. Args: source_filenames: 源文件名列表 output_filename: 输出文件名 add_page_breaks: 是否在文档间添加分页符 (默认 True) Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: merge_word_documents(sources={len(source_filenames)})") return word_handler.merge_documents(source_filenames, output_filename, add_page_breaks) @mcp.tool() def batch_add_word_header_footer(filenames: List[str], header_text: Optional[str] = None, footer_text: Optional[str] = None, add_page_number: bool = False) -> dict[str, Any]: """批量添加页眉页脚到多个 Word 文档. Args: filenames: 文件名列表 header_text: 页眉文本 (可选) footer_text: 页脚文本 (可选) add_page_number: 是否添加页码 (默认 False) Returns: dict: 批量操作结果 """ logger.info(f"MCP工具调用: batch_add_word_header_footer(files={len(filenames)})") return word_handler.batch_add_header_footer(filenames, header_text, footer_text, add_page_number) @mcp.tool() def batch_insert_word_content(filenames: List[str], content: str, position: str = "end", paragraph_index: Optional[int] = None) -> dict[str, Any]: """批量插入内容到多个 Word 文档. Args: filenames: 文件名列表 content: 要插入的内容 position: 插入位置 ('start', 'end', 'index') paragraph_index: 段落索引 (当 position='index' 时使用) Returns: dict: 批量操作结果 """ logger.info(f"MCP工具调用: batch_insert_word_content(files={len(filenames)})") return word_handler.batch_insert_content(filenames, content, position, paragraph_index)

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