Skip to main content
Glama

mcp-google-sheets

Лицензия GitHubСтатус рабочего процесса действий GitHub


🤔 Что это?

mcp-google-sheets — это MCP-сервер на основе Python, который действует как мост между любым MCP-совместимым клиентом (например, Claude Desktop) и API Google Sheets. Он позволяет вам взаимодействовать с вашими Google Spreadsheets с помощью определенного набора инструментов, обеспечивая мощные рабочие процессы автоматизации и обработки данных, управляемые ИИ.

🚀 Быстрый старт (использование uvx )

По сути сервер работает в одной строке: uvx mcp-google-sheets .

Этот cmd автоматически загрузит последний код, если необходимо, и запустит его. Однако для настройки Google Cloud требуется выполнить довольно много шагов, пожалуйста, прочтите шаги ниже.

  1. ☁️ Предварительное условие: настройка Google Cloud
  2. 🐍 Установить uv
    • uvx является частью uv , быстрого установщика и резолвера пакетов Python. Установите его, если вы еще этого не сделали:
      # macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # Or using pip: # pip install uv
      При необходимости следуйте инструкциям в выходных данных установщика, чтобы добавить uv в PATH.
  3. 🔑 Установите основные переменные среды (рекомендуется учетная запись службы)
    • Вам нужно указать серверу, как аутентифицироваться. Установите эти переменные в вашем терминале:
    • (Linux/macOS)
      # Replace with YOUR actual path and folder ID from the Google Setup step export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json" export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (Команда Windows)
      set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json" set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (Windows PowerShell)
      $env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json" $env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID"
    • ➡️ См. Подробную аутентификацию и переменные среды для других параметров (OAuth, CREDENTIALS_CONFIG ).
  4. 🏃 Запустите сервер!
    • uvx автоматически загрузит и запустит последнюю версию mcp-google-sheets :
      uvx mcp-google-sheets
    • Сервер запустится и распечатает журналы, указывающие на его готовность.
  5. 🔌 Подключите свой MCP-клиент
    • Настройте свой клиент (например, Claude Desktop) для подключения к работающему серверу.
    • В зависимости от используемого вами клиента, вам может не понадобиться шаг 4, поскольку клиент может запустить сервер для вас. Но это хорошая практика, чтобы в любом случае выполнить тестовый запуск шага 4, чтобы убедиться, что все настроено правильно.
    • ➡️ Примеры см. в разделе Использование с Claude Desktop .

Вы готовы! Начните отдавать команды через свой клиент MCP.


✨ Основные характеристики

  • Полная интеграция: прямое подключение к API Google Диска и Google Таблиц.
  • Комплексный инструментарий: предлагает широкий спектр операций (CRUD, листинг, пакетная обработка, совместное использование, форматирование и т. д.).
  • Гибкая аутентификация: поддерживает учетные записи служб (рекомендуется) , OAuth 2.0 и прямое введение учетных данных через переменные среды.
  • Простота развертывания: мгновенный запуск с помощью uvx (не требует установки) или клонирование для разработки с помощью uv .
  • AI-Ready: разработан для использования с MCP-совместимыми клиентами, обеспечивая взаимодействие с электронными таблицами на естественном языке.

🛠️ Доступные инструменты и ресурсы

Этот сервер предоставляет следующие инструменты для взаимодействия с Google Таблицами:

