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
- Crie um novo projeto no Google Cloud Console
- Ative a API do Google Docs e a API do Google Drive
- 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
- 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
- Faça um fork deste repositório
- Importe para a Vercel
- 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 - 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)
- 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"]
}
}
}
-
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
-
Ferramentas disponíveis:
authorize_google- Autorize o acesso ao Google Docs (execute esta primeiro)read_document- Leia o conteúdo do Google Docscreate_document- Crie novos Google Docsupdate_document- Atualize o conteúdo do documento com operações em loteappend_text- Acrescente texto aos documentoslist_documents- Liste seus Google Docs
Alternativa: Configuração com Chave de API (Avançado)
Para acesso programático ou múltiplos clientes:
-
Configuração Web:
- Visite seu aplicativo implantado:
https://your-app.vercel.app - Faça login com o Google
- Crie uma chave de API
- Visite seu aplicativo implantado:
-
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
- Clone o repositório
- Instale as dependências:
pnpm install - Copie
.env.examplepara.enve preencha os valores - Execute as migrações do banco de dados:
pnpm db:push - Inicie o servidor de desenvolvimento:
pnpm dev
Comandos
pnpm dev- Inicie o servidor de desenvolvimentopnpm build- Compile para produçãopnpm start- Inicie o servidor de produçãopnpm lint- Execute o ESLintpnpm db:generate- Gere migrações do banco de dadospnpm db:push- Envie o esquema para o banco de dadospnpm 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
- Erro de OAuth: Verifique se o URI de redirecionamento corresponde exatamente
- Conexão com o Banco de Dados: Verifique o formato da DATABASE_URL
- Chave de API Inválida: Garanta que o cabeçalho X-API-Key esteja configurado corretamente
- 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
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça as alterações
- Teste localmente
- Envie um pull request
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.