MCP, MCP server
Claude Google Sheets Mcp
A comprehensive Model Context Protocol (MCP) server for Google Sheets integration with Claude.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 90d520cb9018, unchanged since the check below.
SECRETS_PATH_CREDENTIAL
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
src/claude_google_sheets/setup.py, line 93
credentials_path = os.path.join(self.credentials_dir, "credentials.json")
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
src/claude_google_sheets/setup.py, line 219
if os.system("gcloud --version > /dev/null 2>&1") != 0:
src/claude_google_sheets/setup.py, line 224
if os.system("gcloud auth list --filter=status:ACTIVE --format='value(account)' | head -1 > /dev/null 2>&1") != 0:
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Pass
No network call found.
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
src/claude_google_sheets/setup.py, line 93
credentials_path = os.path.join(self.credentials_dir, "credentials.json")
src/claude_google_sheets/setup.py, line 104
click.echo("5. Download credentials.json")
src/claude_google_sheets/setup.py, line 111
click.echo(f"📁 Save your credentials.json file to: {credentials_path}")
Show more
src/claude_google_sheets/setup.py, line 114
click.pause("Press any key after saving credentials.json...")
src/claude_google_sheets/auth/oauth_manager.py, line 166
credentials_path = os.path.join(self.credentials_dir, "credentials.json")
.gitignore, line 50
credentials.json
.gitignore, line 52
service-account.json
.gitignore, line 53
.env
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Note
the latest commit is more than 365 days old.
MAINTAINER_STALE
No file path was stored.
2025-09-26T21:33:19-05:00
Note
Hygiene check of commit 90d520cb9018. requests shell access. The manifest names this permission. reads a credential or environment file. the latest commit is more than 365 days old.
Date and source
Date checked:
github.com
Commit graded: 90d520cb9018b7a658710cc1803d62071e3e1ee3
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.