digital-drive-mcp
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.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues