Strict, agent-friendly MCP server for Google Sheets operations
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"gsheets-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# gsheets-mcp A strict, agent-friendly MCP server for Google Sheets. Version `1.0.0` exposes wire contract `1.0` through one explicit CLI and direct structured results. ## Tool contract | Tool | Inputs | Broker | Local | |---|---|---:|---:| | `gsheets_list_tabs` | `spreadsheet` | yes | yes | | `gsheets_read_range` | `spreadsheet`, `range`, optional render options | yes | yes | | `gsheets_write_range` | `spreadsheet`, `range`, `values` | yes | yes | | `gsheets_append_rows` | `spreadsheet`, `range`, `values` | yes | yes | | `gsheets_create_spreadsheet` | `title` | yes | yes | | `gsheets_copy_spreadsheet` | source `spreadsheet`, destination `title`, optional `tabs` | yes | yes | | `gsheets_search_spreadsheets` | `query`, optional `limit` | no | yes | | `gsheets_clear_range` | `spreadsheet`, `range` | yes | yes | | `gsheets_recalculate_range` | `spreadsheet`, `range` | yes | yes | `spreadsheet` accepts only a spreadsheet ID or a strict `https://docs.google.com/spreadsheets/...` URL. Common tools never treat a title as an identifier. In local mode, search by title first and pass the selected `results[n].spreadsheet` ID to the next tool. `range` is A1 notation, preferably including the tab (for example, `Comps!A1:H20`). Inputs are closed-world, strictly typed JSON. Unknown fields—including plausible fields such as `dry_run` and `idempotency_key`—are rejected. `values` must be a non-empty two-dimensional JSON array, not a JSON-encoded string. ## Results and failures Successful calls return a direct object rather than JSON inside a string: ```json { "status": "ok", "operation": "gsheets_read_range", "spreadsheet": "1AbCdEf...", "range": "Comps!A1:B2", "value_render_option": "FORMATTED_VALUE", "date_time_render_option": "FORMATTED_STRING", "values": [["Ticker", "PCTY"], ["Revenue", 100]] } ``` Operational and validation failures set MCP `isError=true`. The structured content carries a stable code plus explicit outcome and retry guidance: ```json { …
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.