mcp-sk2gdrive
by GuilhermeSK2
README.md
# Google Drive MCP Server (Python + SQLite)
Servidor MCP (Model Context Protocol) em Python para integração com o Google Drive API. Possui persistência local de credenciais OAuth 2.0 em banco SQLite e renovação automática de tokens.
## Propósito e Isenção de Responsabilidade (Disclaimer)
- **Propósito**: Este projeto foi desenvolvido exclusivamente para fins educacionais, de pesquisa, prototipagem e auxílio a **Desenvolvedores de Software**, **Engenheiros de Software** e **Engenheiros de IA** na criação de PoCs (Prova de Conceito) e integrações locais com agentes de IA.
- **Isenção de Responsabilidade**: O autor não se responsabiliza pelo mau uso, vazamento de credenciais feito por terceiros, perda de dados ou utilização indevida das APIs. Cada desenvolvedor é inteiramente responsável por suas próprias credenciais OAuth e pelo cumprimento dos Termos de Serviço da Google API.
- **Vínculo**: Este projeto é um utilitário open-source independente e **não possui qualquer vínculo, afiliação ou endosso oficial** por parte do Google LLC ou da Anthropic.
## Arquitetura
- **Engine**: FastMCP (`mcp.server.fastmcp`)
- **API Target**: Google Drive API (`googleapiclient`)
- **Storage**: SQLite (`auth.db`) para credenciais OAuth (access token, refresh token, expiry)
- **Transport**: Standard IO (stdio)
## Requisitos
- Python 3.10+
- Credencial de aplicativo no Google Cloud Console (OAuth 2.0 Client ID do tipo Desktop App)
## Instalação
```bash
python -m venv venv
# Windows:
.\venv\Scripts\Activate.ps1
# Linux/macOS:
source venv/bin/activate
pip install -r requirements.txt
```
## Autenticação
Execute o fluxo de autenticação via CLI:
```bash
python auth_flow.py
```
O script solicita o `Client ID` e `Client Secret`, abre o servidor local na porta 8080 para o consentimento OAuth no navegador e persiste as credenciais no arquivo `auth.db`.
## Configuração do Cliente MCP
Adicione o servidor no arquivo de configuração do seu cliente (ex: `claude_desktop_config.json`):
```json
{
"mcpServers": {
"gdrive": {
"command": "C:/caminho/para/seu/projeto/venv/Scripts/python.exe",
"args": [
"C:/caminho/para/seu/projeto/server.py"
]
}
}
}
```
> **Nota**: Substitua `C:/caminho/para/seu/projeto/` pelo caminho absoluto da pasta do projeto em seu sistema.
## Tools Disponíveis
- `check_auth_status`: Retorna o status da autenticação e informações da conta conectada.
- `list_files(folder_id="root", page_size=20, query="")`: Lista arquivos e subpastas.
- `search_files(query_string="", page_size=20)`: Executa busca por nome de arquivo.
- `get_file_metadata(file_id)`: Retorna metadados detalhados de um arquivo em formato JSON.
- `read_text_file(file_id)`: Obtém o conteúdo de texto de um arquivo ou exporta Google Docs para texto plano.
- `create_file(name, content, folder_id="root", mime_type="text/plain")`: Cria um novo arquivo no Drive.
- `logout()`: Remove as credenciais salvas no banco SQLite.
## Testes
Para validar a execução de todas as ferramentas localmente:
```bash
python test_tools.py
```
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues