Skip to main content
Glama
basic.py3.48 kB
"""PowerPoint 基础操作工具.""" from typing import Any, Optional from fastmcp import FastMCP from loguru import logger from office_mcp_server.handlers.ppt_handler import PowerPointHandler def register_basic_tools(mcp: FastMCP, ppt_handler: PowerPointHandler) -> None: """注册 PowerPoint 基础操作工具.""" @mcp.tool() def create_powerpoint_presentation( filename: str, title: str = "", template_path: Optional[str] = None ) -> dict[str, Any]: """创建 PowerPoint 演示文稿. Args: filename: 文件名 (如 'presentation.pptx') title: 演示标题 (可选) template_path: 模板文件路径 (可选,如果提供则基于模板创建) Returns: dict: 操作结果,包含文件路径和状态 """ logger.info(f"MCP工具调用: create_powerpoint_presentation(filename={filename}, template={template_path})") return ppt_handler.create_presentation(filename, title, template_path) @mcp.tool() def add_slide_to_ppt( filename: str, layout_index: int = 1, title: str = "" ) -> dict[str, Any]: """向 PowerPoint 演示文稿添加幻灯片. Args: filename: 文件名 layout_index: 布局索引 (0-标题页, 1-标题和内容, 默认 1) title: 幻灯片标题 (可选) Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: add_slide_to_ppt(filename={filename})") return ppt_handler.add_slide(filename, layout_index, title) @mcp.tool() def get_ppt_presentation_info(filename: str) -> dict[str, Any]: """获取 PowerPoint 演示文稿信息. Args: filename: 文件名 Returns: dict: 演示文稿信息 (幻灯片数量等) """ logger.info(f"MCP工具调用: get_ppt_presentation_info(filename={filename})") return ppt_handler.get_presentation_info(filename) @mcp.tool() def delete_ppt_slide(filename: str, slide_index: int) -> dict[str, Any]: """删除 PowerPoint 幻灯片. Args: filename: 文件名 slide_index: 幻灯片索引 (从0开始) Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: delete_ppt_slide(filename={filename}, slide={slide_index})") return ppt_handler.delete_slide(filename, slide_index) @mcp.tool() def move_ppt_slide( filename: str, from_index: int, to_index: int ) -> dict[str, Any]: """移动 PowerPoint 幻灯片位置. Args: filename: 文件名 from_index: 源位置索引 (从0开始) to_index: 目标位置索引 Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: move_ppt_slide(filename={filename}, from={from_index}, to={to_index})") return ppt_handler.move_slide(filename, from_index, to_index) @mcp.tool() def duplicate_ppt_slide(filename: str, slide_index: int) -> dict[str, Any]: """复制 PowerPoint 幻灯片. Args: filename: 文件名 slide_index: 幻灯片索引 (从0开始) Returns: dict: 操作结果 """ logger.info(f"MCP工具调用: duplicate_ppt_slide(filename={filename}, slide={slide_index})") return ppt_handler.duplicate_slide(filename, slide_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