WiseGrid MCP
Read and write WiseGrid 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
{
"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
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. Full REST API reference at wisegrid.co/docs/api.
MIT licensed.
Release files for wisegrid-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wisegrid_mcp-0.1.0.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wisegrid_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.4 kB
Release files / wisegrid_mcp-0.1.0.tar.gz
| Download URL | wisegrid_mcp-0.1.0.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0ce770e67ac94236f5b035e7d3323f79ab43527adb007c622e67138f6bb4bf21
|
|
BLAKE2b-256 checksum How to use checksums |
89a87fa9a5609b95e4ace5fdd26a4b21a1c03e1ca49e5c59f980c401d6815e71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.8
|
Release files / wisegrid_mcp-0.1.0-py3-none-any.whl
| Download URL | wisegrid_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
96c0d21b5d0279f7376d1da039541c69dcda61f53fd853833ecebe388eb31e78
|
|
BLAKE2b-256 checksum How to use checksums |
145b2cdf312fec631e606e6e3e9359df1f34f9a2a0429869ba3ec841e9daab43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.8
|