Feature request: expose existing Drive download/export capability through a bounded MCP tool
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Read internal/cmd/mcp_tools.go around drive_search and drive_get, then inspect internal/cmd/drive_download.go and the existing MCP export work in #1181. Define the tool interface, artifact receipt, output ownership, byte limits, and cleanup contract before implementation. Done means Drive download/export is available through MCP with a bounded local artifact contract.
Written by the indexing model from the issue text.
Description
gog drive download already retrieves files such as PDFs and exports Google-native documents. For clients that can invoke the CLI, that is sufficient.
For Agents already using gog's MCP integration, a content-acquisition tool would let them continue from Drive search and metadata to a downloaded file using the server's configured account and structured arguments, rather than switching to a separate shell invocation. The motivation is a simpler, consistent operation and file handoff, with less command construction—not a missing CLI capability.
A narrow tool could reduce opportunities for invocation mistakes, but we have not measured Agent success rates for CLI versus MCP. The concrete gap established below is only that the existing MCP Drive tools expose search and metadata, not download/export.
At 82e7fd6005d4ed29f8edfa2a44475e08fe3051a0:
drive_searchanddrive_getprovide search and metadata;drive_getmaps todrive get, not the download command.DriveDownloadCmdalready owns the CLI download/export path.
Credential-free source check
From a gogcli checkout containing that revision, run:
python3 - <<'PY'
import re
import subprocess
revision = '82e7fd6005d4ed29f8edfa2a44475e08fe3051a0'
def source(path):
return subprocess.check_output(['git', 'show', f'{revision}:{path}'], text=True)
mcp = source('internal/cmd/mcp_tools.go')
cli = source('internal/cmd/drive_download.go')
names = sorted(set(re.findall(r'Name:\s*"(drive_[^"]+)"', mcp)))
print('Revision:', revision)
print('MCP Drive tools:', ', '.join(names))
print('CLI DriveDownloadCmd exists:', 'type DriveDownloadCmd struct' in cli)
print('MCP download/export input:', any('download' in n or 'export' in n for n in names))
PY
Observed:
Revision: 82e7fd6005d4ed29f8edfa2a44475e08fe3051a0
MCP Drive tools: drive_get, drive_search
CLI DriveDownloadCmd exists: True
MCP download/export input: False
This confirms the source/interface gap. It does not exercise a Google download; no credentials, Google API calls or live accounts were used for this check.
Would exposing this existing capability as a bounded MCP tool fit the project's direction? A PDF download would cover the immediate use case; optional exports could reuse the existing CLI formats if useful. A small file-ID/format input and a structured artifact receipt could make this easier for Agents already using the MCP tools. We have a downstream implementation and would follow your preferred interface, including any artifact/handle conventions appropriate alongside the bounded MCP export work in #1181.
By read-only, I mean no mutation of Drive. Downloading still creates local data, so output ownership, byte limits and cleanup need an explicit contract rather than exposing an arbitrary output path. The appropriate return format and storage lifetime are design questions, not requirements to adopt our downstream choices.
Source diagnosis and credential-free source reproduction: gpt-6.1-sol. Drafting: gpt-6.1-sol. No live-download verification or independent review was performed for this proposal.
- Dominant language
- Go
- Stars
- 8.5k
- Forks
- 721
- Avg merge
- 19h 47m
- Merged PRs (30d)
- 53
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openclaw/gogcli
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P2
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
openclaw/gogcli#1283 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster no-stale P2
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
openclaw/gogcli#1282 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
feat(gmail): make gmail get --format raw text output the exact message, like drafts get --format rawOpenclawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
openclaw/gogcli#1276 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Docs commands exit 1 on a 404 instead of not_found (5)Possibly taken @HardMax71 claimed this today. Openclawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster P2
Difficulty 3/5 1-2 days Newbie friendliness 72/100
openclaw/gogcli#1288 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Why does backup default to `steipete/backup-gog.git` rather than requiring a user-owned remote?Openclawsweeper:needs-product-decision clawsweeper:needs-security-review clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:security issue-rating: 🦞 diamond lobster P2
Difficulty 4/5 3-5 days Newbie friendliness 18/100
openclaw/gogcli#1287 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 2 days
-
needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
kagent-dev/kagent#3462 ·
Maintainers usually reply within 1 day
-
netrc credential source accepts a password with an embedded CR/LF that every other source rejectsOpenagent-butler-finding bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
jordansmall/spindrift#6268 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 7 days