Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
everyai-com/sahadeva
GitHub Stars
0
Server Listing
Sahadeva

TDQS

A4.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a clearly different table operation (cleaning, computing a single column statistic, format conversion, splitting a column), and the descriptions explicitly state what not to use and which alternative to choose. There is no realistic overlap that would cause misselection.

Naming Consistency4/5

All names use snake_case and are readable, with three following a verb_noun pattern (clean_table, convert_table, split_column). column_stats breaks the pattern by being noun_noun, but the overall convention remains predictable.

Tool Count5/5

Four tools is well-scoped for a focused table-manipulation server, and each tool earns its place without redundancy. The count supports a compact, purpose-built toolkit rather than an overstuffed API.

Completeness4/5

The surface covers core table preparation, conversion, column splitting, and simple single-column statistics. Common row-level operations like filtering, sorting, or joining tables are absent, but these are minor gaps relative to the stated formatting and cleaning focus.

Available Tools

4 tools
clean_tableClean tableA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. "name,age\nAsha,30".
trimNoTrim leading/trailing whitespace in every cell. Default true.
dedupeNoRemove exact duplicate data rows, keeping the first. Default false.
formatNoFormat of 'data' and of the returned table: csv, tsv or json. Default csv.
drop_empty_rowsNoRemove rows whose cells are all empty. Default true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYesThe cleaned table as text in the input format.
rows_afterYesData rows after cleaning (excluding header).
rows_beforeYesData rows before cleaning (excluding header).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral context beyond them: output preserves the input format and reports before/after row counts, which tells the agent the operation is non-shape-changing. It stops short of noting that cleaning never alters column structure or header handling, so not quite a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the operation list in a single dense clause, then two short sentences for usage and the exclusion. No filler, and the most decision-relevant routing information (do not use for format conversion) is stated last but in one clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 need not explain return values, and it still mentions the row-count summary. Purpose, scope, defaults implied by the schema, and the sibling alternative are all covered, so an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (trim, dedupe, format, drop_empty_rows, data) is already documented with defaults and the enum in the schema. The description restates the three cleaning behaviors but adds no format syntax or edge-case semantics beyond it, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (clean) and resource (table) and enumerates the exact operations performed: trim whitespace, drop fully empty rows, optionally dedupe. It also explicitly distinguishes itself from convert_table, so an agent can separate it from the sibling without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the triggering context ('when preparing messy pasted data') and an explicit exclusion plus the alternative ('Do NOT use to change format; use convert_table'). Both the when and the when-not are present, which is the top of the scale.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

column_statsColumn statsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYesStatistic: sum, avg, min, max (column must be numeric), count (non-empty cells) or distinct (unique values).
dataYesThe whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. "name,age\nAsha,30".
columnYesColumn to use: the exact header name (case-sensitive), or a 0-based column index as digits, e.g. "price" or "2".
formatNoFormat of 'data' and of the returned table: csv, tsv or json. Default csv.

Output Schema

