io.github.RyanKramer/wisegrid-mcp
Read and write WiseGrid sheets, rows, columns and reports from any AI agent.
Open source Open in the app JSON README (API)
About
Read and write WiseGrid sheets, rows, columns and reports from any AI agent.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- ryankramer
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.0
- Last push
- 2026-08-27T02:21:58Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:02:13
- Updated
- 2026-08-29 03:02:13
- Origin id
io.github.RyanKramer/wisegrid-mcp
README
<!-- mcp-name: io.github.RyanKramer/wisegrid-mcp -->
# WiseGrid MCP
Read and write [WiseGrid](https://wisegrid.co) sheets from Claude, Cursor, or
any MCP client. List sheets, page through rows, add and update records, and run
reports — from inside a conversation.
Unlike the other servers in this family, these tools operate on **your real
data**, so an API key is required.
## Install
```json
{
"mcpServers": {
"wisegrid": {
"command": "uvx",
"args": ["wisegrid-mcp"],
"env": {
"WISEGRID_API_KEY": "wg_live_xxx"
}
}
}
}
```
Or `pip install wisegrid-mcp`.
| Variable | Required | Purpose |
|---|---|---|
| `WISEGRID_API_KEY` | yes | Create one in WiseGrid under Settings |
| `WISEGRID_BASE_URL` | no | Override for self-hosted instances |
The key's scopes decide what these tools can reach. Grant read-only scopes if
you only want the agent to look.
## Tools
| Tool | What it does |
|---|---|
| `whoami` | The key's identity, scopes and rate limit — call this first when debugging |
| `list_sheets` | Sheets the key can see, cursor-paginated |
| `get_sheet` | Sheet + columns + first page of rows, in one call |
| `list_columns` | Column IDs, which cell dictionaries are keyed by |
| `list_rows` | Rows, cursor-paginated; each carries the `version` you need to update it |
| `add_rows` | Bulk insert, partial success, max 2000 |
| `update_row` | Update one row's changed cells, version-checked |
| `update_rows` | Bulk update, version-checked per row, max 2000 |
| `delete_row` | Delete a row and its subtree — requires `confirm=True` |
| `list_reports` / `get_report` / `run_report` | Reports and their rows |
## Things that will bite you otherwise
**Cells are keyed by column ID, not column name.** `{"101": "Acme Corp"}`, not
`{"Client": "Acme Corp"}`. Call `get_sheet` or `list_columns` first.
**Updates are version-checked.** Every row carries a `version`; you pass the one
you read, and if the row changed in the meantime you get `version_conflict`
instead of a silent overwrite. That is a normal outcome to handle — re-read the
row, decide whether your change still applies, then retry. Blindly bumping the
version to force the write is how concurrent edits disappear.
**`update_row` merges, `update_rows` overwrites.** The single-row tool takes
only the cells you changed. The bulk tool replaces the row's cell set, so send
the full set you want the row to end up with.
**`delete_row` takes the children too.** It removes the row and its entire
subtree, it is not undoable through the API, and it requires `confirm=True`
for exactly that reason. Read the rows first.
**Writes are idempotent.** Each carries an `Idempotency-Key`, so a retry after a
timeout cannot double-apply. Rate limits are honoured via `Retry-After`.
## Development
```bash
git clone https://github.com/RyanKramer/wisegrid-mcp
cd wisegrid-mcp
pip install -e .
WISEGRID_API_KEY=wg_live_xxx wisegrid-mcp
```
## About
Built by [WiseGrid](https://wisegrid.co). Full REST API reference at
[wisegrid.co/docs/api](https://wisegrid.co/docs/api).
MIT licensed.