Skip to main content
Glama
GuilhermeSK2

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
```