(Входные параметры обычно представляют собой строки, если не указано иное)

  • list_spreadsheets : выводит список электронных таблиц в настроенной папке Диска (учетная запись службы) или доступных пользователю (OAuth).
    • Возвращает: Список объектов [{id: string, title: string}]
  • create_spreadsheet : Создает новую электронную таблицу.
    • title (строка): Желаемый заголовок.
    • Возвращает: объект с данными электронной таблицы, включая spreadsheetId .
  • get_sheet_data : считывает данные из диапазона на листе.
    • spreadsheet_id (строка)
    • sheet (строка): Название листа.
    • range (необязательная строка): нотация A1 (например, 'A1:C10' , 'Sheet1!B2:D' ). Если пропущено, считывается весь лист.
    • Возвращает: двумерный массив значений ячеек.
  • get_sheet_formulas : Считывает формулы из диапазона на листе.
    • spreadsheet_id (строка)
    • sheet (строка): Название листа.
    • range (необязательная строка): нотация A1 (например, 'A1:C10' , 'Sheet1!B2:D' ). Если пропущено, считывается весь лист.
    • Возвращает: двумерный массив формул ячеек.
  • update_cells : Записывает данные в указанный диапазон. Перезаписывает существующие данные.
    • spreadsheet_id (строка)
    • sheet (строка)
    • range (строка): нотация A1.
    • data (двумерный массив): значения для записи.
    • Возвращает: Обновляет объект результата.
  • batch_update_cells : обновляет несколько диапазонов за один вызов API.
    • spreadsheet_id (строка)
    • sheet (строка)
    • ranges (объект): Словарное отображение строк диапазонов (нотация A1) в двумерные массивы значений { "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] } .
    • Возвращает: объект результата пакетного обновления.
  • add_rows : добавляет строки в конец листа (после последней строки с данными).
    • spreadsheet_id (строка)
    • sheet (строка)
    • data (двумерный массив): строки для добавления.
    • Возвращает: Обновляет объект результата.
  • list_sheets : выводит список всех имен листов в электронной таблице.
    • spreadsheet_id (строка)
    • Возвращает: Список строк имен листов ["Sheet1", "Sheet2"] .
  • create_sheet : добавляет новый лист (вкладку) в электронную таблицу.
    • spreadsheet_id (строка)
    • title (строка): Имя нового листа.
    • Возвращает: новый объект свойств листа.
  • get_multiple_sheet_data : извлекает данные из нескольких диапазонов в потенциально разных электронных таблицах за один вызов.
    • queries (массив объектов): каждому объекту требуются spreadsheet_id , sheet и range . [{spreadsheet_id: 'abc', sheet: 'Sheet1', range: 'A1:B2'}, ...] .
    • Возвращает: список объектов, каждый из которых содержит параметры запроса и извлеченные data или error .
  • get_multiple_spreadsheet_summary : получает заголовки, имена листов, верхние колонтитулы и первые несколько строк для нескольких электронных таблиц.
    • spreadsheet_ids (массив строк)
    • rows_to_fetch (необязательное целое число, по умолчанию 5): количество строк (включая заголовок) для предварительного просмотра.
    • Возвращает: список сводных объектов для каждой электронной таблицы.
  • share_spreadsheet : предоставляет общий доступ к электронной таблице указанным пользователям/адресам электронной почты и ролям.
    • spreadsheet_id (строка)
    • recipients (массив объектов): [{email_address: 'user@example.com', role: 'writer'}, ...] . Роли: reader , commenter , writer .
    • send_notification (необязательное логическое значение, по умолчанию True): отправлять уведомления по электронной почте.
    • Возвращает: Словарь со списками successes и failures .
  • add_columns : добавляет столбцы на лист. (Проверьте параметры, если они реализованы)
  • copy_sheet : Дублирует лист в электронной таблице. (Проверьте параметры, если они реализованы)
  • rename_sheet : переименовывает существующий лист. (Проверьте параметры, если они реализованы)

Ресурсы МКП:

  • spreadsheet://{spreadsheet_id}/info : получение основных метаданных о таблице Google.
    • Возвращает: строку JSON с информацией электронной таблицы.

☁️ Настройка Google Cloud Platform (подробно)

Эту настройку необходимо выполнить перед запуском сервера.

  1. Создайте/выберите проект GCP: перейдите в Google Cloud Console .
  2. Включить API: Перейдите в «API и службы» -> «Библиотека». Найдите и включите:
    • Google Sheets API
    • Google Drive API
  3. Настройте учетные данные: Вам необходимо выбрать один из методов аутентификации ниже (рекомендуется использовать учетную запись службы).

🔑 Аутентификация и переменные среды (подробно)

Серверу нужны учетные данные для доступа к API Google. Выберите один метод:

Метод A: Учетная запись службы (рекомендуется для серверов/автоматизации) ✅

  • Почему? Безголовый (браузер не нужен), безопасный, идеально подходит для серверных сред. Не истекает быстро.
  • Шаги:
    1. Создайте учетную запись службы: в консоли GCP -> «IAM и администрирование» -> «Учетные записи службы».
      • Нажмите «+ СОЗДАТЬ УЧЕТНУЮ ЗАПИСЬ СЕРВИСА». Назовите ее (например, mcp-sheets-service ).
      • Предоставление ролей: добавьте роль Editor для широкого доступа или более детализированные роли (например roles/drive.file и определенные роли Sheets) для более строгих разрешений.
      • Нажмите «Готово». Найдите учетную запись, нажмите Действия (⋮) -> «Управление ключами».
      • Нажмите «ДОБАВИТЬ КЛЮЧ» -> «Создать новый ключ» -> JSON -> «СОЗДАТЬ».
      • Загрузите и надежно сохраните файл ключа JSON.
    2. Создание и совместное использование папки Google Диска:
      • В Google Диске создайте папку (например, «AI Managed Sheets»).
      • Запишите идентификатор папки из URL-адреса: https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID .
      • Щелкните правой кнопкой мыши по папке -> «Поделиться» -> «Поделиться».
      • Введите адрес электронной почты учетной записи службы (из файла JSON client_email ).
      • Предоставить доступ редактора . Снимите флажок «Уведомить людей». Нажмите «Поделиться».
    3. Установите переменные среды:
      • SERVICE_ACCOUNT_PATH : Полный путь к загруженному файлу ключа JSON.
      • DRIVE_FOLDER_ID : идентификатор общей папки Google Диска. (См. Ultra Quick Start для примеров, специфичных для ОС)

Метод B: OAuth 2.0 (интерактивный / личное использование) 🧑‍💻

  • Зачем? Для личного использования или локальной разработки, где интерактивный вход через браузер приемлем.
  • Шаги:
    1. Настройте экран согласия OAuth: в консоли GCP -> "API и службы" -> "Экран согласия OAuth". Выберите "Внешний", заполните необходимую информацию, добавьте области действия ( .../auth/spreadsheets , .../auth/drive ), добавьте тестовых пользователей, если необходимо.
    2. Создайте идентификатор клиента OAuth: В консоли GCP -> "API и службы" -> "Учетные данные". "+ CREATE CREDENTIALS" -> "OAuth client ID" -> Тип: Desktop app . Назовите его. "CREATE". Загрузите JSON .
    3. Установите переменные среды:
      • CREDENTIALS_PATH : путь к загруженному JSON-файлу учетных данных OAuth (по умолчанию: credentials.json ).
      • TOKEN_PATH : Путь для хранения токена обновления пользователя после первого входа в систему (по умолчанию: token.json ). Должен быть доступен для записи.

Метод C: Прямое внедрение учетных данных (расширенный) 🔒

  • Почему? Полезно в средах вроде Docker, Kubernetes или CI/CD, где управление файлами затруднено, но переменные среды просты/безопасны. Избегает доступа к файловой системе.
  • Как? Вместо того, чтобы указывать путь к файлу учетных данных, вы указываете содержимое файла, закодированное в Base64, непосредственно в переменной среды.
  • Шаги:
    1. Получите файл JSON с вашими учетными данными (ключ учетной записи службы или файл идентификатора клиента OAuth). Назовем его your_credentials.json .
    2. Сгенерируйте строку Base64:
      • (Linux/macOS): base64 -w 0 your_credentials.json
      • (Windows PowerShell):
        $filePath = "C:\path\to\your_credentials.json"; # Use actual path $bytes = [System.IO.File]::ReadAllBytes($filePath); $base64 = [System.Convert]::ToBase64String($bytes); $base64 # Copy this output
      • (Внимание): Избегайте вставки конфиденциальных учетных данных в ненадежные онлайн-кодировщики.
    3. Установите переменную среды:
      • CREDENTIALS_CONFIG : задайте для этой переменной полную строку Base64, которую вы только что сгенерировали.
        # Example (Linux/macOS) - Use the actual string generated export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."

Приоритет аутентификации и сводка

Сервер проверяет учетные данные в следующем порядке:

  1. CREDENTIALS_CONFIG (содержимое Base64)
  2. SERVICE_ACCOUNT_PATH (путь к учетной записи службы JSON)
  3. CREDENTIALS_PATH (путь к OAuth JSON) — запускает интерактивный поток, если токен отсутствует или просрочен.

Краткое описание переменных среды:

ПеременнаяМетод(ы)ОписаниеПо умолчанию
SERVICE_ACCOUNT_PATHСчет обслуживанияПуть к файлу JSON-ключа учетной записи службы.-
DRIVE_FOLDER_IDСчет обслуживанияИдентификатор папки Google Диска, доступной для учетной записи сервиса.-
CREDENTIALS_PATHOAuth 2.0Путь к JSON-файлу идентификатора клиента OAuth 2.0.credentials.json
TOKEN_PATHOAuth 2.0Путь для хранения сгенерированного токена OAuth.token.json
CREDENTIALS_CONFIGУчетная запись сервиса / OAuth 2.0Строка содержимого учетных данных в формате JSON, закодированная в Base64.-

⚙️ Запуск сервера (подробно)

Метод 1: Использование uvx (рекомендуется для пользователей)

Как показано в Ultra Quick Start , это самый простой способ. Установите переменные среды, затем выполните:

uvx mcp-google-sheets

uvx временно обрабатывает загрузку и запуск пакета.

Метод 2: Для разработки (клонирование репозитория)

Если вы хотите изменить код:

  1. Клон: git clone https://github.com/yourusername/mcp-google-sheets.git && cd mcp-google-sheets (используйте реальный URL)
  2. Установите переменные среды: как описано выше.
  3. Запустить с помощью uv : (использует локальный код)
    uv run mcp-google-sheets # Or via the script name if defined in pyproject.toml, e.g.: # uv run start

🔌 Использование с Claude Desktop

Добавьте конфигурацию сервера в claude_desktop_config.json в mcpServers . Выберите блок, соответствующий вашей настройке:

{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets"], "env": { // Use ABSOLUTE paths here "SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json", "DRIVE_FOLDER_ID": "your_shared_folder_id_here" }, "healthcheck_url": "http://localhost:8000/health" // Adjust host/port if needed } } }
{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets"], "env": { // Use ABSOLUTE paths here "CREDENTIALS_PATH": "/full/path/to/your/credentials.json", "TOKEN_PATH": "/full/path/to/your/token.json" // Ensure this path is writable }, "healthcheck_url": "http://localhost:8000/health" } } }

(При первом использовании браузер может открыться для входа в Google)

{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets"], "env": { // Paste the full Base64 string here "CREDENTIALS_CONFIG": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAi...", "DRIVE_FOLDER_ID": "your_shared_folder_id_here" // Still needed for Service Account folder context }, "healthcheck_url": "http://localhost:8000/health" } } }
{ "mcpServers": { "mcp-google-sheets-dev": { // Use a distinct name "command": "uv", "args": ["run", "mcp-google-sheets"], // Assumes `mcp-google-sheets` script exists "cwd": "/full/path/to/cloned/mcp-google-sheets", // ABSOLUTE path to repo "env": { // Choose ONE auth method and set corresponding vars // Example: Service Account Path "SERVICE_ACCOUNT_PATH": "/full/path/to/cloned/mcp-google-sheets/service-account-key.json", "DRIVE_FOLDER_ID": "your_shared_folder_id_here" }, "healthcheck_url": "http://localhost:8000/health", "disabled": false } } }

💬 Примеры подсказок для Клода

После подключения попробуйте выполнить следующие подсказки:

  • «Перечислить все электронные таблицы, к которым у меня есть доступ» (или «в моей папке «Управляемые ИИ таблицы»)
  • «Создайте новую электронную таблицу под названием «Квартальный отчет о продажах за третий квартал 2024 года».
  • «В таблице «Квартальный отчет о продажах» возьмите данные из диапазона A1–E10 Листа 1».
  • «Добавьте новый лист с именем «Сводка» в электронную таблицу с идентификатором 1aBcDeFgHiJkLmNoPqRsTuVwXyZ ».
  • «В моей таблице «Задачи проекта», лист «Задачи», обновите ячейку B2 на «В процессе».
  • «Добавьте эти строки в лист «Журнал» в электронной таблице XYZ : [['2024-07-31', 'Task A Completed'], ['2024-08-01', 'Task B Started']] »
  • «Получите сводку электронных таблиц «Данные о продажах» и «Количество запасов».
  • «Поделитесь таблицей «График отпусков команды» с team@example.com как читателем и manager@example.com как писателем. Не отправляйте уведомления».

🤝 Вклад

Вклады приветствуются! Пожалуйста, откройте тему, чтобы обсудить ошибки или запросы функций. Запросы на извлечение приветствуются.


📄 Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .


🙏 Кредиты

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Сервер Model Context Protocol, который интегрируется с Google Диском и Google Таблицами, позволяя пользователям создавать, читать, обновлять и управлять электронными таблицами с помощью команд на естественном языке.

  1. 🚀 Быстрый старт (использование uvx )
    1. ✨ Основные характеристики
      1. 🛠️ Доступные инструменты и ресурсы
        1. ☁️ Настройка Google Cloud Platform (подробно)
          1. 🔑 Аутентификация и переменные среды (подробно)
            1. Метод A: Учетная запись службы (рекомендуется для серверов/автоматизации) ✅
            2. Метод B: OAuth 2.0 (интерактивный / личное использование) 🧑‍💻
            3. Метод C: Прямое внедрение учетных данных (расширенный) 🔒
            4. Приоритет аутентификации и сводка
          2. ⚙️ Запуск сервера (подробно)
            1. Метод 1: Использование uvx (рекомендуется для пользователей)
            2. Метод 2: Для разработки (клонирование репозитория)
          3. 🔌 Использование с Claude Desktop
            1. 💬 Примеры подсказок для Клода
              1. 🤝 Вклад
                1. 📄 Лицензия
                  1. 🙏 Кредиты

                    Related MCP Servers

                    • -
                      security
                      F
                      license
                      -
                      quality
                      A Model Context Protocol server that connects to Google Cloud services, allowing users to query logs, interact with Spanner databases, and analyze Cloud Monitoring metrics through natural language interaction.
                      Last updated -
                      16
                      2
                      TypeScript
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A Model Context Protocol server that provides seamless integration with Google Workspace, allowing operations with Google Drive, Docs, and Sheets through secure OAuth2 authentication.
                      Last updated -
                      Python
                      MIT License
                      • Linux
                      • Apple
                    • A
                      security
                      F
                      license
                      A
                      quality
                      Provides a Model Context Protocol (MCP) server that enables LLMs to directly access and interact with Google Spreadsheet data.
                      Last updated -
                      2
                      1
                      TypeScript
                      • Apple
                    • A
                      security
                      A
                      license
                      A
                      quality
                      A Model Context Protocol server that enables AI agents to interact with Google Workspace services including Drive, Docs, and Sheets through natural language commands.
                      Last updated -
                      8
                      Python
                      MIT License
                      • Linux
                      • Apple

                    View all related MCP servers

                    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/xing5/mcp-google-sheets'

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