Tuper Sheets MCP
An MCP server operated by Tuper that generates Google Sheets formulas (FILTER, RANK, UNIQUE) and performs text cleaning and case-sensitive replacements in Google Docs. It ports logic from Tuper's free tools like KeepSorted and ReplaceKit, requiring no sign-in.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp-sheets.tuper.app/mcpWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to tuper.app ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Build Google Sheets FILTER formulas
- Generate RANK and UNIQUE formulas
- Clean text strings
- Perform case-sensitive replacements in Google Docs
Source and maintenance
Protocol and capabilities
- Server
- tuper-sheets 1.0.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
sheets_filter_formula — Google Sheets FILTER formula
Build a FILTER formula that shows the rows of a range matching 1-3 conditions (equals, contains, starts/ends with, one of, blank, number and date comparisons), optionally sorted and with a "no match" message. Returns the formula and a note.
{
"type": "object",
"required": [
"range",
"conditions"
],
"properties": {
"join": {
"enum": [
"and",
"or"
],
"type": "string",
"default": "and"
},
"order": {
"enum": [
"none",
"asc",
"desc"
],
"type": "string",
"default": "none",
"description": "Sort the result by its first column"
},
"range": {
"type": "string",
"description": "Rows to show, first and last column: A2:D, A2:D500, A:D or Data!A2:D"
},
"separator": {
"enum": [
",",
";"
],
"type": "string",
"default": ",",
"description": "Argument separator: \",\" (US/UK locale) or \";\" (many European locales)"
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"required": [
"column",
"op"
],
"properties": {
"op": {
"enum": [
"eq",
"neq",
"contains",
"ncontains",
"starts",
"ends",
"oneof",
"blank",
"notblank",
"num_eq",
"gt",
"gte",
"lt",
"lte",
"after",
"before",
"onafter",
"onbefore"
],
"type": "string"
},
"value": {
"type": "string",
"description": "Value to compare (not needed for blank / notblank). Dates as 2026-03-31, numbers with a dot."
},
"column": {
"type": "string",
"description": "Column letter to test, e.g. C"
}
},
"additionalProperties": false
},
"maxItems": 3,
"minItems": 1
},
"skip_blanks": {
"type": "boolean",
"default": false
},
"case_sensitive": {
"type": "boolean",
"default": false
},
"cells_are_text": {
"type": "boolean",
"default": false,
"description": "Numbers/dates are stored as text: wrap in VALUE / DATEVALUE"
},
"no_match_message": {
"type": "string",
"description": "If set, wrap in IFERROR and show this text when no row matches"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}sheets_rank_formula — Google Sheets RANK formula
Build a formula that ranks one column, with a choice of tie handling (min: 1,2,2,4; dense: 1,2,2,3; avg: 1,2.5,2.5,4; unique: 1,2,3,4) and optional ranking within a group column. mode "column" fills the whole column from one cell; mode "row" is a per-row formula to drag down.
{
"type": "object",
"required": [
"range"
],
"properties": {
"mode": {
"enum": [
"column",
"row"
],
"type": "string",
"default": "column"
},
"ties": {
"enum": [
"min",
"dense",
"avg",
"unique"
],
"type": "string",
"default": "min"
},
"group": {
"type": "string",
"description": "Optional column letter; ranks restart in each group"
},
"range": {
"type": "string",
"description": "One column with its first row, header left out: B2:B, B2:B200 or Data!B2:B"
},
"direction": {
"enum": [
"desc",
"asc"
],
"type": "string",
"default": "desc",
"description": "desc: largest value is rank 1"
},
"separator": {
"enum": [
",",
";"
],
"type": "string",
"default": ",",
"description": "Argument separator: \",\" (US/UK locale) or \";\" (many European locales)"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}sheets_unique_formula — Google Sheets unique values formula
Build a formula for unique values: a UNIQUE list, COUNTUNIQUE, a value/count table, only the repeated values, or only the values that appear once.
{
"type": "object",
"required": [
"range"
],
"properties": {
"mode": {
"enum": [
"list",
"count",
"counts",
"dupes",
"once"
],
"type": "string",
"default": "list"
},
"order": {
"enum": [
"none",
"asc",
"desc"
],
"type": "string",
"default": "none"
},
"range": {
"type": "string",
"description": "A2:A, A2:A500, A:A or Data!A2:C (several columns only for mode \"list\")"
},
"separator": {
"enum": [
",",
";"
],
"type": "string",
"default": ",",
"description": "Argument separator: \",\" (US/UK locale) or \";\" (many European locales)"
},
"ignore_case": {
"type": "boolean",
"default": false
},
"skip_blanks": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}docs_match_case_replacement — Replace keeping the case of each match
Given matched texts and a replacement, return the replacement in the case shape of each match (ALL CAPS, Title Case, First letter, lower). The rule ReplaceKit uses for "Keep the case of each match" in Google Docs.
{
"type": "object",
"required": [
"matches",
"replacement"
],
"properties": {
"matches": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"minItems": 1
},
"replacement": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}clean_text — Clean pasted text (spaces, breaks, quotes)
Run ReplaceKit cleanups on text (up to 50,000 characters), in the order given: double-spaces, space-before-punct, trailing-spaces, empty-paragraphs, line-breaks, nbsp, curly-quotes, straight-quotes. Returns the cleaned text and how many replacements each made.
{
"type": "object",
"required": [
"text",
"cleanups"
],
"properties": {
"text": {
"type": "string",
"maxLength": 50000
},
"cleanups": {
"type": "array",
"items": {
"enum": [
"double-spaces",
"space-before-punct",
"trailing-spaces",
"empty-paragraphs",
"line-breaks",
"nbsp",
"curly-quotes",
"straight-quotes"
],
"type": "string"
},
"minItems": 1
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-02: 3 of 3 checks answered
- 2026-11-03: 3 of 3 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 690 ms
- 95th percentile latency
- 690 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 690 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http tuper-sheets-mcp https://mcp-sheets.tuper.app/mcpCodex
codex mcp add tuper-sheets-mcp --url https://mcp-sheets.tuper.app/mcpCursor
{
"mcpServers": {
"tuper-sheets-mcp": {
"url": "https://mcp-sheets.tuper.app/mcp"
}
}
}Cline
{
"mcpServers": {
"tuper-sheets-mcp": {
"type": "streamableHttp",
"url": "https://mcp-sheets.tuper.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"tuper-sheets-mcp": {
"type": "http",
"url": "https://mcp-sheets.tuper.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http tuper-sheets-mcp https://mcp-sheets.tuper.app/mcpClaude Desktop
{
"mcpServers": {
"tuper-sheets-mcp": {
"url": "https://mcp-sheets.tuper.app/mcp"
}
}
}Windsurf
{
"mcpServers": {
"tuper-sheets-mcp": {
"serverUrl": "https://mcp-sheets.tuper.app/mcp"
}
}
}Let your agent find its tools
Find servers like Tuper Sheets MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Tuper Sheets MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.