WiseGrid MCP server — read and write sheets, rows, columns and reports from any AI agent.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wisegrid_mcp-0.1.0.tar.gz.
File metadata
- Download URL: wisegrid_mcp-0.1.0.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ce770e67ac94236f5b035e7d3323f79ab43527adb007c622e67138f6bb4bf21
|
|
| MD5 |
0a48eac33fa75a752395ba270d581ea4
|
|
| BLAKE2b-256 |
89a87fa9a5609b95e4ace5fdd26a4b21a1c03e1ca49e5c59f980c401d6815e71
|
File details
Details for the file wisegrid_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wisegrid_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96c0d21b5d0279f7376d1da039541c69dcda61f53fd853833ecebe388eb31e78
|
|
| MD5 |
6f82006998dee4ee059b0019c75e25b9
|
|
| BLAKE2b-256 |
145b2cdf312fec631e606e6e3e9359df1f34f9a2a0429869ba3ec841e9daab43
|