ParametersJSON Schema
NameRequiredDescription
opYesThe statistic that was computed.
columnYesHeader name of the column that was analysed.
resultYesNumeric result for sum/avg/min/max/count, or a sorted array of distinct string values for distinct.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description goes beyond that by disclosing rounding to 2 dp, blanks being ignored, count meaning non-empty cells, and distinct values being sorted. It stops short of noting error behavior for non-numeric input on sum/avg, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the operation set front-loaded, followed by positive use case and the exclusion. No filler and no repetition of structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and annotations carry the safety profile. The description supplies purpose, alternatives, and result semantics for a 4-parameter tool, leaving nothing an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description still adds semantics beyond the enum text: numeric results are rounded to 2 dp, blanks are ignored, count counts non-empty cells, and distinct returns sorted values. That is genuine value over the schema, though the op meanings largely overlap the enum descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific operation (compute one statistic over a single column) and enumerates the exact supported ops (sum/avg/min/max/count/distinct). It also explicitly distinguishes itself from the sibling tools split_column and convert_table, so an agent can route without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives positive guidance ('quick answers like total of the price column') and an explicit exclusion ('Do NOT use to reshape the table; use split_column or convert_table'). This is the when/when-not/alternative pattern at full strength.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_tableConvert tableA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. "name,age\nAsha,30".
to_formatYesOutput format: csv, tsv, json (array of objects keyed by header) or markdown (pipe table).
from_formatYesFormat of the input 'data': csv, tsv or json.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsYesNumber of data rows (excluding the header).
textYesThe converted table as text in to_format.
columnsYesNumber of columns in the header row.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: 'Cell values are kept as text', which tells the agent no type coercion or numeric parsing occurs. It stops short of describing malformed-input or header-handling behavior, so it is not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the conversion scope before the usage guidance and exclusion. The format enumeration partially duplicates the schema's enum descriptions, which is a minor redundancy, but every sentence still carries selection value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the annotations already cover the safety profile. What remains — what the tool does, when to use it, when not to, and what happens to cell values — is all present, leaving no meaningful gap for a 3-parameter conversion tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both format parameters carry their own enum descriptions, so the schema does the heavy lifting — baseline 3. The description restates the accepted format sets but adds no syntax, default, or edge-case detail beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Convert') and resource ('a table'), then enumerates both input and output formats explicitly. It also names the sibling clean_table and the exact operations that belong to it, so an agent can distinguish this tool from its alternatives without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an affirmative trigger ('Use when the user wants the same table in another format') and an explicit exclusion with an alternative ('Do NOT use to trim, dedupe or drop rows; use clean_table'). Nothing about tool selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

