Skip to main content
Glama
README.md
# digital-drive-mcp

A Model Context Protocol (MCP) server that lets an AI agent browse and read the **Akij Resource Digital Management** Google Drive folder (public link). Built with TypeScript + the official MCP SDK, Streamable HTTP transport, deployable on Vercel.

## Tools

| Tool | Description |
|------|-------------|
| `list_team_folders` | The 5 team-member sub-folders (name + folder id) |
| `list_folder` | Files/sub-folders in any Drive folder (defaults to root) |
| `list_all_files` | Flattened list of every file across all 5 sub-folders |
| `read_file` | Read a file's content as text (Google Docs/Sheets/Slides, Word/Excel/PPT, markdown/HTML) |
| `download_url` | Direct download URL for a file |

## How it reads files (no credentials required)

The folder is public ("anyone with link"), so the server uses Google's public endpoints:

- **Listing** — scrapes `drive.google.com/drive/folders/<id>` and parses the embedded `_DRIVE_ivd` JSON.
- **Google Docs/Sheets/Slides** — exported via `docs.google.com/.../export?format=txt|csv`.
- **Office files (.xlsx/.docx/.pptx)** — downloaded and parsed in-memory with `fflate` (ZIP + XML → text).
- **Text/HTML/Markdown** — downloaded and returned raw.

## Local development

```bash
npm install
npm run dev        # HTTP server on http://localhost:3000/mcp
# or
npm run stdio
```

## Deploy

```bash
vercel --prod
# endpoint: https://<project>.vercel.app/api/mcp
```

## Connect

```json
{
  "mcp": {
    "digital-drive-mcp": {
      "type": "remote",
      "url": "https://<project>.vercel.app/api/mcp",
      "enabled": true
    }
  }
}
```

> If the Drive folder is ever made private, listing/reading will fail — switch to a Google Service Account + Drive API, or keep the folder shared.