Google Docs

Um servidor Model Context Protocol (MCP) para integrar Google Docs com clientes de IA.

Documentação

Google Docs MCP Server (Next.js)

Um servidor remoto Model Context Protocol (MCP) que fornece integração com Google Docs para o Claude Desktop, construído com Next.js e implantado na Vercel.

Recursos

  • Servidor MCP Remoto: Implantado na Vercel com transporte SSE
  • Google OAuth: Autenticação segura com permissões do Google Docs e Drive
  • Painel Web: Interface amigável para gerenciar chaves de API
  • Multiusuário: Suporte para vários usuários com acesso isolado
  • Gerenciamento de Chaves de API: Autenticação segura baseada em tokens para clientes MCP

Arquitetura

User Browser → Next.js App → Google OAuth → Database (User/Tokens)
Claude Desktop → MCP SSE Transport → API Key Auth → Google APIs

Configuração

1. Configuração do Google Cloud Console

  1. Crie um novo projeto no Google Cloud Console
  2. Ative a API do Google Docs e a API do Google Drive
  3. Crie credenciais OAuth 2.0:
    • Tipo de aplicação: Aplicação web
    • URIs de redirecionamento autorizados: https://your-app.vercel.app/api/auth/callback/google
  4. Copie o Client ID e o Client Secret

2. Configuração do Banco de Dados

Crie um banco de dados PostgreSQL (recomendado: Neon ou Supabase)

3. Configuração do Redis

Crie uma instância Redis (necessária para o adaptador MCP da Vercel). Recomendado: Upstash

4. Implantação na Vercel

  1. Faça um fork deste repositório
  2. Importe para a Vercel
  3. Adicione as variáveis de ambiente:
    NEXTAUTH_SECRET=your-random-secret
    NEXTAUTH_URL=https://your-app.vercel.app
    GOOGLE_CLIENT_ID=your-google-client-id
    GOOGLE_CLIENT_SECRET=your-google-client-secret
    DATABASE_URL=your-postgresql-url
    REDIS_URL=your-redis-url
    
  4. Implante

5. Inicializar o Banco de Dados

Após a implantação, execute as migrações do banco de dados:

pnpm db:push

Uso

Configuração Simples (OAuth Sob Demanda)

  1. Adicione o servidor MCP ao Claude Desktop (nenhuma configuração necessária):
claude mcp add --transport sse google-docs https://your-app.vercel.app/sse

Ou adicione manualmente ao claude_desktop_config.json:

{
  "mcpServers": {
    "google-docs": {
      "command": "claude",
      "args": ["mcp", "connect", "sse", "https://your-app.vercel.app/sse"]
    }
  }
}
  1. Autorização na primeira vez:

    • No Claude Desktop, execute: "Use a ferramenta authorize_google"
    • O Claude fornecerá um link de autorização
    • Clique no link → o navegador abre → faça login com o Google
    • Após a autorização, todas as ferramentas do Google Docs funcionam automaticamente
  2. Ferramentas disponíveis:

    • authorize_google - Autorize o acesso ao Google Docs (execute esta primeiro)
    • read_document - Leia o conteúdo do Google Docs
    • create_document - Crie novos Google Docs
    • update_document - Atualize o conteúdo do documento com operações em lote
    • append_text - Acrescente texto aos documentos
    • list_documents - Liste seus Google Docs

Alternativa: Configuração com Chave de API (Avançado)

Para acesso programático ou múltiplos clientes:

  1. Configuração Web:

    • Visite seu aplicativo implantado: https://your-app.vercel.app
    • Faça login com o Google
    • Crie uma chave de API
  2. Configuração do Claude Desktop:

claude mcp add --transport sse google-docs \\
  https://your-app.vercel.app/sse \\
  --header "X-API-Key: your-api-key"

Desenvolvimento

Configuração Local

  1. Clone o repositório
  2. Instale as dependências: pnpm install
  3. Copie .env.example para .env e preencha os valores
  4. Execute as migrações do banco de dados: pnpm db:push
  5. Inicie o servidor de desenvolvimento: pnpm dev

Comandos

  • pnpm dev - Inicie o servidor de desenvolvimento
  • pnpm build - Compile para produção
  • pnpm start - Inicie o servidor de produção
  • pnpm lint - Execute o ESLint
  • pnpm db:generate - Gere migrações do banco de dados
  • pnpm db:push - Envie o esquema para o banco de dados
  • pnpm db:studio - Abra o Drizzle Studio

Segurança

  • As chaves de API são protegidas com hash antes do armazenamento
  • Os tokens de atualização do Google são criptografados no banco de dados
  • O isolamento de usuários impede o acesso entre usuários
  • HTTPS é obrigatório para callbacks OAuth

Solução de Problemas

Problemas Comuns

  1. Erro de OAuth: Verifique se o URI de redirecionamento corresponde exatamente
  2. Conexão com o Banco de Dados: Verifique o formato da DATABASE_URL
  3. Chave de API Inválida: Garanta que o cabeçalho X-API-Key esteja configurado corretamente
  4. Conexão Redis: Verifique a REDIS_URL para o transporte SSE

Logs

Verifique os logs das funções da Vercel para obter informações detalhadas de erro.

Contribuição

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Faça as alterações
  4. Teste localmente
  5. Envie um pull request

Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.