protogrid

Search / io.github.everyai-com/sheet-shift

SheetShift

R0· no sign-in

Convert and clean tables: CSV, JSON, dedupe, stats. Free.

v1.0.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality79good
Trust89of 100
Uptime, 30 days94%
Latency p50225 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "sheet-shift": {
      "type": "http",
      "url": "https://sheet-shift.magicteams.ai/mcp"
    }
  }
}
claude mcp add --transport http sheet-shift https://sheet-shift.magicteams.ai/mcp
[mcp_servers.sheet-shift]
url = "https://sheet-shift.magicteams.ai/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sheet-shift": {
      "type": "remote",
      "url": "https://sheet-shift.magicteams.ai/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "sheet-shift": {
      "type": "http",
      "url": "https://sheet-shift.magicteams.ai/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=sheet-shift&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc2hlZXQtc2hpZnQubWFnaWN0ZWFtcy5haS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "sheet-shift": {
      "type": "http",
      "url": "https://sheet-shift.magicteams.ai/mcp"
    }
  }
}
{
  "mcpServers": {
    "sheet-shift": {
      "httpUrl": "https://sheet-shift.magicteams.ai/mcp"
    }
  }
}
extensions:
  "sheet-shift":
    enabled: true
    name: "sheet-shift"
    type: streamable_http
    uri: "https://sheet-shift.magicteams.ai/mcp"
    timeout: 300

Quality 79 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list carries no ttlMs, so clients re-fetch it
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations4 of 4 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 1,137 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes8 tool changes in 30 days
  • fail
    stability.rug_pull8 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

4 tools, about 1,137 tokens to load them all · tool set 7fafac1f0f5d · tools last changed 2026-10-10 · checked 2026-10-20 13:49 UTC

Tool changes

  • split_columnchangeddescription, input schema, output schema, annotationsmeaning changed
    before

    Split a column into multiple columns by a delimiter. Use when you need to divide a single column into multiple columns based on a specific delimiter. Do NOT use when you need to convert data types or clean data; use convert_table or clean_table instead.

    after · 31% of words in common

    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.

  • column_statschangeddescription, input schema, output schema, annotationsmeaning changed
    before

    Calculate statistics over one column in a table. Use when needing summary statistics for a single column; NOT for multi-column analysis. Use 'convert_table' for transformations.

    after · 20% of words in common

    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.

  • clean_tablechangeddescription, input schema, output schema, annotationsmeaning changed
    before

    Clean a table string by trimming cells, dropping empty rows, and deduplicating rows. Use when preparing data for analysis; NOT for transforming data types. Use convert_table to change data types.

    after · 34% of words in common

    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.

  • convert_tablechangeddescription, input schema, output schema, annotationsmeaning changed
    before

    Convert a table string between CSV, TSV, JSON and Markdown. Use when you need to change the table format. Do NOT use when you need to clean the table; use clean_table instead.

    after · 35% of words in common

    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.

  • split_columnchangedtitle, description, input schema, output schema, annotationsmeaning changed
    before

    Split one column on a delimiter into new columns.

    after · 24% of words in common

    Split a column into multiple columns by a delimiter. Use when you need to divide a single column into multiple columns based on a specific delimiter. Do NOT use when you need to convert data types or clean data; use convert_table or clean_table instead.

  • column_statschangedtitle, description, input schema, output schema, annotationsmeaning changed
    before

    Sum/avg/min/max/count/distinct over one column (name or 0-based index).

    after · 10% of words in common

    Calculate statistics over one column in a table. Use when needing summary statistics for a single column; NOT for multi-column analysis. Use 'convert_table' for transformations.

  • clean_tablechangedtitle, description, input schema, output schema, annotationsmeaning changed
    before

    Trim cells, drop empty rows, dedupe rows in a table string.

    after · 21% of words in common

    Clean a table string by trimming cells, dropping empty rows, and deduplicating rows. Use when preparing data for analysis; NOT for transforming data types. Use convert_table to change data types.

  • convert_tablechangedtitle, description, input schema, output schema, annotationsmeaning changed
    before

    Convert a table string between CSV, TSV, JSON and Markdown.

    after · 46% of words in common

    Convert a table string between CSV, TSV, JSON and Markdown. Use when you need to change the table format. Do NOT use when you need to clean the table; use clean_table instead.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 89 / 100

duplicate-repo
provenance80
liveness98
freshness100
hygiene80

+repository +namespace-matches-repo +reachable +uptime-94% +updated-18d-ago -duplicate-repo(15 names)

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://sheet-shift.magicteams.ai/mcp streamable-httpnoneyes94%225 ms2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-052026-10-20

Tools (4)

clean_tableread-onlyClean 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.
column_statsread-onlyCompute 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.
convert_tableread-onlyConvert 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.
split_columnread-onlySplit 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.

Schemas: list_tools.

Also listed as

14 other active names share this repository (showing 10): io.github.everyai-com/ai-ready, io.github.everyai-com/court-split, io.github.everyai-com/fee-fighter, io.github.everyai-com/festival-finder, io.github.everyai-com/flight-fix, io.github.everyai-com/invoice-gen, io.github.everyai-com/league-night, io.github.everyai-com/lease-break, io.github.everyai-com/party-plan, io.github.everyai-com/recipe-scale

Similar MCP servers

More from io.github.everyai-com

And 9 more from this publisher.

Official server.json
{
  "name": "io.github.everyai-com/sheet-shift",
  "title": "SheetShift",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://sheet-shift.magicteams.ai/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "repository": {
    "url": "https://github.com/everyai-com/sahadeva",
    "source": "github"
  },
  "description": "Convert and clean tables: CSV, JSON, dedupe, stats. Free."
}