Google Sheets Todos MCP Server
Stores todos in a Google Sheet and exposes CRUD tools for listing, getting, creating, updating, and deleting todo items.
README
Google Sheets Todos MCP Server
An MCP server that stores todos in a Google Sheet and exposes CRUD tools.
Features
todo_listtodo_gettodo_createtodo_updatetodo_delete
1) Google setup
- Create a Google Cloud project.
- Enable the Google Sheets API.
- Create a service account and download its JSON key.
- Create a Google Sheet and copy its Spreadsheet ID from the URL.
- Share the sheet with the service account email as Editor.
2) Local setup
npm install
cp .env.example .env
Then edit .env with your values.
3) Run
Development:
npm run dev
The server listens on http://localhost:8080/mcp by default.
Build and run:
npm run build
npm start
4) Cloud Run deployment
One command deployment:
npm run deploy:cloudrun -- --project PROJECT_ID --region REGION
The deploy script uses .env by default and will:
- Build the image with
cloudbuild.yaml - Deploy to Cloud Run
- Print the final MCP endpoint URL
You can also override the env file:
npm run deploy:cloudrun -- --project PROJECT_ID --env-file .env.production
Build and submit the container image:
gcloud builds submit --tag gcr.io/PROJECT_ID/firstmcp
Deploy to Cloud Run:
gcloud run deploy firstmcp \
--image gcr.io/PROJECT_ID/firstmcp \
--platform managed \
--region REGION \
--allow-unauthenticated \
--set-env-vars GOOGLE_SHEETS_SPREADSHEET_ID=your_spreadsheet_id,GOOGLE_SHEETS_TODO_SHEET_NAME=todos,GOOGLE_SERVICE_ACCOUNT_EMAIL=your-service-account@project.iam.gserviceaccount.com,GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY='-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----\\n'
Cloud Run will inject the PORT environment variable automatically. The MCP HTTP endpoint will be available at /mcp on the service URL.
Files added for deployment:
cloudbuild.yamlscripts/deploy-cloud-run.sh.gcloudignore
5) MCP client config example
For an HTTP-capable MCP client, point it at the deployed endpoint:
{
"mcpServers": {
"google-sheets-todos": {
"url": "https://YOUR_CLOUD_RUN_URL/mcp"
}
}
}
For local testing, use:
{
"mcpServers": {
"google-sheets-todos": {
"url": "http://localhost:8080/mcp"
}
}
}
6) Sheet format
The server uses 5 columns in the target sheet:
idtitlecompletedcreatedAtupdatedAt
The header row is created automatically if missing.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.