Skip to main content
Glama

netcafe-tables

dedupe entities

dedupe_entities

Find records in a supplier/customer/store list that are probably the SAME entity under different names — "北京星辰科技有限公司" vs "星辰科技(北京)" — by cross-checking name similarity against hard identifiers: tax ID (统一社会信用代码, checksum-verified), phone, domain, bank account, address. It never merges anything: it returns candidate groups with the evidence for each link, pairs that need human review, and — just as

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
bankNo
nameNo
textNo
phoneNo
sheetNo
domainNo
tax_idNo
addressNo
name_thresholdNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed10 schema fields changed
    • addedInput schema / properties / address
      Added value: +{}
    • addedInput schema / properties / bank
      Added value: +{}
    • addedInput schema / properties / domain
      Added value: +{}
    • addedInput schema / properties / name
      Added value: +{}
    • addedInput schema / properties / name_threshold
      Added value: +{}
    • addedInput schema / properties / phone
      Added value: +{}
    • addedInput schema / properties / sheet
      Added value: +{}
    • addedInput schema / properties / tax_id
      Added value: +{}
    • addedInput schema / properties / text
      Added value: +{}
    • addedInput schema / properties / url
      Added value: +{}
  2. Added

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description must carry the disclosure burden, and it does add value: 'It never merges anything: it returns candidate groups with the evidence for each link, pairs that need human review.' This tells the agent this is a non-mutating, evidence-returning operation. However, it omits operational behavior (input file handling via sheet/url, rate limits, runtime cost) and is cut off mid-sentence ('and — just as'), leaving the return semantics incomplete. No contradiction with annotations was found, but this is merely because no annotations were supplied.

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

Conciseness2/5

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

The description is a single, grammatically complex run-on sentence that gets cut off mid-thought ('and — just as'). While the inline example is valuable, the lack of sentence or paragraph structure makes the description harder to parse than necessary. This is over-specification in some places (long example) and under-specification in structure, rather than efficient conciseness.

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

Completeness2/5

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

For a tool with 10 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It covers the deduplication rationale well but leaves out invocation mechanics (how data is provided via url/sheet/text, which parameters are input vs. output), never explains the 'pairs' return value in full, and fails to clarify why no parameters are required. The description needed to do heavy lifting for a complex tool and did not deliver.

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 0%, so the description must compensate for entirely undocumented parameters. It does map several parameters indirectly to the business logic: tax_id (checksum-verified), phone, domain, bank, address, name (via 'name similarity'), and name_threshold (implied). However, no single parameter is explicitly documented for format or semantics—the parameters are only inferable from the narrative, and several (text, url, sheet) remain completely unexplained.

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

Purpose4/5

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

The description uses specific verbs ('Find records... that are probably the SAME entity under different names') with a concrete example ('北京星辰科技有限公司' vs '星辰科技(北京)'). It clearly identifies the deduplication purpose and distinguishes itself from the sibling conversion/match tools, though the run-on structure and truncated ending slightly muddy the impression.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus the sibling alternatives (match_transactions, merge_tables, reconcile_ledger). Usage context is only implied via the deduplication description; there are no exclusions, prerequisites, or 'use this if you see X, otherwise use Y' statements, leaving the agent to guess when this is the appropriate choice.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation4/5

Most tools have clearly distinct functions (conversions, cleaning, xlsx I/O, reconciliation), but diff_tables, reconcile_ledger, and match_transactions all involve comparing or matching records, which could cause initial confusion. However, each has a specific use case—generic column diff, amount-focused reconciliation, and keyless fuzzy matching—and the descriptions provide enough detail to disambiguate them.

Naming Consistency4/5

The conversion tools follow a consistent 'csv_to_*' or 'json_to_csv' pattern, while operation tools use a verb_noun style (e.g., clean_table, merge_tables, reconcile_ledger). This dual pattern is predictable by function type, but 'what_can_you_do' breaks convention as a question-like meta-tool, so the naming is mostly consistent with a minor deviation.

Tool Count5/5

With 15 tools, the server sits at the upper edge of the well-scoped range, but each tool earns its place in the CSV/spreadsheet domain—covering conversions, cleaning, merging, diffing, reconciliation, matching, and Excel I/O. The count feels appropriate for the server's broad yet focused scope.

Completeness5/5

The toolset covers the full lifecycle of table manipulation: reading (read_xlsx), encoding repair, cleaning and transforming (clean_table), merging (merge_tables), comparing (diff_tables, reconcile_ledger), matching without keys (match_transactions), entity deduplication, and output to various formats (JSON, MD, chart, QBO, XLSX). No obvious gaps are evident for common tasks.