{
  "$schema": "https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json",
  "manifest_version": "0.3",
  "name": "gogcli-mcp-slides",
  "display_name": "gogcli (Slides)",
  "version": "4.5.1",
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
  "author": {
    "name": "Chris Hall",
    "email": "chris.c.hall@gmail.com",
    "url": "https://github.com/chrischall"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/chrischall/gogcli-mcp"
  },
  "homepage": "https://github.com/chrischall/gogcli-mcp",
  "support": "https://github.com/chrischall/gogcli-mcp/issues",
  "license": "MIT",
  "keywords": [
    "google",
    "slides",
    "presentations",
    "gogcli",
    "gog",
    "markdown",
    "templates",
    "pdf",
    "pptx"
  ],
  "server": {
    "type": "node",
    "entry_point": "dist/index.js",
    "mcp_config": {
      "command": "node",
      "args": [
        "${__dirname}/dist/index.js"
      ],
      "env": {
        "GOG_ACCOUNT": "${user_config.gog_account}",
        "GOG_PATH": "${user_config.gog_path}",
        "GOG_FILE_ROOTS": "${user_config.gog_file_roots}"
      }
    }
  },
  "user_config": {
    "gog_account": {
      "type": "string",
      "title": "Google Account",
      "description": "Default Google account email (optional — uses gogcli's configured default if omitted)",
      "required": false
    },
    "gog_path": {
      "type": "string",
      "title": "gog Executable Path",
      "description": "Path to the gog executable (optional — defaults to 'gog' on your PATH)",
      "required": false
    },
    "gog_file_roots": {
      "type": "string",
      "title": "Allowed file directories",
      "description": "Directories tools may read files from (attachments, uploads) or write files to (exports, downloads), separated by ':' (';' on Windows). Optional — defaults to ~/gogcli-mcp-files",
      "required": false
    }
  },
  "tools": [
    {
      "name": "gog_auth_add",
      "description": "Authorize a Google account via browser-based OAuth"
    },
    {
      "name": "gog_auth_health",
      "description": "Live per-account token health: validity, age, and pre-expiry warnings (detects invalid_grant)"
    },
    {
      "name": "gog_auth_add_url",
      "description": "Begin remote/headless OAuth (step 1): return a sign-in URL to open in any browser"
    },
    {
      "name": "gog_auth_add_complete",
      "description": "Complete remote/headless OAuth (step 2): exchange the pasted redirect URL and store the token"
    },
    {
      "name": "gog_auth_list",
      "description": "List all Google accounts stored in gogcli"
    },
    {
      "name": "gog_auth_status",
      "description": "Show gogcli auth configuration (keyring, credential files)"
    },
    {
      "name": "gog_auth_services",
      "description": "List Google services and OAuth scopes supported by gogcli"
    },
    {
      "name": "gog_auth_run",
      "description": "Run any gog auth subcommand (escape hatch)"
    },
    {
      "name": "gog_slides_export",
      "description": "Export a presentation to pdf or pptx"
    },
    {
      "name": "gog_slides_info",
      "description": "Get metadata for a presentation"
    },
    {
      "name": "gog_slides_create",
      "description": "Create a new presentation"
    },
    {
      "name": "gog_slides_create_from_markdown",
      "description": "Create a new presentation from markdown content"
    },
    {
      "name": "gog_slides_create_from_template",
      "description": "Create from a template with placeholder replacements"
    },
    {
      "name": "gog_slides_copy",
      "description": "Copy a presentation"
    },
    {
      "name": "gog_slides_add_slide",
      "description": "Add a slide from a local image"
    },
    {
      "name": "gog_slides_insert_image",
      "description": "Place a sized, positioned local image on an existing slide"
    },
    {
      "name": "gog_slides_list_slides",
      "description": "List slides in a presentation"
    },
    {
      "name": "gog_slides_delete_slide",
      "description": "Delete a slide"
    },
    {
      "name": "gog_slides_skip_slide",
      "description": "Skip a slide during presentation without removing it from the deck"
    },
    {
      "name": "gog_slides_unskip_slide",
      "description": "Include a previously skipped slide again when presenting"
    },
    {
      "name": "gog_slides_read_slide",
      "description": "Read the content of a slide"
    },
    {
      "name": "gog_slides_update_notes",
      "description": "Update speaker notes on a slide"
    },
    {
      "name": "gog_slides_replace_slide",
      "description": "Replace the image on an existing slide (local file or public URL)"
    },
    {
      "name": "gog_slides_raw",
      "description": "Dump the raw Google Slides API response as JSON (lossless)."
    },
    {
      "name": "gog_slides_locate",
      "description": "Locate text in shapes and table cells with object IDs and UTF-16 ranges."
    },
    {
      "name": "gog_slides_thumbnail",
      "description": "Get or download a rendered thumbnail image for a slide."
    },
    {
      "name": "gog_slides_new_slide",
      "description": "Create a native themed slide with a predefined or custom layout."
    },
    {
      "name": "gog_slides_duplicate_slide",
      "description": "Duplicate a slide by object ID at a zero-based index."
    },
    {
      "name": "gog_slides_move_slide",
      "description": "Move a slide to a zero-based insertion index."
    },
    {
      "name": "gog_slides_insert_text",
      "description": "Insert text into a shape or table cell by object ID."
    },
    {
      "name": "gog_slides_style_text",
      "description": "Apply range-scoped text styling to one page element."
    },
    {
      "name": "gog_slides_link",
      "description": "Apply or clear a hyperlink on a text range in one element."
    },
    {
      "name": "gog_slides_bullets",
      "description": "Turn paragraph bullets on or off for a text range."
    },
    {
      "name": "gog_slides_replace_text",
      "description": "Scoped find-and-replace (object, slides, or whole presentation)."
    },
    {
      "name": "gog_slides_element_create_shape",
      "description": "Create a native shape on a slide."
    },
    {
      "name": "gog_slides_element_create_line",
      "description": "Create a native line on a slide."
    },
    {
      "name": "gog_slides_element_style",
      "description": "Style a shape fill/outline or a line."
    },
    {
      "name": "gog_slides_element_transform",
      "description": "Move, resize, rotate, or shear a page element."
    },
    {
      "name": "gog_slides_element_z_order",
      "description": "Change element stacking order."
    },
    {
      "name": "gog_slides_element_group",
      "description": "Group two or more page elements."
    },
    {
      "name": "gog_slides_element_ungroup",
      "description": "Ungroup one or more element groups."
    },
    {
      "name": "gog_slides_element_alt_text",
      "description": "Set or clear element accessibility title/description."
    },
    {
      "name": "gog_slides_element_delete",
      "description": "Delete one page element by object ID."
    },
    {
      "name": "gog_slides_table_create",
      "description": "Create an auto-sized native table on a slide."
    },
    {
      "name": "gog_slides_table_cell_style",
      "description": "Style one zero-based table cell (fill, alignment, text)."
    },
    {
      "name": "gog_slides_table_border_style",
      "description": "Style borders around or within a table cell range."
    },
    {
      "name": "gog_slides_table_column_insert",
      "description": "Insert columns left or right of a zero-based column."
    },
    {
      "name": "gog_slides_table_column_delete",
      "description": "Delete the column containing a zero-based cell."
    },
    {
      "name": "gog_slides_table_column_size",
      "description": "Set a table column's width."
    },
    {
      "name": "gog_slides_table_row_insert",
      "description": "Insert rows above or below a zero-based row."
    },
    {
      "name": "gog_slides_table_row_delete",
      "description": "Delete the row containing a zero-based cell."
    },
    {
      "name": "gog_slides_table_row_size",
      "description": "Set a table row's minimum height."
    },
    {
      "name": "gog_slides_table_merge",
      "description": "Merge a rectangular table cell range."
    },
    {
      "name": "gog_slides_table_unmerge",
      "description": "Unmerge a rectangular range of merged cells."
    },
    {
      "name": "gog_slides_run",
      "description": "Run any gog slides subcommand (escape hatch)"
    }
  ],
  "compatibility": {
    "platforms": [
      "darwin",
      "linux",
      "win32"
    ],
    "runtimes": {
      "node": ">=22.0.0"
    }
  }
}
