mcp-google-sheets
Enables AI agents to create, read, update, and manage Google Sheets data and structure using tools like create, listSheets, sheetData, updateCells, and shareSpreadsheet, supporting OAuth2 and service-account authentication.
README
MCP-Google-Sheets
A TypeScript Model Context Protocol (MCP) server that lets AI agents securely interact with Google Sheets via well-typed “tools.” Built on Bun and the @modelcontextprotocol/sdk, it supports both OAuth2 and Service-Account flows.
🚀 Features
- Authentication
- Service-Account via base64-encoded
CREDENTIALS_CONFIG - OAuth2 using
credentials.json+token.jsonfor user-scoped access
- Service-Account via base64-encoded
- Tools
create
Creates a new spreadsheet (and moves it into your Drive folder if configured).listSheets
Lists all sheet tabs in a given spreadsheet.renameSheet
Renames an existing sheet tab.createSheet
Adds a new sheet tab to a spreadsheet.spreadsheetInfo
Fetches metadata (title, sheet IDs, grid properties) for a spreadsheet.listSpreadsheets
Lists all spreadsheets in your configured Drive folder (or My Drive).shareSpreadsheet
Shares a spreadsheet with users (reader/commenter/writer) and sends notifications.sheetData
Reads cell values from a sheet and range (or whole sheet).updateCells
Writes a 2D array of values into an A1-style range.batchUpdate
Applies multiple range updates in a single request.addRows/addColumns
Inserts rows or columns at a specified index.copySheet
Copies a sheet tab between spreadsheets (optionally renaming it).
📋 Prerequisites
- Bun (v1.0+) installed and on your
PATH - A Google Cloud project with:
- Sheets API & Drive API enabled
- An OAuth2 Client ID (download
credentials.json) or a Service Account key (downloadservice_account.json)
- (Optional) A Drive folder ID if you want new sheets moved out of My Drive
⚙️ Setup
- Clone the repo
git clone https://github.com/yourusername/mcp-google-sheets.git cd mcp-google-sheets - Install dependencies
bun install
- Configure environment
Create a .env (or export) with:
# Base64-encoded service-account key JSON (optional)
CREDENTIALS_CONFIG=BASE-64 ENCODED SERVICE_ACCOUNT.JSON
# Or put your OAuth2 JSON files next to index.ts:
# credentials.json (OAuth client secret)
# token.json (generated after first OAuth run)
# The google email address that you'll use to access the spreadsheet
EMAIL_ID="Enter the email address you’ll use to access the spreadsheet"
# (Optional) ID of the Drive folder to store new sheets
DRIVE_FOLDER_ID=1a2B3c4D5e6F...
Tip: On Linux/macOS you can do
export CREDENTIALS_CONFIG=$(base64 service_account.json | tr -d '\n')
▶️ Running the Server
bun index.ts
On first OAuth2 run (if using credentials.json), you’ll see a URL. Visit it, grant access, then paste the code back into your terminal. A token.json will be generated automatically.
🔧 How It Works
Initialization
-
initContext() picks your auth method (Service-Account → OAuth2 → error).
-
Builds google.sheets & google.drive clients and stores them in a shared context.
MCP Tool Registration
- Each “tool” (e.g. create, listSheets, sheetData) is registered via server.tool(...).
Transport
- Uses StdioServerTransport so Claude can invoke tools over stdin/stdout.
Invocation
The agent sends a JSON request:
{ "tool": "create", "args": { "title": "Budget Q2" } }
The server runs your handler, calls Google APIs, and returns JSON-wrapped results.
🛠️ Try It Out
Clone & configure as above.
Start the server:
bun index.ts
Invoke a tool via Claude
Demo
<img width="1274" alt="mcp-google-sheets" src="https://github.com/user-attachments/assets/979d4fec-f5f1-42ff-bdc6-765b992f98a9" /> <img width="1274" alt="mcp-google-sheets" src="https://github.com/user-attachments/assets/7285ad5b-96c9-4960-9290-7be1ba9728f0" />
❤️ Contributing
Feel free to open issues or PRs for new tools, bug fixes, and enhancements.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。