Gdrive Cloudflare worker

Servidor MCP remoto para Google Drive e Sheets executado em Cloudflare Workers com suporte completo a OAuth 2.0.

Documentação

mcp-gdrive-cf

Servidor MCP remoto para Google Drive e Sheets executando em Cloudflare Workers com suporte completo a OAuth 2.0.

Pronto para Produção ✅ | 11 Ferramentas | OAuth 2.0 | PKCE | Rede Global de Edge

Adaptado de isaacphi/mcp-gdrive para executar como um servidor MCP remoto HTTP/SSE na rede de edge da Cloudflare com capacidades completas de servidor de autorização OAuth 2.0.


🚀 Início Rápido

\`bash

1. Clone e instale

git clone https://github.com/brianmoney/mcp-gdrive-cf.git cd mcp-gdrive-cf npm install

2. Crie namespaces KV

wrangler kv:namespace create KV_TOKENS wrangler kv:namespace create KV_CLIENTS

3. Atualize o wrangler.toml com seus IDs de namespace

4. Configure as credenciais OAuth do Google

wrangler secret put GOOGLE_CLIENT_SECRET

5. Implante

wrangler deploy

6. Teste com o MCP Inspector

npx @modelcontextprotocol/inspector https://your-worker.workers.dev/sse \`


✨ Recursos

Operações do Drive

  • 🔍 Pesquisa - Pesquisa básica e avançada com filtros (tipo MIME, proprietário, datas, drives compartilhados)
  • 📄 Leitura - Leia qualquer arquivo com mais de 22 formatos de exportação (PDF, DOCX, XLSX, Markdown, etc.)
  • 📁 Criar Pastas - Organize arquivos com estruturas de pastas aninhadas
  • ⬆️ Upload - Envie arquivos de até 5MB
  • 🗑️ Excluir - Mova arquivos para a lixeira
  • 📦 Mover - Reorganize arquivos entre pastas
  • 🔐 Compartilhar - Adicione permissões (leitor, editor, comentarista, proprietário)

Operações do Sheets

  • 📊 Leitura - Leitura em lote de múltiplos intervalos
  • ✏️ Atualizar - Atualize células individuais
  • Adicionar - Adicione linhas a planilhas

Infraestrutura

  • ☁️ Rede Global de Edge - Executa em Cloudflare Workers em todo o mundo
  • 🔐 Servidor OAuth 2.0 - Servidor de autorização completo com suporte a PKCE
  • 🔑 Registro Dinâmico de Clientes - Onboarding automático de clientes
  • 🔄 Atualização Automática de Token - Renovação contínua de tokens do Google
  • 📡 Transporte SSE - Server-Sent Events em tempo real
  • 🛡️ Seguro - Apenas HTTPS, armazenamento de tokens criptografado

🎯 O Que Torna Isso Diferente

Diferente do mcp-gdrive\ original baseado em STDIO, esta implementação:

  1. Executa remotamente em Cloudflare Workers (sem processo local)
  2. Servidor de autorização OAuth 2.0 completo (não apenas cliente OAuth)
  3. Suporte a múltiplos clientes via registro dinâmico de clientes
  4. Segurança PKCE para clientes públicos
  5. Mais de 22 formatos de exportação para arquivos do Drive
  6. Operações de escrita (criar, excluir, mover, compartilhar, enviar)
  7. Testado em produção com cargas de trabalho reais

📋 Pré-requisitos

Necessário

  • Conta Cloudflare com Workers habilitados (o plano gratuito funciona)
  • Projeto Google Cloud com Drive API e Sheets API habilitadas
  • Node.js LTS (v18+)
  • Wrangler CLI (npm install -g wrangler\)

Configuração do Google Cloud

  1. Crie um projeto no Google Cloud Console
  2. Habilite as APIs:
    • Google Drive API
    • Google Sheets API
  3. Crie credenciais OAuth 2.0:
    • Tipo: Aplicação web
    • Redirect URIs: https://your-worker.workers.dev/google/callback\
  4. Escopos OAuth necessários:
    • https://www.googleapis.com/auth/drive\
    • https://www.googleapis.com/auth/spreadsheets\

🔧 Instalação e Implantação

1. Instalar Dependências

\`bash npm install \`

2. Criar Namespaces KV

\`bash

Para tokens de sessão de usuário

wrangler kv:namespace create KV_TOKENS

Para registros de clientes OAuth

wrangler kv:namespace create KV_CLIENTS \`

Copie os IDs dos namespaces para wrangler.toml\:

\`toml [[kv_namespaces]] binding = "KV_TOKENS" id = "your-tokens-namespace-id"

[[kv_namespaces]] binding = "KV_CLIENTS" id = "your-clients-namespace-id" \`

3. Configurar Variáveis de Ambiente

Adicione em wrangler.toml\:

\`toml [vars] GOOGLE_CLIENT_ID = "your-client-id.apps.googleusercontent.com" \`

Defina os segredos:

\`bash

Segredo do cliente OAuth do Google

wrangler secret put GOOGLE_CLIENT_SECRET \`

4. Implantar

\`bash wrangler deploy \`

Seu worker estará disponível em: https://your-worker-name.your-account.workers.dev\


🔐 Fluxo OAuth 2.0

Este servidor implementa um servidor de autorização OAuth 2.0 completo de acordo com a especificação MCP.

Usando o MCP Inspector

A maneira mais fácil de testar o fluxo OAuth:

\`bash npx @modelcontextprotocol/inspector https://your-worker.workers.dev/sse \`

  1. Descoberta - O Inspector descobre automaticamente os endpoints OAuth
  2. Registro - Clique em "Guided Setup" → registra o cliente automaticamente
  3. Autorização - Redireciona para o Google → autentica → redireciona de volta
  4. Troca de Token - Troca automaticamente o código pelo token de acesso
  5. Usar Ferramentas - Todas as 11 ferramentas agora disponíveis!

Recursos de Segurança

  • PKCE (RFC 7636) - Chave de Prova para Troca de Código
  • Parâmetro de Estado - Proteção CSRF
  • Apenas HTTPS - Aplicado por Cloudflare Workers
  • Armazenamento Seguro de Tokens - Criptografado em Workers KV
  • Expiração de Token - Tokens de acesso expiram em 1 hora
  • Hash de Segredo do Cliente - Armazenamento com hash SHA-256
  • Código de Autorização de Uso Único - Códigos excluídos após a troca

🛠️ Ferramentas Disponíveis

Ferramentas do Drive

  • gdrive_search\ - Pesquisa básica em todos os arquivos
  • gdrive_search_advanced\ - Pesquisa avançada com filtros
  • gdrive_read_file\ - Leia arquivos com mais de 22 formatos de exportação
  • gdrive_create_folder\ - Crie pastas
  • gdrive_upload_file\ - Envie arquivos (até 5MB)
  • gdrive_delete_file\ - Mova arquivos para a lixeira
  • gdrive_move_file\ - Mova arquivos entre pastas
  • gdrive_add_permission\ - Compartilhe arquivos/pastas

Ferramentas do Sheets

  • gsheets_read\ - Leia múltiplos intervalos
  • gsheets_update_cell\ - Atualize células individuais
  • gsheets_append_row\ - Adicione linhas

🔌 Configuração do Cliente

VS Code com Extensão MCP

Crie .vscode/settings.json\:

\`json { "mcp.servers": { "gdrive": { "url": "https://your-worker.workers.dev/sse", "authorization": { "type": "oauth2" } } } } \`

Claude Desktop / Cline

macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json\
Windows: %APPDATA%\\Claude\\claude_desktop_config.json\

\`json { "mcpServers": { "gdrive": { "url": "https://your-worker.workers.dev/sse" } } } \`


🧪 Testes

Desenvolvimento Local

\`bash npm start

Servidor disponível em http://localhost:8788

\`

Testar com MCP Inspector

\`bash npx @modelcontextprotocol/inspector http://localhost:8788/sse \`

Verificar Logs do CloudFlare

\`bash wrangler tail --format pretty \`


🐛 Solução de Problemas

"Falha ao descobrir metadados OAuth"

Solução:

  • Garanta que /.well-known/oauth-authorization-server\ retorne JSON válido
  • Verifique se os cabeçalhos CORS estão presentes
  • Verifique se a versão mais recente está implantada: wrangler deploy\

"Falha na troca de token: HTTP 400"

Soluções:

  • Verifique se o code_verifier corresponde ao code_challenge original
  • Garanta que o redirect_uri corresponda exatamente ao registro
  • Verifique se as credenciais do cliente estão corretas
  • Verifique os logs do CloudFlare: wrangler tail\

Ferramentas não funcionando

Soluções:

  • Verifique se os escopos OAuth do Google incluem drive\ e spreadsheets\
  • Reautentique se os escopos mudaram: visite /google/authorize\
  • Verifique se o Worker tem um token de acesso Google válido
  • Verifique os bindings de namespace KV em wrangler.toml\

📊 Desempenho e Limites

RecursoLimiteObservações
Tempo Limite de Requisição30 segundosLimite do CloudFlare Workers
Upload de Arquivo5 MBLimite da API de upload simples
Exportação de Arquivo10 MBLimite de exportação do Google Drive
Armazenamento de Token30 diasLimpeza automática
Código de Autorização10 minutosUso único
Token de Acesso1 horaAtualizado automaticamente

🔒 Melhores Práticas de Segurança

  1. Nunca faça commit de segredos - Use wrangler secret put\
  2. Rotacione segredos de clientes - Regere periodicamente as credenciais OAuth
  3. Monitore o acesso - Use o CloudFlare Analytics para rastrear o uso
  4. Limite os escopos OAuth - Solicite apenas as permissões Google necessárias
  5. Use PKCE - Sempre use PKCE para clientes públicos
  6. Valide URIs de redirecionamento - Coloque na lista de permissões URIs exatas no Google Console
  7. Habilite 2FA - Proteja suas contas CloudFlare e Google

📄 Licença

Licença MIT


🙏 Agradecimentos


Feito com ☁️ por Brian Money