# Google Sheets MCP Server

> Read and write Google Sheets with your own service account: list tabs, read, append, update, export.

- name: io.github.joshuawhite389/google-sheets-mcp
- version: 0.2.0
- connection class: R2 (oauth_consent_once)
- trust: 97/100
- quality: 67/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.joshuawhite389%2Fgoogle-sheets-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.joshuawhite389%2Fgoogle-sheets-mcp/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "google-sheets-mcp": {
      "type": "http",
      "url": "https://oldjard--google-sheets-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer ${GOOGLE_SHEETS_MCP_TOKEN}",
        "X-Google-Service-Account-Key": "${X_GOOGLE_SERVICE_ACCOUNT_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${GOOGLE_SHEETS_MCP_TOKEN}`, `${X_GOOGLE_SERVICE_ACCOUNT_KEY}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-17d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 67/100 (needs work)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 67 (weight 15)

- fail `auth.prm`: no Protected Resource Metadata (RFC 9728); clients cannot discover the authorization server
- pass `auth.as_metadata`: authorization server metadata reachable
- pass `auth.cimd`: Client ID Metadata Documents supported
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: n/a (weight 30)

- n/a `tools.descriptions`, `tools.description_length`, `tools.schemas`, `tools.annotations`, `tools.directory_hints`, `tools.token_cost`, `tools.api_dump`: tool list unknown (behind auth, not probed, or empty)

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool list unknown

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: unknown
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.joshuawhite389/google-sheets-mcp.svg)](https://protogrid.dev/servers/io.github.joshuawhite389/google-sheets-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://oldjard--google-sheets-mcp.apify.actor/mcp (streamable-http, auth oauth2, reachable true, uptime30d 1)

## Packages

_none_

## Tools (0)

_none observed_
