MCP Google Apps Script Server
Um servidor para integração perfeita com o Google Apps Script, permitindo automação e extensão de aplicativos do Google Workspace.
Documentação
Servidor MCP Google Apps Script
🤖 + 📝 = ⚡
Deixe assistentes de IA criarem e gerenciarem projetos Google Apps Script para você
🚀 Início Rápido • 💡 Casos de Uso • 🛠️ Recursos • 📚 Documentação
🎯 Por que o MCP GAS Server?
O Problema
O Google Apps Script é poderoso para automatizar o Google Workspace, mas desenvolver projetos GAS tradicionalmente exige:
- Alternar entre desenvolvimento local e o editor online
- Copiar e colar código manualmente
- Sem sistema de módulos adequado ou controle de versão
- Ferramentas limitadas para testes e implantação
A Solução
O MCP GAS Server conecta assistentes de IA ao Google Apps Script, permitindo:
- Desenvolvimento Orientado por IA: Diga ao Claude/Cursor o que construir, e ele cuida da implementação
- Módulos CommonJS Completos:
require(),module.exports, resolução automática de dependências - escreva GAS como Node.js - Execução Ad-hoc: Execute qualquer expressão JavaScript instantaneamente - sem implantação, sem funções wrapper necessárias
- Pipeline de Implantação em Produção: fluxo dev → staging → prod com controle de versão, promoção e rollback
- Interface Inspirada em Unix: Comandos familiares (
cat,grep,ls,find,sed) para gerenciamento intuitivo de projetos GAS - Desenvolvimento Local: Escreva código localmente com suporte completo de IDE
- Sincronização Automática: Sincronização bidirecional entre arquivos locais e a nuvem do Google
- Integração com Git: Controle de versão para seus projetos GAS com merge seguro
Para Quem É Isso?
- Desenvolvedores que querem que a IA cuide do código boilerplate do Google Apps Script
- Equipes que automatizam fluxos de trabalho do Google Workspace
- Não-programadores que precisam de funções personalizadas do Google Sheets ou automação
- Qualquer pessoa cansada das limitações do editor de scripts online do Google
💡 Casos de Uso
O Que Você Pode Criar
- 📊 Funções Personalizadas de Planilhas: Cálculos complexos, processamento de dados, integrações com APIs
- 📧 Automação de E-mail: Processar Gmail, enviar e-mails em massa, gerenciar rascunhos
- 📅 Gerenciamento de Calendário: Agendar eventos, sincronizar calendários, automatizar criação de reuniões
- 🗂️ Automação do Drive: Organização de arquivos, sistemas de backup, geração de documentos
- 📝 Processamento de Documentos: Gerar relatórios, mesclar documentos, extrair dados
- 🔗 Integrações com APIs: Conectar o Google Workspace a serviços externos
- 🤖 Chatbots e Complementos: Criar ferramentas personalizadas para Sheets, Docs e Forms
Exemplos Reais
// Tell your AI: "Create a function that fetches stock prices and updates my spreadsheet"
// AI will create, deploy, and test the entire solution
// Tell your AI: "Build an expense tracker that categorizes Gmail receipts"
// AI handles OAuth, Gmail API, and spreadsheet integration
// Tell your AI: "Make a custom menu in Sheets for data analysis tools"
// AI creates the UI, functions, and deploys everything
🚀 Início Rápido
⚡ Instalação em 30 Segundos
🎯 Totalmente Automatizado (Recomendado)
curl -fsSL https://raw.githubusercontent.com/whichguy/mcp_gas/main/install.sh | bash -s -- --auto
Este único comando: baixa → instala dependências → compila → configura todas as IDEs
— OU —
🔧 Instalação Manual
git clone https://github.com/whichguy/mcp_gas.git && cd mcp_gas && ./install.sh
Clone primeiro, depois execute o instalador com mais controle
Pré-requisitos
| Requisito | Por que é Necessário | Como Obter | Verificação Automática? |
|---|---|---|---|
| Git | Clona o repositório | Baixar | ✅ Sim |
| Node.js 18+ | Executa o servidor MCP | Baixar | ✅ Sim |
| Conta Google | Acessar o Google Apps Script | Criar gratuitamente | ❌ Manual |
| Assistente de IA | Envia comandos ao servidor | Claude, Cursor | ✅ Detectado |
🎯 Primeiro Projeto em 2 Minutos
| 1️⃣ |
Instale (se ainda não tiver feito)
|
| 2️⃣ |
Diga ao seu assistente de IA:
|
| 3️⃣ |
A IA cuida de tudo:
|
⚙️ Detalhes da Instalação
O Que o Instalador Faz
O script install.sh cuida de tudo automaticamente:
- 🔄 Baixa o Repositório (se usar curl)
- 📦 Instala Dependências (
npm install) - 🔨 Compila o Projeto (
npm run build) - 🔍 Detecta Suas IDEs (verifica mais de 10 IDEs)
- ⚙️ Configura Cada IDE (atualiza configurações do MCP)
- 🔗 Vincula ao
dist/src/index.js(build de produção)
Recursos:
- ✅ Idempotente - Seguro executar várias vezes
- 💾 Cria Backups - Antes de qualquer modificação
- 🔐 Verifica OAuth - Orienta você na configuração do Google
Opções de Linha de Comando
./install.sh --dry-run # Preview changes without making them
./install.sh --interactive # Choose which IDEs to configure
./install.sh --auto # Non-interactive mode (for CI/CD)
./install.sh --force # Update existing configurations
./install.sh --help # Show detailed usage
Build Manual (Avançado)
Se o instalador falhar ou você precisar de configuração personalizada:
# 1. Clone repository
git clone https://github.com/whichguy/mcp_gas.git
cd mcp_gas
# 2. Install dependencies
npm install
# 3. Build the project
npm run build
# 4. Configure your IDE manually
# Point to: /absolute/path/to/mcp_gas/dist/src/index.js
Observação: O binário do servidor está em dist/src/index.js após a compilação, não no diretório de origem.
Desinstalação
# Remove MCP GAS from all IDEs
./uninstall.sh
# With cleanup options:
./uninstall.sh --cleanup-build # Also remove dist/ and node_modules/
./uninstall.sh --cleanup-backups # Remove all backup files
./uninstall.sh --dry-run # Preview what would be removed
📋 Configuração do Google Cloud
Configuração Única
-
Ative a API do Google Apps Script:
- Acesse o Console do Google Cloud
- Crie ou selecione um projeto
- Pesquise por "Google Apps Script API" e ative
-
Crie Credenciais OAuth 2.0:
- Navegue até APIs & Services → Credenciais
- Clique em "Criar Credenciais" → "ID do cliente OAuth"
- Tipo de aplicativo: Aplicativo de desktop
- Baixe o JSON e salve como
oauth-config.jsonna raiz do projeto
🖥️ IDEs Suportadas
O MCP GAS Server funciona com qualquer cliente compatível com MCP:
| IDE/Editor | Suporte de Plataforma | Arquivo de Configuração | Observações |
|---|---|---|---|
| Claude Desktop | macOS, Windows | claude_desktop_config.json | Aplicativo de desktop oficial da Anthropic |
| Claude Code | macOS, Linux | ~/.claude/settings.json | Editor de código do Claude |
| Cursor IDE | Todas as plataformas | ~/.cursor/mcp.json | IDE com tecnologia de IA |
| VS Code | Todas as plataformas | mcp.json em globalStorage | Editor da Microsoft |
| VS Code Insiders | Todas as plataformas | mcp.json em globalStorage | Versão de pré-visualização |
| VSCodium | Todas as plataformas | mcp.json em globalStorage | VS Code de código aberto |
| Zed Editor | macOS, Linux | ~/.config/zed/settings.json | Usa a chave context_servers |
| Windsurf IDE | Todas as plataformas | ~/.codeium/windsurf/mcp_config.json | IDE de IA da Codeium |
| Neovim MCPHub | Todas as plataformas | ~/.config/mcphub/servers.json | Plugin do Neovim |
| Codex CLI | Todas as plataformas | ~/.codex/config.toml | Usa formato TOML |
Exemplos de Configuração Manual de IDE
Claude Desktop
{
"mcpServers": {
"gas": {
"command": "node",
"args": ["/absolute/path/to/mcp_gas/dist/src/index.js"],
"env": {"NODE_ENV": "production"}
}
}
}
VS Code
{
"mcpServers": {
"gas": {
"command": "node",
"args": ["/absolute/path/to/mcp_gas/dist/src/index.js"],
"env": {"NODE_ENV": "production"}
}
}
}
Zed Editor (usa context_servers)
{
"context_servers": {
"gas": {
"command": {
"path": "node",
"args": ["/absolute/path/to/mcp_gas/dist/src/index.js"]
}
}
}
}
Codex CLI (usa TOML)
[mcp_servers.gas]
command = "node"
args = ["/absolute/path/to/mcp_gas/dist/src/index.js"]
[[mcp_servers.gas.env]]
NODE_ENV = "production"
📦 O Que Está Incluído
🛠️ 50 Ferramentas Especializadas
|
📁 Gerenciamento de Arquivos
|
🔍 Pesquisa e Edição
|
⚡ Execução
|
|
🔀 Integração com Git
|
🚀 Implantação
|
📋 Projetos
|
Ferramentas Inteligentes vs. Brutas
- Ferramentas inteligentes (
cat,write): Lidam automaticamente com o empacotamento de módulos CommonJS - Ferramentas brutas (
raw_cat,raw_write): Preservam o conteúdo exato do arquivo - Escolha com base em se você quer gerenciamento automático de módulos ou controle total
🎓 Quando Usar o MCP GAS Server
✅ Perfeito Para
- Projetos de Automação: Automação de Gmail, Calendar, Drive, Sheets
- Funções Personalizadas: Fórmulas complexas de planilhas e processamento de dados
- Integrações com APIs: Conectar o Google Workspace a serviços externos
- Prototipagem Rápida: Provas de conceito rápidas e MVPs
- Aprender GAS: Deixe a IA ensinar pelo exemplo
❌ Não Ideal Para
- Aplicações Grandes: Considere App Engine ou Cloud Functions para aplicações complexas
- Sistemas em Tempo Real: GAS tem limites de tempo de execução (6 minutos)
- Computação Pesada: CPU/memória limitados em comparação com servidores dedicados
- Dados Sensíveis: Avalie os requisitos de segurança cuidadosamente
🛠️ Recursos Avançados
Integração com Fluxo de Trabalho Git
// Set up .git/config breadcrumb file first
mcp__gas__write({
scriptId: "...",
path: ".git/config",
content: JSON.stringify({ repository: "https://github.com/...", localPath: "~/my-project" })
})
// Stateless sync: preview then apply
mcp__gas__rsync({ operation: "pull", scriptId: "...", dryrun: true })
mcp__gas__rsync({ operation: "pull", scriptId: "..." })
// Standard git workflow works in sync folder
cd ~/gas-repos/project-xxx
git add . && git commit -m "Update" && git push
Sistema de Módulos
// Write modular code with CommonJS
const utils = require('./utils');
const api = require('./api/client');
function processData() {
const data = api.fetchData();
return utils.transform(data);
}
module.exports = { processData };
Exemplo de Primeiro Projeto
// Tell your AI assistant:
"Create a Google Apps Script project that calculates Fibonacci numbers"
// The AI will execute:
// 1. Authenticate
await mcp__gas__auth({ mode: "start" });
// 2. Create project
const project = await mcp__gas__project_create({
title: "Fibonacci Calculator"
});
// 3. Add code
await mcp__gas__write({
scriptId: project.scriptId,
path: "fibonacci",
content: `
function fibonacci(n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
function test() {
Logger.log(fibonacci(10)); // 55
}
module.exports = { fibonacci };
`
});
// 4. Execute
const result = await mcp__gas__run({
scriptId: project.scriptId,
js_statement: "require('fibonacci').fibonacci(10)"
});
// Returns: 55
📚 Referência Rápida de Comandos
Operações de Sistema de Arquivos (inspiradas em Unix)
// Read file contents (auto-unwraps CommonJS)
mcp__gas__cat({ scriptId: "...", path: "utils/helper" })
// List files matching pattern
mcp__gas__ls({ scriptId: "...", path: "utils/*" })
// ⚡ RECOMMENDED: High-performance multi-pattern search with ripgrep
mcp__gas__ripgrep({
scriptId: "...",
pattern: "function.*test",
ignoreCase: true,
context: 2
})
// Simple grep (use ripgrep for advanced searches)
mcp__gas__grep({ scriptId: "...", pattern: "function.*test", outputMode: "content" })
// Find files by name pattern
mcp__gas__find({ scriptId: "...", name: "*.test" })
// Find/replace with regex
mcp__gas__sed({
scriptId: "...",
pattern: "console\\.log",
replacement: "Logger.log"
})
// ⚡ Advanced ripgrep features (STRONGLY RECOMMENDED over grep)
mcp__gas__ripgrep({
scriptId: "...",
pattern: "TODO|FIXME|HACK", // Multi-pattern OR search
ignoreCase: true, // Case-insensitive
sort: "path", // Alphabetical sorting
trim: true, // Clean whitespace
context: 2, // Show 2 lines of context
showStats: true // Performance statistics
})
Execução de Código Ad-hoc
// Execute mathematical expressions
mcp__gas__run({ scriptId: "...", js_statement: "Math.PI * 2" })
// Call Google Apps Script services
mcp__gas__run({
scriptId: "...",
js_statement: "DriveApp.getRootFolder().getName()"
})
// Execute project functions with CommonJS
mcp__gas__run({
scriptId: "...",
js_statement: "require('Calculator').fibonacci(10)"
})
// Complex data operations
mcp__gas__run({
scriptId: "...",
js_statement: `
const data = require('API').fetchData();
const sheet = SpreadsheetApp.create('Report');
sheet.getActiveSheet().getRange(1,1,data.length,3).setValues(data);
return sheet.getId();
`
})
Desenvolvimento de Módulos CommonJS
// Write module with automatic CommonJS wrapping
mcp__gas__write({
scriptId: "...",
path: "Calculator",
content: `
function add(a, b) { return a + b; }
function multiply(a, b) { return a * b; }
module.exports = { add, multiply };
`
})
// Use require() in other modules - automatic dependency resolution
mcp__gas__write({
scriptId: "...",
path: "Main",
content: `
const calc = require('Calculator');
const result = calc.add(5, calc.multiply(2, 3));
Logger.log(result); // Logs: 11
`
})
// Read shows clean user code (CommonJS wrapper removed)
mcp__gas__cat({ scriptId: "...", path: "Calculator" })
// Returns user code without _main() wrapper
Integração com Git
// Create .git/config breadcrumb file
mcp__gas__write({
scriptId: "...",
path: ".git/config",
content: JSON.stringify({
repository: "https://github.com/owner/repo.git",
localPath: "~/my-projects/gas-app"
})
})
// Stateless sync: preview then apply
mcp__gas__rsync({ operation: "pull", scriptId: "...", dryrun: true })
mcp__gas__rsync({ operation: "pull", scriptId: "..." })
// Manage sync folder configuration
mcp__gas__config({
operation: "set",
setting: "sync_folder",
scriptId: "...",
value: "~/my-projects/gas-app"
})
🔧 Solução de Problemas
Problemas Comuns
| Problema | Solução |
|---|---|
| "Não autenticado" | Execute mcp__gas__auth({ mode: "start" }) no seu assistente de IA |
| "Script não encontrado" | Verifique o scriptId no gas-config.json |
| "Módulo não encontrado" | Garanta caminhos require() corretos e que o arquivo exista |
| "Cota excedida" | Aguarde ou aumente as cotas do Google Cloud |
| "Permissão negada" | Verifique os escopos OAuth e as permissões do projeto |
Modo de Depuração
# Enable debug logging
DEBUG=mcp:* npm start
# Test installation without changes
./install.sh --dry-run
# Check configuration
cat ~/.claude/claude_desktop_config.json | jq '.mcpServers.gas'
📂 Estrutura do Projeto
mcp_gas/
├── src/ # TypeScript source code
│ ├── tools/ # ~50 MCP tools
│ ├── auth/ # OAuth authentication
│ ├── api/ # Google Apps Script API client
│ └── server/ # MCP server implementation
├── dist/ # Compiled JavaScript (after build)
├── test/ # Test suites
├── docs/ # Documentation
├── install.sh # Automated installer
├── uninstall.sh # Clean uninstaller
├── gas-config.json # Project configuration
└── oauth-config.json # OAuth credentials (create this)
🧪 Desenvolvimento
Configuração
# Clone and install
git clone https://github.com/whichguy/mcp_gas.git
cd mcp_gas
npm install
# Development mode with watch
npm run dev
# Build for production
npm run build
Testes
npm test # Run all tests
npm run test:unit # Unit tests only
npm run test:integration # Integration tests (requires auth)
npm run test:system # System-level tests
npm run test:security # Security validation
Arquitetura
O MCP GAS Server usa uma arquitetura em camadas:
- Camada de Protocolo MCP: Gerencia a comunicação com assistentes de IA
- Camada de Ferramentas: ~50 ferramentas especializadas para operações GAS
- Camada de Autenticação: Fluxo OAuth 2.0 PKCE com gerenciamento de tokens
- Camada de Cliente de API: Cliente da API v1 do Google Apps Script com limitação de taxa
- Camada de Sistema de Arquivos: Cache local e sincronização
📚 Documentação
Referência Completa de Ferramentas
- docs/REFERENCE.md - Referência completa para todas as 63 ferramentas com capacidades, limitações e matriz de compatibilidade
Guias para Desenvolvedores
- docs/CROSS_TOOL_REFERENCES.md - Estratégia para referências entre ferramentas e encadeamento de fluxos de trabalho
- docs/SCHEMA_ENHANCEMENTS_SUMMARY.md - Acompanhamento de progresso para melhorias de esquema
- Guia de Arquitetura - Design do sistema e detalhes internos
- Integração com Git - Fluxos de trabalho de controle de versão
- Documentação da API - Referência da API TypeScript
- Exemplos - Projetos de exemplo e casos de uso
Esquemas Aprimorados de Ferramentas
Todas as ferramentas agora incluem:
- Compatibilidade de Tipo de Script - Indicação clara de suporte standalone vs. vinculado a contêiner
- Limitações - Restrições específicas, cotas e limitações de API
- Referências entre Ferramentas - Pré-requisitos, próximos passos, alternativas e orientação de recuperação de erros
- ⚡ Preferência de Ferramenta de Pesquisa - ripgrep é FORTEMENTE RECOMENDADO em vez de grep para todas as pesquisas (multi-padrão, case inteligente, controle de contexto, melhor desempenho)
🤝 Contribuindo
Aceitamos contribuições! Veja CONTRIBUTING.md para diretrizes.
📄 Licença
MIT - Consulte LICENSE para detalhes.
🙏 Agradecimentos
Construído com:
- Model Context Protocol por Anthropic
- Google Apps Script API
- TypeScript, Node.js e a incrível comunidade de código aberto