Skip to main content
Glama
JDJR2024

Markdownify MCP Server - UTF-8 Enhanced

by JDJR2024

pptx-to-markdown

Convert PowerPoint PPTX files into Markdown format using the UTF-8 Enhanced Markdownify MCP Server for improved multilingual compatibility.

Instructions

Convert a PPTX file to markdown

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filepathYesAbsolute path of the PPTX file to convert

Implementation Reference

  • Handler logic that executes the pptx-to-markdown tool by calling Markdownify.toMarkdown on the provided filepath.
    case tools.PDFToMarkdownTool.name:
    case tools.ImageToMarkdownTool.name:
    case tools.AudioToMarkdownTool.name:
    case tools.DocxToMarkdownTool.name:
    case tools.XlsxToMarkdownTool.name:
    case tools.PptxToMarkdownTool.name:
      if (!validatedArgs.filepath) {
        throw new Error("File path is required for this tool");
      }
      result = await Markdownify.toMarkdown({
        filePath: validatedArgs.filepath,
        projectRoot: validatedArgs.projectRoot,
        uvPath: validatedArgs.uvPath || process.env.UV_PATH,
      });
  • Schema definition for the pptx-to-markdown tool, including input validation for filepath.
    export const PptxToMarkdownTool = ToolSchema.parse({
      name: "pptx-to-markdown",
      description: "Convert a PPTX file to markdown",
      inputSchema: {
        type: "object",
        properties: {
          filepath: {
            type: "string",
            description: "Absolute path of the PPTX file to convert",
          },
        },
        required: ["filepath"],
      },
    });
  • src/server.ts:31-35 (registration)
    Registration of the pptx-to-markdown tool (and others) by listing all tools from the tools module in the ListTools response.
    server.setRequestHandler(ListToolsRequestSchema, async () => {
      return {
        tools: Object.values(tools),
      };
    });
  • Helper function Markdownify.toMarkdown that performs the actual PPTX to markdown conversion using the markitdown executable.
    static async toMarkdown({
      filePath,
      url,
      projectRoot = path.resolve(__dirname, ".."),
      uvPath = "~/.local/bin/uv",
    }: {
      filePath?: string;
      url?: string;
      projectRoot?: string;
      uvPath?: string;
    }): Promise<MarkdownResult> {
      try {
        let inputPath: string;
        let isTemporary = false;
    
        if (url) {
          const response = await fetch(url);
          const content = await response.text();
          inputPath = await this.saveToTempFile(content);
          isTemporary = true;
        } else if (filePath) {
          inputPath = filePath;
        } else {
          throw new Error("Either filePath or url must be provided");
        }
    
        const text = await this._markitdown(inputPath, projectRoot, uvPath);
        const outputPath = await this.saveToTempFile(text);
    
        if (isTemporary) {
          fs.unlinkSync(inputPath);
        }
    
        return { path: outputPath, text };
      } catch (e: unknown) {
        if (e instanceof Error) {
          throw new Error(`Error processing to Markdown: ${e.message}`);
        } else {
          throw new Error("Error processing to Markdown: Unknown error occurred");
        }
      }
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Related Tools

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/JDJR2024/markdownify-mcp-utf8'

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