SheetShift
by everyai-com · remote · no sign-in to list tools · v1.0.0 · published by GitHub user everyai-com
Convert and clean tables: CSV, JSON, dedupe, stats. Free.
4 tools: 4 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads0Claude Code: allow
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http sheet-shift https://sheet-shift.magicteams.ai/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnconvert_table
The server marks "convert_table" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_table" says "convert": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
4 tools
Changes things 4Claude Code: ask
clean_tableClean a table: trim whitespace in cells, drop fully empty rows, and optionally remove duplicate rows; returns the table in the same format with before/after row counts.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Clean a table: trim whitespace in cells, drop fully empty rows, and optionally remove duplicate rows; returns the table in the same format with before/after row counts. Use when preparing messy pasted data. Do NOT use to change format; use convert_table.
Annotations the server declares
- title: Clean table
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
column_statsCompute one statistic over a single column: sum, avg, min or max (numeric, rounded to 2 dp, blanks ignored), count of non-empty cells, or the sorted distinct values.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Compute one statistic over a single column: sum, avg, min or max (numeric, rounded to 2 dp, blanks ignored), count of non-empty cells, or the sorted distinct values. Use for quick answers like 'total of the price column'. Do NOT use to reshape the table; use split_column or convert_table.
Annotations the server declares
- title: Column stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
convert_tableConvert a table from CSV, TSV or JSON into CSV, TSV, JSON (array of objects) or a Markdown table.1 finding
Why it is in this group
- The name "convert_table" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "convert_table" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_table" says "convert": a word for a change.
Description, as the server wrote it Convert a table from CSV, TSV or JSON into CSV, TSV, JSON (array of objects) or a Markdown table. Cell values are kept as text. Use when the user wants the same table in another format. Do NOT use to trim, dedupe or drop rows; use clean_table.
Annotations the server declares
- title: Convert table
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
split_columnSplit one column into several columns on a delimiter (e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Split one column into several columns on a delimiter (e.g. 'full name' on a space), inserted in place; short rows are padded with empty cells. Returns the table in the same format. Use when one column packs several values. Do NOT use to clean or change format; use clean_table or convert_table.
Annotations the server declares
- title: Split column
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http sheet-shift https://sheet-shift.magicteams.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [],
"ask": [
"mcp__sheet-shift__convert_table",
"mcp__sheet-shift__clean_table",
"mcp__sheet-shift__column_stats",
"mcp__sheet-shift__split_column"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as sheet-shift. Review it before you use it.
