MCP Uptime
← MCP Reliability Index  /  AI & LLM
G

GoldenMatch

io.github.benseverndev-oss/goldenmatch
Find duplicate records in 30 seconds. Zero-config entity resolution, 97.2% F1 out of the box.
healthy
status
77
tools exposed
451ms
connect latency
5d1b3321783d
schema fingerprint

Tools (77)

analyze_data
Profile data, detect domain, recommend ER strategy
auto_configure
Run AutoConfigController on a CSV; return the committed GoldenMatchConfig (incl. negative_evidence / Path Y when chosen) plus telemetry — stop_reason, health, decision trace, indicator column priors. Programmatic equivalent of `goldenmatch autoconfig`.
controller_telemetry
Return the AutoConfigController telemetry from the most recent `auto_configure` or `agent_deduplicate` call in this MCP session. Same JSON shape as the web /api/v1/controller/telemetry endpoint.
agent_deduplicate
Run full ER pipeline with confidence gating and reasoning
agent_match_sources
Match two files with intelligent strategy selection
agent_explain_pair
Natural language explanation for a record pair
agent_explain_cluster
Explain why records are in the same cluster
agent_review_queue
Get borderline pairs awaiting approval
agent_approve_reject
Approve or reject a review queue pair
agent_compare_strategies
Compare ER strategies on your data
suggest_pprl
Check if data needs privacy-preserving matching
scan_quality
Run GoldenCheck data quality scan on a CSV file. Returns issues found (encoding errors, Unicode problems, format violations) without applying fixes. Requires goldencheck: pip install goldenmatch[quality]
fix_quality
Run GoldenCheck scan and apply fixes to a CSV file. Returns the fixed data summary and a manifest of all fixes applied. Requires goldencheck: pip install goldenmatch[quality]
run_transforms
Run GoldenFlow data transforms on a CSV file. Normalizes phone numbers (E.164), dates (ISO), categorical spelling, and Unicode issues. Returns a manifest of transforms applied. Requires goldenflow: pip install goldenmatch[transform]
sensitivity
Parameter-sensitivity analysis: sweep one or more config parameters across a range and report how stable the clustering is at each value (CCMS unchanged %). Use it to find robust thresholds. Auto-configures the file if no config is given.
incremental
Match a batch of new records against an existing base dataset (without re-running the whole base). Returns matched (new_row_id, base_row_id, score) pairs plus counts. Auto-configures from the base file if no config is given.
certify_recall
Estimate match RECALL without ground truth (unsupervised). Treats each auto-configured matchkey/pass as a decorrelated system and uses capture-recapture over their overlaps to estimate how many true matches were missed. Returns a point estimate (a safe lower bound additionally needs a small labelled
retrieve_similar
Semantic retrieval (#1089): return the records in a CSV most similar to a free-text query, ranked by cosine similarity. Embeds the chosen column and the query with the zero-config in-house embedder (no cloud/torch by default) and runs ANN search. The read side of the RAG entity-canonicalization epic
upload_dataset
Upload a local file's bytes to the server and get back a server-side path to reuse across other tools (analyze_data, auto_configure, agent_deduplicate, ...). No hosting needed. Send base64 (default) or raw text via `encoding`. Uploaded files are ephemeral scratch, reaped after GOLDENMATCH_MCP_UPLOAD
list_corrections
List stored Learning Memory corrections, optionally filtered by dataset. Returns id_a, id_b, decision, source, trust, reason, matchkey_name, dataset, original_score, created_at.
add_correction
Add a Learning Memory correction. Two shapes: - pair-level: decision='approve' or 'reject', requires id_a + id_b - field-level (v1.18.2+): decision='field_correct', requires cluster_id + field_name + corrected_value Source is 'agent' with trust=0.5 (lower than human steward 1.0). Pair (id_a, id_
list_plugins
List all registered goldenmatch plugins by category. Includes the 22 v1.18.2 predefined plugins (numeric/format/business/aggregation) plus any user-registered plugins via entry-points or PluginRegistry.register_*(). Each entry includes name, source (builtin or user), category, and the first line of
learn_thresholds
Force a MemoryLearner pass over accumulated corrections. Returns the list of LearnedAdjustments produced (matchkey_name, threshold, sample_size, learned_at). Requires >= 10 corrections per matchkey before threshold tuning fires; otherwise returns an empty list.
memory_stats
Return Learning Memory status: total correction count, last learn time, and current learned adjustments. Cheap; safe for status checks.
memory_export
Return all corrections as a list of dicts (CSV-shaped). Caller is responsible for writing the file. Optionally filter by dataset.
memory_import
Import corrections from a list of dicts (the exact shape memory_export returns). Upserts into the store: higher trust wins, same trust = latest wins. Returns the count imported.
identity_resolve
Resolve a record_id to its durable identity. Returns the full identity view (members, evidence edges, recent events) or null when no identity exists for that record.
identity_list
List identities, optionally filtered by dataset/status.
identity_history
Return the temporal event log for an identity.
identity_conflicts
List evidence edges marked `conflicts_with`.
identity_merge
Manually merge two identities. All records from `absorb_entity_id` are reassigned to `keep_entity_id`. The merge events are stamped with `actor`/`trust` provenance so the audit log records who merged these and on what authority.
identity_split
Split a subset of records off an identity into a brand-new identity. The original keeps the remaining records. The split events carry `actor`/`trust` provenance.
identity_claim
Claim a record into an identity, moving it out of any prior entity ('this record belongs to that identity'). Emits a provenance-stamped `claimed` event on both the gaining and losing entities.
identity_resolve_conflict
Adjudicate a `conflicts_with` pair: 'same' keeps the entity intact, 'distinct' splits the second record out into a new identity, 'defer' only logs. Records a durable mediation verdict + event with actor/trust provenance, and stops the conflict re-surfacing in the open-conflicts queue.
identity_audit
Export the append-only identity audit log in commit order: every event with actor / trust / timestamp / reason, so a reviewer can reconstruct exactly which actor changed what, when, and why. Optionally filtered by dataset / actor.
identity_audit_seal
Anchor the append-only audit log with a tamper-evidence seal: a chained sha256 root over every event since the last seal. Cheap and idempotent (a no-op when nothing new has been logged). Run it periodically (or after a batch of stewardship actions) so the history becomes provably untampered. Optiona
identity_audit_verify
Verify the append-only audit log against its seal chain. Replays the per-event content hashes and the seal roots to detect content edits, deletion, reordering, and insertion of any sealed event. Returns {ok, events_checked, seals_checked} plus the ids of any content mismatches / broken seals / missi
identity_show
Fetch the full detail of one identity by entity_id: its member records, evidence edges, and recent event log. Returns {found: false} when no such entity exists.
identity_profile
MDM profile of one entity: record count + per-source breakdown, golden record, confidence, conflict count, canonical version (structural-event count), and first/last activity. Returns {found: false} when no such entity exists.
identity_stats
Graph-level summary / health stats: entities by status, total records, records-per-entity distribution, conflict total, source mix, and the largest entities. Optionally scoped to a dataset.
identity_worklist
Prioritized steward worklist: active entities needing attention (open conflicts and/or confidence below weak_confidence), highest conflict count first.
plan_routing
Project per-stage distributed routing (scoring/clustering/golden) for a given data shape + cluster. Pure; no controller run.
explain_routing
Human-readable explanation of why each stage is routed the way it is, with the driver-RAM projection that drove it.
lint_routing
Flag config/env overrides that force a slow path (e.g. CLUSTERING_THRESHOLD=0 when the edge set fits driver RAM). ERROR at scale; would_refuse mirrors the runtime guard.
get_stats
Get dataset statistics: record count, cluster count, match rate, cluster sizes.
find_duplicates
Find duplicate matches for a record. Provide field values to search against the loaded dataset.
explain_match
Explain why two records match or don't match. Shows per-field score breakdown.
list_clusters
List duplicate clusters found in the dataset. Returns cluster IDs, sizes, and member counts.
get_cluster
Get details of a specific cluster: all member records and their field values.
get_golden_record
Get the merged golden (canonical) record for a cluster.
match_record
Match a single record against the loaded dataset in real-time. Paste a record's fields and instantly see if it matches any existing record. Uses the configured matchkeys, scorers, and thresholds. Example: {"name": "John Smith", "email": "john@test.com", "zip": "10001"}
unmerge_record
Remove a record from its cluster. The record becomes a singleton. Remaining cluster members are re-clustered using stored pair scores. Use this to fix bad merges.
shatter_cluster
Break an entire cluster into individual records. All members become singletons. Use when a cluster is completely wrong.
suggest_config
Analyze bad merges and suggest config changes. Provide examples of incorrect merges (pairs that should NOT have matched) and GoldenMatch will identify which fields/thresholds to tighten. Example: [{"record_a": {...}, "record_b": {...}, "reason": "different people"}]
review_config
Run the config healer over the loaded dataset: analyze the dedupe run and return ranked, self-verified suggestions for improving the matching config (thresholds, scorers, negative evidence, blocking). Each suggestion carries an id, kind, target, rationale, and a machine-applicable patch. Requires th
profile_data
Get data quality profile: column types, null rates, unique counts, sample values.
export_results
Export matching results to a file (CSV or JSON).
list_domains
List available domain extraction rulebooks (built-in + user-defined).
create_domain
Create a custom domain extraction rulebook. Define patterns for a specific data domain (medical devices, automotive parts, real estate, etc.).
test_domain
Test a domain extraction rulebook against sample records. Shows what features would be extracted from the loaded data.
pprl_auto_config
Analyze the loaded dataset and recommend optimal PPRL (privacy-preserving record linkage) configuration. Returns recommended fields, bloom filter parameters, threshold, and explanation.
pprl_link
Run privacy-preserving record linkage between two parties' data. Computes bloom filters, matches records without sharing raw data. Specify fields, threshold, and security level.
evaluate
Score the loaded run against ground-truth pairs. Loads a ground-truth CSV (id_a,id_b columns) and returns precision, recall, and F1 for the current clustering.
analyze_blocking
Diagnose blocking on the loaded dataset: returns ranked blocking key candidates with block counts, max block size, total candidate comparisons, and estimated recall. Use it to explain why matching is slow or produces too many candidate pairs.
compare_clusters
Compare two ER clustering outcomes on the same dataset without ground truth (CCMS): classifies each cluster as unchanged / merged / partitioned / overlapping and returns the Talburt-Wang Index. Both inputs are JSON cluster files (as written by export-style output).
schema_match
Auto-map columns between two files with different schemas. Returns proposed (col_a, col_b) mappings with a confidence score and method (synonym / name_sim / composite). Useful before matching two sources.
lineage
Field-level provenance for the loaded run: for each scored pair, the per-field scores that produced the match, plus cluster id. Optionally write a lineage JSON to a directory.
list_runs
List previous dedupe/match runs (for rollback) from the run log.
rollback
Undo a previous run by DELETING its output files (looked up by run_id in the run log). Destructive: removes the files that run wrote. Use list_runs first to find the run_id.
config_weaknesses
Diagnose weaknesses in the loaded run's auto-config: columns admitted that shouldn't be (source/provenance labels, per-row IDs), oversized or shared-value blocks, null sinks, low-signal matchkeys, and over-merging. Returns ranked findings, each with a plain-English explanation + a concrete fix, plus
dedupe
Alias for `find_duplicates`. Find duplicate matches for a record. Provide field values to search against the loaded dataset.
match
Alias for `match_record`. Match a single record against the loaded dataset in real-time. Paste a record's fields and instantly see if it matches any existing record. Uses the configured matchkeys, scorers, and thresholds. Example: {"name": "John Smith", "email": "john@test.com", "zip": "10001"}
explain_pair
Alias for `explain_match`. Explain why two records match or don't match. Shows per-field score breakdown.
profile
Alias for `profile_data`. Get data quality profile: column types, null rates, unique counts, sample values.
explain_cluster
Alias for `agent_explain_cluster`. Explain why records are in the same cluster
documents_suggest_schema
Propose a target extraction schema (JSON) from a sample document image/PDF.
documents_ingest
Extract records from documents (PDF/image) against a target schema into rows ready for dedupe_df. Returns records + an ingest report.

Endpoint

https://goldenmatch-mcp-production.up.railway.app/mcp/
Category: AI & LLM · Last checked: 2026-07-30T13:50:58Z

Monitor your own MCP server

Get alerted the moment yours goes down, a tool schema drifts, or an upstream silently breaks.

Get early access
How we measure →
What this means. This server responded to the MCP handshake and listed its tools without authentication. The schema fingerprint lets us flag if tool signatures silently change (schema drift) between checks.