WiseGrid MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WiseGrid MCPadd a new customer to the Customers sheet"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| yes | Create one in WiseGrid under Settings |
| 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.
Related MCP server: MCP Google Sheets Server
Tools
Tool | What it does |
| The key's identity, scopes and rate limit — call this first when debugging |
| Sheets the key can see, cursor-paginated |
| Sheet + columns + first page of rows, in one call |
| Column IDs, which cell dictionaries are keyed by |
| Rows, cursor-paginated; each carries the |
| Bulk insert, partial success, max 2000 |
| Update one row's changed cells, version-checked |
| Bulk update, version-checked per row, max 2000 |
| Delete a row and its subtree — requires |
| 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-mcpAbout
Built by WiseGrid. Full REST API reference at wisegrid.co/docs/api.
MIT licensed.
Available Tools
12 toolsadd_rowsA
Add rows to a sheet. Each item is a dict of cells keyed by column ID (as a string), e.g. {"101": "Acme Corp", "102": "2026-09-01"}.
Partial success: the response reports per-row results plus succeededCount and failedCount, so some rows can land while others fail validation. Maximum 2000 rows per call.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| sheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden of behavioral disclosure. It explicitly notes partial success with per-row results and succeededCount/failedCount, and a hard limit of 2000 rows per call. These are critical behaviors beyond basic mutation semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: purpose, row format, then behavioral notes (partial success, limit). Every sentence adds value and there is no redundant fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no annotations and an output schema (not shown), the description adequately covers the input format, behavioral edge cases, and limit. Minor omissions like error handling for invalid sheet_id are acceptable given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides zero parameter descriptions. The description compensates for the 'rows' parameter by explaining the dict structure keyed by column ID and providing an example. 'sheet_id' is not described but is self-explanatory from its name and the sheet context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add rows to a sheet', a specific verb and resource, and provides an example of the expected input format. This distinguishes the tool from siblings like update_rows and delete_row by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful constraints (maximum 2000 rows, partial success behavior) but does not explicitly mention when to use this tool versus alternatives such as update_rows or delete_row. The primary usage is implied by the tool's name and purpose, but no exclusions or comparative guidance are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_rowA
Delete a row AND ALL OF ITS CHILD ROWS. Destructive and not undoable through this API.
Requires confirm=True. Read the row and its children first so you know what the subtree contains — a parent row can carry descendants that are not obvious from the row itself.
| Name | Required | Description | Default |
|---|---|---|---|
| row_id | Yes | ||
| confirm | No | ||
| sheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the destructive and irreversible nature, the cascade delete behavior, the confirm requirement, and the subtlety that hidden descendants may exist. This is thorough and goes beyond what typical mutation descriptions offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each earning its place: the first states the core action, the second provides the critical warning and prerequisite. It is concise, well-structured, and front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the destructive scope, prerequisite reading, and the confirm requirement. It doesn't describe error handling or return values, but the presence of an output schema reduces that burden, and the core behavior is thoroughly explained for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies the confirm parameter's requirement and purpose, but does not explicitly explain sheet_id or row_id. However, their names strongly imply their roles (sheet and row identifiers), providing partial compensation for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a row and all its child rows, using the specific verb 'delete' and clearly naming the resource. The all-caps emphasis on child rows distinguishes it from a simple row deletion and from sibling tools like update_row.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly warns that the operation is destructive and not undoable, requires confirm=True, and advises reading the row and children first. It doesn't name an alternative tool, but few alternatives exist for a delete operation; the preconditions and safety guidance provide strong usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportA
Get a report's definition (its source sheets, columns and filters).
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is straightforward, implying a read-only operation via the verb 'Get' and clearly stating what is returned. However, with no annotations, it does not explicitly confirm safety, permissions, or side effects, which would be helpful for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is entirely on-topic and contains no filler. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter interface and the presence of an output schema, the description covers the essentials. It could additionally point to related tools (e.g., 'use run_report to execute') or clarify the distinction from list_reports, but this is not strictly required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema includes report_id (integer) with no description. The description implicitly ties report_id to the report's definition, adding a little context, but it does not explain constraints, format, or defaults. Since there is only one self-explanatory parameter, the gap is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('report's definition') with details about what the definition includes (source sheets, columns, filters). This distinguishes it from sibling tools like run_report or list_reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when you need a report's structural definition) but provides no explicit exclusions or references to alternatives such as run_report or list_reports. The usage is inferable but not directly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sheetA
Get a sheet with its columns and first page of rows — one call for a usable snapshot. Use this before writing, to learn the column IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| sheet_id | Yes | ||
| row_limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It does reveal key behavior: returns columns and rows, and is a snapshot. However, it does not explain row_limit behavior, error cases, or authentication needs, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the key point, and every sentence adds value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and the tool's simplicity, the description covers the essential purpose, return contents, and usage hint. The only notable omission is explicit row_limit semantics, but the overall context is sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only hints at row_limit via 'first page' and sheet_id via 'to learn the column IDs'. It does not explicitly define either parameter's meaning or how row_limit affects the result, so it fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a sheet with columns and the first page of rows, which distinguishes it from siblings like list_sheets, list_columns, and list_rows. The phrase 'one call for a usable snapshot' reinforces the combined functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use this before writing, to learn the column IDs.' This tells the agent when to invoke the tool, but it does not explicitly mention when not to use alternatives or name them, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_columnsA
List a sheet's columns. Cell dictionaries are keyed by these column IDs as strings, so you need them before any write.
| Name | Required | Description | Default |
|---|---|---|---|
| sheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full safety burden. It discloses that column IDs are used as string keys and that they are prerequisite for writes, which adds behavioral context beyond a simple 'list' phrasing, though it doesn't explicitly state the operation is non-mutating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler; the first sentence states the action, the second explains the value. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with an output schema, the description covers the essential guidance: what it does and why it's needed before writes. It doesn't complicate matters with edge cases, which are not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only the parameter name and type (sheet_id integer) with no description (0% coverage). The description indirectly refers to it as 'a sheet' but does not explain the parameter's meaning or constraints. Given the single obvious parameter, the lack is a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('a sheet's columns'), clearly differentiating it from sibling tools like list_sheets and list_rows. It also provides a rationale that ties into subsequent write operations, reinforcing its distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states these column IDs are needed 'before any write', giving clear guidance on when to use this tool. It doesn't explicitly name alternatives, but for a list operation the use case is well-scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reportsB
List reports the API key can see.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions permission-scoped visibility ('API key can see') but does not explain pagination behavior (limit/cursor), default limits, or any other side effects. The read-only nature is implied but not explicitly confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is direct and to the point. It avoids unnecessary words or repetition. However, it might be too sparse, sacrificing explanatory value for brevity, but it earns its place as a concise purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple list tool with an output schema, so the return shape is covered externally. However, the description is missing pagination details and any context about the limit/cursor parameters. While not critical for a basic list operation, the lack of such guidance makes it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not mention the limit or cursor parameters at all. These parameters are not self-explanatory beyond their names; no explanation is given for how they control result size or pagination. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List reports the API key can see' clearly states a specific action (List) on a specific resource (reports) with an added scope qualifier (the API key can see). This distinguishes it from siblings like get_report (retrieves a single report) and run_report (executes/refreshes a report).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention that get_report should be used for a specific report, nor does it discuss when to pass limit or cursor. Usage is only implied by the tool's name, not explicitly explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rowsA
List a sheet's rows, cursor-paginated by row id. Max limit 500.
Each row carries a version — keep it if you intend to update the row.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| sheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits: cursor pagination by row id, max limit 500, and presence of a version field. With no annotations provided, this description carries the full burden effectively, though error handling and auth are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main purpose. The version note is essential for update workflows and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to explain return values. It covers the key operational details (pagination, limit, version) adequately for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. The description hints at limit ('Max limit 500') and cursor ('cursor-paginated'), and sheet_id via 'sheet's rows', but does not explicitly define each parameter or how cursor is used in practice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List a sheet's rows' with specific pagination detail, distinguishing it from siblings like list_sheets and list_columns which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for when to use (listing rows) with cursor-pagination and max limit, and the version note suggests use before updates. However, no explicit exclusions or alternative tool mentions, though the resource-specific wording makes it evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sheetsA
List sheets the API key can see. Cursor-paginated; pass the returned nextCursor to get the next page. Max limit 500.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses important behavioral traits: cursor-based pagination, the need to pass nextCursor, the maximum limit of 500, and the scope restriction to sheets the API key can see. This goes beyond a simple listing to inform the agent of operational details, though it does not cover error cases or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and every part provides value. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the key aspects: scope, pagination, and limits. It does not address every potential detail (like sorting or errors), but for a list tool with an output schema, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides property names, types, and defaults but no descriptions. The description adds meaning by explaining how to use cursor (pass the returned nextCursor) and constraining limit (max 500). This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'List sheets the API key can see.' It distinguishes from sibling tools like get_sheet or list_rows by focusing on the sheet collection. The pagination note adds context, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when listing sheets) but does not explicitly compare it to alternatives like get_sheet or mention when not to use it. It provides clear context for its function, but no exclusions or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_reportA
Run a report and return its rows, cursor-paginated. Max limit 500.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| report_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that results are cursor-paginated and the maximum limit is 500, which is helpful. However, it does not state whether running a report has side effects, requires any special permissions, or how errors are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary purpose and then provides key pagination details. No unnecessary words or repetitions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, return values are already documented. The description covers the core purpose, pagination behavior, and limit cap, which are sufficient for invoking the tool. It could mention usage relative to sibling tools or error conditions, but for a simple 3-parameter tool, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning for 'limit' (max 500) and 'cursor' (pagination token), but 'report_id' is not explicitly described. The name is fairly obvious, and the description partially covers the parameters, but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run a report and return its rows.' It uses a strong verb ('run') and specifies the resource ('report') and output ('rows'). This distinguishes it from sibling tools like get_report (likely metadata) and list_reports (listing reports).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a report_id and want to retrieve data rows, but it does not explicitly mention when to use this tool over alternatives or provide exclusions. It lacks a direct reference to sibling tools like get_report for metadata-only needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_rowA
Update one row's cells. cells carries ONLY the changed cells.
version is the row's current version and is checked before the write
(optimistic concurrency). If the row changed since you read it you get
version_conflict rather than a silent overwrite — read the row again and
decide whether your change still applies.
| Name | Required | Description | Default |
|---|---|---|---|
| cells | Yes | ||
| row_id | Yes | ||
| version | Yes | ||
| sheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of disclosure. It reveals critical behaviors: partial update semantics ('cells carries ONLY the changed cells'), optimistic concurrency checking via `version`, and the conflict response ('version_conflict rather than a silent overwrite'). This is exemplary transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary action. The second sentence about cells is essential and the paragraph about version/conflict is valuable guidance. Every sentence earns its place without fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no annotations, the description covers the key aspects needed to use the tool safely: single-row scope, partial update, conflict detection, and follow-up action. An output schema exists, so return values don't need elaboration. The tool is well-described for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning to the two non-trivial parameters: `cells` (only changed cells, not the whole row) and `version` (current row version used for optimistic concurrency). `sheet_id` and `row_id` are left to be inferred from names/context, which is acceptable. Given the partial compensation, a score of 4 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Update one row's cells.' It clearly states the scope (one row) and distinguishes from the sibling tool 'update_rows' (bulk update) and 'delete_row'. This is a precise, non-tautological purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear behavioral guidance: how to use the `version` parameter and what to do when a version conflict occurs ('read the row again and decide whether your change still applies'). It doesn't explicitly name alternatives or exclusion criteria, but the single-row scope is clear and the conflict-handling instructions are actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_rowsA
Update many rows. Each item needs 'id', 'version' and 'cells'.
NOTE: unlike update_row, bulk cells OVERWRITES the row's cells rather than
merging them. Send the full cell set you want the row to end up with.
Partial success per row, version-checked individually. Max 2000.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| sheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels: it reveals the critical overwrite-not-merge behavior, per-row version checking, partial success semantics, and a hard limit of 2000 rows. This goes well beyond basic read/write hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the primary action, and uses a clear NOTE block for critical behavioral differences. Every sentence contributes essential information with zero fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (batch mutation, versioning, partial success, size limits) and lack of annotations, the description covers all major operational aspects. The presence of an output schema means return values need not be explained, and the description is sufficiently complete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It does specify that each row item needs 'id', 'version', and 'cells', and clarifies that 'cells' overwrites the entire cell set. However, it doesn't detail types for 'id'/'version' or provide an example, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update many rows' with a specific verb and resource, and immediately distinguishes itself from the sibling update_row by contrasting bulk behavior. This makes the tool's scope unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes the difference from update_row ('unlike update_row, bulk cells OVERWRITES... rather than merging'), providing an implicit when-to-use vs alternative. It also gives concrete constraints: requires id/version/cells per item, partial success with individual version checks, and a 2000-row maximum.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiA
Who the current API key belongs to, its scopes, and its rate limit.
Call this first if anything is failing — it distinguishes a bad key from a scope problem.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It clearly communicates the tool's diagnostic nature and how it differsiates between key and scope issues. It does not explicitly state side-effect safety, but the read-only implication of 'whoami' is strong, and the output schema covers return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the tool's purpose, and the second adds actionable usage guidance. It is front-loaded, concise, and contains no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and an output schema, so the description does not need to explain return values. It provides purpose and clear usage guidance, and the sibling context confirms the tool's unique role. The description is complete for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, and the input schema is empty with 100% coverage. The description properly omits parameter details since there are none. This matches the baseline for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an API-key introspection endpoint, stating that it reveals the key owner, scopes, and rate limit. This is a specific verb+resource description that distinguishes it from sibling tools, which all operate on sheets and reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Call this first if anything is failing — it distinguishes a bad key from a scope problem.' It does not explicitly name alternatives, but the sibling list shows no overlapping tool, making the guidance clear enough for an agent to select it in troubleshooting scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v0.1.0- First observed
add_rows - First observed
delete_row - First observed
get_report - First observed
get_sheet - First observed
list_columns - First observed
list_reports - First observed
list_rows - First observed
list_sheets - First observed
run_report - First observed
update_row - First observed
update_rows - First observed
whoami
TDQS
Tools are clearly separated by resource and action: whoami for identity, list/get for sheets and reports, list for columns/rows, and add/update/delete for row mutations. Slight overlap exists between get_sheet (which includes rows) and list_rows, and between update_row and update_rows, but descriptions explicitly clarify the differences, minimizing misselection risk.
Names follow a consistent verb_noun pattern with list_* for collections, get_* for single entities, and action verbs (add, update, delete, run) for mutations. The special-case whoami is a standard idiom and doesn't break the overall convention.
12 tools cover the server's scope—authentication, sheet/column/row reads, row writes, and report execution—without bloat. This falls well within the ideal 3-15 range and each tool has a clear purpose.
Row lifecycle is fully covered (list, add, update single/bulk, delete), and reports can be listed, inspected, and executed. However, sheets and reports cannot be created or deleted, and there's no single-row fetch or bulk delete, leaving minor gaps for advanced workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for Google Sheets - read, write, and query spreadsheet data.1782MIT
- AlicenseNot gradedqualityCmaintenanceProvides full programmatic access to Google Sheets, enabling CRUD operations, permission management, formatting, and spreadsheet discovery through a standardized MCP interface.606MIT
- AlicenseNot gradedqualityCmaintenanceEnables reading, writing, appending, and creating Google Sheets spreadsheets through MCP tools, with support for exploring spreadsheet structure and creating new sheets.14MIT
- FlicenseNot gradedqualityBmaintenanceMCP server for Google Sheets that exposes tools to read cell ranges, update values, and apply advanced batch updates (borders, colors, data validation, conditional formatting) via HTTP.12-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RyanKramer/wisegrid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server