split_columnSplit columnA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. "name,age\nAsha,30".
columnYesColumn to use: the exact header name (case-sensitive), or a 0-based column index as digits, e.g. "price" or "2".
formatNoFormat of 'data' and of the returned table: csv, tsv or json. Default csv.
delimiterYesLiteral text to split on, e.g. " ", "-" or "|".
new_namesNoHeader names for the new columns; count must equal the maximum number of parts. Default <column>_1, <column>_2, ...

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYesThe resulting table as text in the input format.
partsYesNumber of new columns the split produced.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description still adds non-obvious behavior: rows are split in place and short rows are padded with empty cells, which tells the agent what the output shape will be for ragged data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the operation and its in-place/padding semantics, then the usage condition, then the exclusion, in four tight sentences with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full annotation and schema coverage, the description only needs to frame purpose and routing, which it does; the padding note and 'returns the table in the same format' remove any residual ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters, including the format enum and new_names default, are documented in the schema. The description restates the delimiter concept with examples but adds no format or naming guidance beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Split one column into several columns on a delimiter') with a concrete example ('full name' on a space). It names sibling tools it is not, so an agent can distinguish it from clean_table and convert_table without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('Use when one column packs several values') plus an explicit exclusion with named alternatives ('Do NOT use to clean or change format; use clean_table or convert_table'). Both the positive and negative routing conditions are covered.

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.

  1. 4 tool updates
    • Changedclean_table14 fields changed
      • changedInput schema / properties / data / description
        Previous value: -"The data for this request."New value: +"The whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. \"name,age\\nAsha,30\"."
      • addedInput schema / properties / data / minLength
        Added value: +1
      • changedInput schema / properties / dedupe / description
        Previous value: -"Set true to enable dedupe; false otherwise."New value: +"Remove exact duplicate data rows, keeping the first. Default false."
      • changedInput schema / properties / drop_empty_rows / description
        Previous value: -"Set true to enable drop empty rows; false otherwise."New value: +"Remove rows whose cells are all empty. Default true."
      • changedInput schema / properties / format / description
        Previous value: -"The format for this request."New value: +"Format of 'data' and of the returned table: csv, tsv or json. Default csv."
      • addedInput schema / properties / format / enum
        Added value: +[
        +  "csv",
        +  "tsv",
        +  "json"
        +]
      • changedInput schema / properties / trim / description
        Previous value: -"Set true to enable trim; false otherwise."New value: +"Trim leading/trailing whitespace in every cell. Default true."
      • removedOutput schema / properties / cleaned_data
        Removed value: -{
        -  "description": "The cleaned table string with trimmed cells, empty rows dropped, and duplicate rows removed.",
        -  "type": "string"
        -}
      • addedOutput schema / properties / rows_after
        Added value: +{
        +  "description": "Data rows after cleaning (excluding header).",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / rows_before
        Added value: +{
        +  "description": "Data rows before cleaning (excluding header).",
        +  "type": "integer"
        +}
      • removedOutput schema / properties / rows_dropped
        Removed value: -{
        -  "description": "The number of empty rows that were dropped from the table.",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / rows_duplicated
        Removed value: -{
        -  "description": "The number of duplicate rows that were removed from the table.",
        -  "type": "integer"
        -}
      • addedOutput schema / properties / text
        Added value: +{
        +  "description": "The cleaned table as text in the input format.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "cleaned_data"
        -]New value: +[
        +  "text",
        +  "rows_before",
        +  "rows_after"
        +]
    • Changedcolumn_stats18 fields changed
      • changedInput schema / properties / column / description
        Previous value: -"The column for this request."New value: +"Column to use: the exact header name (case-sensitive), or a 0-based column index as digits, e.g. \"price\" or \"2\"."
      • addedInput schema / properties / column / minLength
        Added value: +1
      • changedInput schema / properties / data / description
        Previous value: -"The data for this request."New value: +"The whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. \"name,age\\nAsha,30\"."
      • addedInput schema / properties / data / minLength
        Added value: +1
      • changedInput schema / properties / format / description
        Previous value: -"The format for this request."New value: +"Format of 'data' and of the returned table: csv, tsv or json. Default csv."
      • addedInput schema / properties / format / enum
        Added value: +[
        +  "csv",
        +  "tsv",
        +  "json"
        +]
      • changedInput schema / properties / op / description
        Previous value: -"The op for this request."New value: +"Statistic: sum, avg, min, max (column must be numeric), count (non-empty cells) or distinct (unique values)."
      • addedInput schema / properties / op / enum
        Added value: +[
        +  "sum",
        +  "avg",
        +  "min",
        +  "max",
        +  "count",
        +  "distinct"
        +]
      • removedOutput schema / properties / avg
        Removed value: -{
        -  "description": "The average of the values in the specified column.",
        -  "type": "number"
        -}
      • addedOutput schema / properties / column
        Added value: +{
        +  "description": "Header name of the column that was analysed.",
        +  "type": "string"
        +}
      • removedOutput schema / properties / count
        Removed value: -{
        -  "description": "The number of values in the specified column.",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / distinct
        Removed value: -{
        -  "description": "The number of distinct values in the specified column.",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / max
        Removed value: -{
        -  "description": "The maximum value in the specified column.",
        -  "type": "number"
        -}
      • removedOutput schema / properties / min
        Removed value: -{
        -  "description": "The minimum value in the specified column.",
        -  "type": "number"
        -}
      • addedOutput schema / properties / op
        Added value: +{
        +  "description": "The statistic that was computed.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / result
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  ],
        +  "description": "Numeric result for sum/avg/min/max/count, or a sorted array of distinct string values for distinct."
        +}
      • removedOutput schema / properties / sum
        Removed value: -{
        -  "description": "The sum of the values in the specified column.",
        -  "type": "number"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "sum",
        -  "avg",
        -  "min",
        -  "max",
        -  "count",
        -  "distinct"
        -]New value: +[
        +  "column",
        +  "op",
        +  "result"
        +]
    • Changedconvert_table13 fields changed
      • changedInput schema / properties / data / description
        Previous value: -"The data for this request."New value: +"The whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. \"name,age\\nAsha,30\"."
      • addedInput schema / properties / data / minLength
        Added value: +1
      • changedInput schema / properties / from_format / description
        Previous value: -"The from format for this request."New value: +"Format of the input 'data': csv, tsv or json."
      • addedInput schema / properties / from_format / enum
        Added value: +[
        +  "csv",
        +  "tsv",
        +  "json"
        +]
      • changedInput schema / properties / to_format / description
        Previous value: -"The to format for this request."New value: +"Output format: csv, tsv, json (array of objects keyed by header) or markdown (pipe table)."
      • addedInput schema / properties / to_format / enum
        Added value: +[
        +  "csv",
        +  "tsv",
        +  "json",
        +  "markdown"
        +]
      • addedOutput schema / properties / columns
        Added value: +{
        +  "description": "Number of columns in the header row.",
        +  "type": "integer"
        +}
      • removedOutput schema / properties / converted_data
        Removed value: -{
        -  "description": "The table data converted to the specified format.",
        -  "type": "string"
        -}
      • removedOutput schema / properties / from_format
        Removed value: -{
        -  "description": "The original format of the table data.",
        -  "type": "string"
        -}
      • addedOutput schema / properties / rows
        Added value: +{
        +  "description": "Number of data rows (excluding the header).",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / text
        Added value: +{
        +  "description": "The converted table as text in to_format.",
        +  "type": "string"
        +}
      • removedOutput schema / properties / to_format
        Removed value: -{
        -  "description": "The format the table data was converted to.",
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "converted_data",
        -  "from_format",
        -  "to_format"
        -]New value: +[
        +  "text",
        +  "rows",
        +  "columns"
        +]
    • Changedsplit_column16 fields changed
      • changedInput schema / properties / column / description
        Previous value: -"The column for this request."New value: +"Column to use: the exact header name (case-sensitive), or a 0-based column index as digits, e.g. \"price\" or \"2\"."
      • addedInput schema / properties / column / minLength
        Added value: +1
      • changedInput schema / properties / data / description
        Previous value: -"The data for this request."New value: +"The whole table as text, first row = header. CSV/TSV text (quoted cells allowed), or a JSON array of flat objects, e.g. \"name,age\\nAsha,30\"."
      • addedInput schema / properties / data / minLength
        Added value: +1
      • changedInput schema / properties / delimiter / description
        Previous value: -"The delimiter for this request."New value: +"Literal text to split on, e.g. \" \", \"-\" or \"|\"."
      • addedInput schema / properties / delimiter / minLength
        Added value: +1
      • changedInput schema / properties / format / description
        Previous value: -"The format for this request."New value: +"Format of 'data' and of the returned table: csv, tsv or json. Default csv."
      • addedInput schema / properties / format / enum
        Added value: +[
        +  "csv",
        +  "tsv",
        +  "json"
        +]
      • changedInput schema / properties / new_names / description
        Previous value: -"List of new names values."New value: +"Header names for the new columns; count must equal the maximum number of parts. Default <column>_1, <column>_2, ..."
      • removedOutput schema / properties / data
        Removed value: -{
        -  "description": "The modified data string with the column split into new columns.",
        -  "type": "string"
        -}
      • removedOutput schema / properties / errors
        Removed value: -{
        -  "description": "An array of error messages, if any, encountered during the split operation.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / new_columns
        Removed value: -{
        -  "description": "An array of new column names created from the split operation.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / parts
        Added value: +{
        +  "description": "Number of new columns the split produced.",
        +  "type": "integer"
        +}
      • removedOutput schema / properties / status
        Removed value: -{
        -  "description": "The status of the operation, indicating whether it was successful or if there were any errors.",
        -  "type": "string"
        -}
      • addedOutput schema / properties / text
        Added value: +{
        +  "description": "The resulting table as text in the input format.",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "data",
        -  "new_columns",
        -  "status"
        -]New value: +[
        +  "text",
        +  "parts"
        +]
  2. 4 tool updates
    • Changedclean_table5 fields changed
      • addedInput schema / properties / data / description
        Added value: +"The data for this request."
      • addedInput schema / properties / dedupe / description
        Added value: +"Set true to enable dedupe; false otherwise."
      • addedInput schema / properties / drop_empty_rows / description
        Added value: +"Set true to enable drop empty rows; false otherwise."
      • addedInput schema / properties / format / description
        Added value: +"The format for this request."
      • addedInput schema / properties / trim / description
        Added value: +"Set true to enable trim; false otherwise."
    • Changedcolumn_stats4 fields changed
      • addedInput schema / properties / column / description
        Added value: +"The column for this request."
      • addedInput schema / properties / data / description
        Added value: +"The data for this request."
      • addedInput schema / properties / format / description
        Added value: +"The format for this request."
      • addedInput schema / properties / op / description
        Added value: +"The op for this request."
    • Changedconvert_table3 fields changed
      • addedInput schema / properties / data / description
        Added value: +"The data for this request."
      • addedInput schema / properties / from_format / description
        Added value: +"The from format for this request."
      • addedInput schema / properties / to_format / description
        Added value: +"The to format for this request."
    • Changedsplit_column5 fields changed
      • addedInput schema / properties / column / description
        Added value: +"The column for this request."
      • addedInput schema / properties / data / description
        Added value: +"The data for this request."
      • addedInput schema / properties / delimiter / description
        Added value: +"The delimiter for this request."
      • addedInput schema / properties / format / description
        Added value: +"The format for this request."
      • addedInput schema / properties / new_names / description
        Added value: +"List of new names values."
  3. 4 tool updates
    • Changedclean_table1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cleaned_data": {
        +      "description": "The cleaned table string with trimmed cells, empty rows dropped, and duplicate rows removed.",
        +      "type": "string"
        +    },
        +    "rows_dropped": {
        +      "description": "The number of empty rows that were dropped from the table.",
        +      "type": "integer"
        +    },
        +    "rows_duplicated": {
        +      "description": "The number of duplicate rows that were removed from the table.",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "cleaned_data"
        +  ],
        +  "type": "object"
        +}
    • Changedcolumn_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "avg": {
        +      "description": "The average of the values in the specified column.",
        +      "type": "number"
        +    },
        +    "count": {
        +      "description": "The number of values in the specified column.",
        +      "type": "integer"
        +    },
        +    "distinct": {
        +      "description": "The number of distinct values in the specified column.",
        +      "type": "integer"
        +    },
        +    "max": {
        +      "description": "The maximum value in the specified column.",
        +      "type": "number"
        +    },
        +    "min": {
        +      "description": "The minimum value in the specified column.",
        +      "type": "number"
        +    },
        +    "sum": {
        +      "description": "The sum of the values in the specified column.",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "sum",
        +    "avg",
        +    "min",
        +    "max",
        +    "count",
        +    "distinct"
        +  ],
        +  "type": "object"
        +}
    • Changedconvert_table1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "converted_data": {
        +      "description": "The table data converted to the specified format.",
        +      "type": "string"
        +    },
        +    "from_format": {
        +      "description": "The original format of the table data.",
        +      "type": "string"
        +    },
        +    "to_format": {
        +      "description": "The format the table data was converted to.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "converted_data",
        +    "from_format",
        +    "to_format"
        +  ],
        +  "type": "object"
        +}
    • Changedsplit_column1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "data": {
        +      "description": "The modified data string with the column split into new columns.",
        +      "type": "string"
        +    },
        +    "errors": {
        +      "description": "An array of error messages, if any, encountered during the split operation.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "new_columns": {
        +      "description": "An array of new column names created from the split operation.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "status": {
        +      "description": "The status of the operation, indicating whether it was successful or if there were any errors.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "data",
        +    "new_columns",
        +    "status"
        +  ],
        +  "type": "object"
        +}
  4. 4 tool updates
    • First observedclean_table
    • First observedcolumn_stats
    • First observedconvert_table
    • First observedsplit_column

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Converts, aligns, reshapes, and inspects tabular data across Markdown, CSV, TSV, JSON, and HTML with CJK-aware alignment and deterministic transformations, entirely offline and without file access.
    4
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables converting PDFs and CSV/spreadsheet files into spreadsheets, extracting bank statement or receipt data into clean CSV, cleaning messy CSV, and generating client-ready reports through an open MCP endpoint.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Turns a local CSV or XLSX table into a full analysis report — summary statistics, duplicate and missing-value diagnostics, top category frequencies, significant pairwise correlations, a Markdown insights writeup, and an Excel workbook with native interactive charts — entirely offline with no uploads, API keys, or pandas dependency. It runs over stdio or streamable-http behind a free anonymous tier that returns an in-band quota signal rather than silently billing.
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.