Skip to main content
Glama
guigatrotta

Google Sheets MCP Server

by guigatrotta
README.md
# Building a Remote MCP Server on Cloudflare (Without Auth)

This example allows you to deploy a remote MCP server that doesn't require authentication on Cloudflare Workers.

## Get started:

[![Deploy to Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-authless)

This will deploy your MCP server to a URL like: `remote-mcp-server-authless.<your-account>.workers.dev/mcp`

Alternatively, you can use the command line below to get the remote MCP Server created on your local machine:

```bash
npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless
```

## Customizing your MCP Server

To add your own [tools](https://developers.cloudflare.com/agents/model-context-protocol/tools/) to the MCP server, define each tool inside the `init()` method of `src/index.ts` using `this.server.tool(...)`.

## Google Sheets: secrets no Cloudflare Worker

Este projeto lê planilhas com **API key** e/ou **service account**; **escrever** (`update_cell`) usa **somente** service account.

| Nome do secret / variável | Uso |
|---------------------------|-----|
| `GOOGLE_API_KEY` | Opcional: leitura pública (`read_sheet`) com chave de API. |
| `GOOGLE_SERVICE_ACCOUNT_JSON` | **Obrigatório para escrita:** JSON completo da conta de serviço Google (projeto GCP → IAM → service account → chaves JSON). |

**No dashboard Cloudflare:** Workers & Pages → seu worker → **Settings** → **Variables and Secrets** → **Add** → **Secret** → nome **`GOOGLE_SERVICE_ACCOUNT_JSON`** → colar o JSON (idealmente minificado em uma linha).

**CLI:** `npx wrangler secret put GOOGLE_SERVICE_ACCOUNT_JSON` (o comando pede o valor de forma segura).

No Google Sheets, compartilhe a planilha com o endereço **`client_email`** do JSON (permissão de editor) para a service account conseguir gravar.

## Connect to Cloudflare AI Playground

You can connect to your MCP server from the Cloudflare AI Playground, which is a remote MCP client:

1. Go to https://playground.ai.cloudflare.com/
2. Enter your deployed MCP server URL (`remote-mcp-server-authless.<your-account>.workers.dev/mcp`)
3. You can now use your MCP tools directly from the playground!

## Connect Claude Desktop to your MCP server

You can also connect to your remote MCP server from local MCP clients, by using the [mcp-remote proxy](https://www.npmjs.com/package/mcp-remote).

To connect to your MCP server from Claude Desktop, follow [Anthropic's Quickstart](https://modelcontextprotocol.io/quickstart/user) and within Claude Desktop go to Settings > Developer > Edit Config.

Update with this configuration:

```json
{
	"mcpServers": {
		"calculator": {
			"command": "npx",
			"args": [
				"mcp-remote",
				"http://localhost:8787/mcp" // or remote-mcp-server-authless.your-account.workers.dev/mcp
			]
		}
	}
}
```

Restart Claude and you should see the tools become available.