{
  "$schema": "https://raw.githubusercontent.com/anthropics/dxt/main/dist/mcpb-manifest.schema.json",
  "manifest_version": "0.3",
  "name": "gogcli-mcp",
  "display_name": "gogcli",
  "version": "2.18.3",
  "description": "Google Sheets (and more) for Claude via gogcli — read, write, and manage spreadsheets",
  "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",
    "sheets",
    "spreadsheet",
    "gmail",
    "calendar",
    "drive",
    "gogcli",
    "gog"
  ],
  "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}"
      }
    }
  },
  "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
    }
  },
  "tools": [
    {
      "name": "gog_api_list",
      "description": "List the Google Discovery APIs available for generic api calls."
    },
    {
      "name": "gog_api_describe",
      "description": "Describe a Google Discovery API or one of its methods (params, schema, scopes)."
    },
    {
      "name": "gog_api_call",
      "description": "Call any Discovery-described Google API method (escape hatch; write opt-in + dry-run)."
    },
    {
      "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_gmail_search",
      "description": "Search Gmail threads by query"
    },
    {
      "name": "gog_gmail_get",
      "description": "Get a Gmail message by ID"
    },
    {
      "name": "gog_gmail_send",
      "description": "Send an email"
    },
    {
      "name": "gog_gmail_run",
      "description": "Run any gog gmail subcommand (escape hatch)"
    },
    {
      "name": "gog_calendar_events",
      "description": "List calendar events with optional filters"
    },
    {
      "name": "gog_calendar_get",
      "description": "Get a specific calendar event"
    },
    {
      "name": "gog_calendar_create",
      "description": "Create a calendar event"
    },
    {
      "name": "gog_calendar_update",
      "description": "Update an existing calendar event"
    },
    {
      "name": "gog_calendar_delete",
      "description": "Delete a calendar event"
    },
    {
      "name": "gog_calendar_respond",
      "description": "Respond to a calendar event invitation"
    },
    {
      "name": "gog_calendar_run",
      "description": "Run any gog calendar subcommand (escape hatch)"
    },
    {
      "name": "gog_classroom_courses_list",
      "description": "List Google Classroom courses"
    },
    {
      "name": "gog_classroom_courses_get",
      "description": "Get a single course by ID"
    },
    {
      "name": "gog_classroom_students_list",
      "description": "List students in a course"
    },
    {
      "name": "gog_classroom_students_get",
      "description": "Get a specific student"
    },
    {
      "name": "gog_classroom_teachers_list",
      "description": "List teachers in a course"
    },
    {
      "name": "gog_classroom_teachers_get",
      "description": "Get a specific teacher"
    },
    {
      "name": "gog_classroom_roster",
      "description": "List the full course roster (students and/or teachers)"
    },
    {
      "name": "gog_classroom_coursework_list",
      "description": "List coursework (assignments) for a course"
    },
    {
      "name": "gog_classroom_coursework_get",
      "description": "Get a single coursework item"
    },
    {
      "name": "gog_classroom_submissions_list",
      "description": "List student submissions for coursework"
    },
    {
      "name": "gog_classroom_submissions_get",
      "description": "Get a single submission"
    },
    {
      "name": "gog_classroom_submissions_grade",
      "description": "Grade a submission"
    },
    {
      "name": "gog_classroom_submissions_return",
      "description": "Return a graded submission"
    },
    {
      "name": "gog_classroom_submissions_turn_in",
      "description": "Turn in a submission (student action)"
    },
    {
      "name": "gog_classroom_submissions_reclaim",
      "description": "Reclaim a turned-in submission (student action)"
    },
    {
      "name": "gog_classroom_announcements_list",
      "description": "List announcements"
    },
    {
      "name": "gog_classroom_announcements_get",
      "description": "Get an announcement"
    },
    {
      "name": "gog_classroom_announcements_create",
      "description": "Create an announcement"
    },
    {
      "name": "gog_classroom_topics_list",
      "description": "List topics in a course"
    },
    {
      "name": "gog_classroom_topics_get",
      "description": "Get a topic"
    },
    {
      "name": "gog_classroom_invitations_list",
      "description": "List classroom invitations"
    },
    {
      "name": "gog_classroom_invitations_get",
      "description": "Get an invitation"
    },
    {
      "name": "gog_classroom_invitations_accept",
      "description": "Accept an invitation"
    },
    {
      "name": "gog_classroom_profile_get",
      "description": "Get a classroom user profile (omit userId for self)"
    },
    {
      "name": "gog_classroom_run",
      "description": "Run any gog classroom subcommand (escape hatch)"
    },
    {
      "name": "gog_drive_ls",
      "description": "List files in a Google Drive folder"
    },
    {
      "name": "gog_drive_search",
      "description": "Search Google Drive files"
    },
    {
      "name": "gog_drive_extract_text",
      "description": "Extract readable text from a Drive PDF/image/doc (OCR-converts, returns text; no host FS)"
    },
    {
      "name": "gog_drive_read_bytes",
      "description": "Fetch a Drive file's raw bytes as a base64 resource (local stdio only; connector returns text-only notice)"
    },
    {
      "name": "gog_drive_get",
      "description": "Get Google Drive file metadata"
    },
    {
      "name": "gog_drive_mkdir",
      "description": "Create a folder in Google Drive"
    },
    {
      "name": "gog_drive_rename",
      "description": "Rename a file or folder in Google Drive"
    },
    {
      "name": "gog_drive_move",
      "description": "Move a file to a different folder"
    },
    {
      "name": "gog_drive_delete",
      "description": "Move a file to trash"
    },
    {
      "name": "gog_drive_share",
      "description": "Share a file or folder"
    },
    {
      "name": "gog_drive_run",
      "description": "Run any gog drive subcommand (escape hatch)"
    },
    {
      "name": "gog_tasks_lists",
      "description": "List all Google Task lists"
    },
    {
      "name": "gog_tasks_list",
      "description": "List tasks in a task list"
    },
    {
      "name": "gog_tasks_get",
      "description": "Get a specific task"
    },
    {
      "name": "gog_tasks_add",
      "description": "Add a task to a task list"
    },
    {
      "name": "gog_tasks_done",
      "description": "Mark a task as completed"
    },
    {
      "name": "gog_tasks_delete",
      "description": "Delete a task"
    },
    {
      "name": "gog_tasks_run",
      "description": "Run any gog tasks subcommand (escape hatch)"
    },
    {
      "name": "gog_contacts_search",
      "description": "Search Google Contacts"
    },
    {
      "name": "gog_contacts_list",
      "description": "List all Google Contacts"
    },
    {
      "name": "gog_contacts_get",
      "description": "Get a contact by resource name"
    },
    {
      "name": "gog_contacts_create",
      "description": "Create a new Google Contact"
    },
    {
      "name": "gog_contacts_run",
      "description": "Run any gog contacts subcommand (escape hatch)"
    },
    {
      "name": "gog_docs_info",
      "description": "Get Google Doc metadata (title, ID, properties)"
    },
    {
      "name": "gog_docs_cat",
      "description": "Read a Google Doc as plain text"
    },
    {
      "name": "gog_docs_create",
      "description": "Create a new Google Doc"
    },
    {
      "name": "gog_docs_write",
      "description": "Write or append text content to a Google Doc"
    },
    {
      "name": "gog_docs_find_replace",
      "description": "Find and replace text in a Google Doc"
    },
    {
      "name": "gog_docs_structure",
      "description": "Show document structure with numbered paragraphs"
    },
    {
      "name": "gog_docs_run",
      "description": "Run any gog docs subcommand (escape hatch)"
    },
    {
      "name": "gog_sheets_get",
      "description": "Read values from a Google Sheets range"
    },
    {
      "name": "gog_sheets_update",
      "description": "Write values to a Google Sheets range"
    },
    {
      "name": "gog_sheets_append",
      "description": "Append rows to a Google Sheet"
    },
    {
      "name": "gog_sheets_clear",
      "description": "Clear values in a Google Sheets range"
    },
    {
      "name": "gog_sheets_metadata",
      "description": "Get spreadsheet metadata (title, tabs, named ranges)"
    },
    {
      "name": "gog_sheets_create",
      "description": "Create a new Google Spreadsheet"
    },
    {
      "name": "gog_sheets_find_replace",
      "description": "Find and replace text across a spreadsheet"
    },
    {
      "name": "gog_sheets_run",
      "description": "Run any gog sheets subcommand (escape hatch)"
    },
    {
      "name": "gog_slides_export",
      "description": "Export a Google Slides presentation to pdf or pptx"
    },
    {
      "name": "gog_slides_info",
      "description": "Get metadata for a Google Slides presentation"
    },
    {
      "name": "gog_slides_create",
      "description": "Create a new Google Slides presentation"
    },
    {
      "name": "gog_slides_copy",
      "description": "Copy a Google Slides presentation"
    },
    {
      "name": "gog_slides_list_slides",
      "description": "List slides in a presentation"
    },
    {
      "name": "gog_slides_read_slide",
      "description": "Read the content of a slide"
    },
    {
      "name": "gog_slides_run",
      "description": "Run any gog slides subcommand (escape hatch)"
    }
  ],
  "compatibility": {
    "platforms": [
      "darwin",
      "linux",
      "win32"
    ],
    "runtimes": {
      "node": ">=18.0.0"
    }
  }
}
