
GoldenAnalysis
This server wraps the GoldenMatch entity resolution toolkit, which finds duplicate records across messy datasets with a 97.2% F1 score out of the box. You get access to deduplication, clustering, and the broader Golden Suite pipeline (InferMap for schema alignment, GoldenCheck for profiling, GoldenFlow for standardization). The MCP layer exposes 36+ tools including auto_configure for adaptive tuning and controller_telemetry for inspecting clustering decisions. Useful when you need to clean customer lists, merge data sources, or resolve entities across organizations without writing custom fuzzy matching logic. The zero-config defaults work immediately, and a learning memory system stops asking for the same correction twice across runs.
- tools
- 42
- transport
- STDIO
- last updated
- Aug 16, 2026
Install
From registry metadata$ npx add-mcp 'uvx goldenanalysis' --name goldenmatchRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add goldenmatch -- uvx goldenanalysisRun in your terminal. Replace YOUR_* placeholders with real values; add --scope user to install for every project.
Tools
Verified live · 42 toolsVerified live against the running server on Jun 10, 2026.
analyze_dataProfile data, detect domain, recommend ER strategy1 params
Profile data, detect domain, recommend ER strategy
file_path*stringauto_configureRun 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`.2 params
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`.
constraintsobjectfile_path*stringcontroller_telemetryReturn 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.
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.
No parameters. Call it with no arguments.
agent_deduplicateRun full ER pipeline with confidence gating and reasoning2 params
Run full ER pipeline with confidence gating and reasoning
configobjectfile_path*stringagent_match_sourcesMatch two files with intelligent strategy selection3 params
Match two files with intelligent strategy selection
configobjectfile_a*stringfile_b*stringagent_explain_pairNatural language explanation for a record pair4 params
Natural language explanation for a record pair
exactarrayfuzzyobjectrecord_a*objectrecord_b*objectagent_explain_clusterExplain why records are in the same cluster1 params
Explain why records are in the same cluster
cluster_id*integeragent_review_queueGet borderline pairs awaiting approval1 params
Get borderline pairs awaiting approval
job_name*stringagent_approve_rejectApprove or reject a review queue pair6 params
Approve or reject a review queue pair
decided_by*stringdecision*stringid_a*integerid_b*integerjob_name*stringreasonstringagent_compare_strategiesCompare ER strategies on your data2 params
Compare ER strategies on your data
file_path*stringground_truthstringsuggest_pprlCheck if data needs privacy-preserving matching1 params
Check if data needs privacy-preserving matching
file_path*stringscan_qualityRun 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]2 params
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]
domainstringfile_path*stringfix_qualityRun 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]4 params
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]
domainstringfile_path*stringfix_modestringsafe · moderatedefault: safeoutput_pathstringrun_transformsRun 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]2 params
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]
file_path*stringoutput_pathstringlist_correctionsList stored Learning Memory corrections, optionally filtered by dataset. Returns id_a, id_b, decision, source, trust, reason, matchkey_name, dataset, original_score, created_at.2 params
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.
datasetstringpathstringadd_correctionAdd a pair correction to Learning Memory. Source is set to 'agent' with trust=0.5 (lower than human steward decisions which are 1.0). Pair (id_a, id_b) is canonicalized to (min, max) before storage.7 params
Add a pair correction to Learning Memory. Source is set to 'agent' with trust=0.5 (lower than human steward decisions which are 1.0). Pair (id_a, id_b) is canonicalized to (min, max) before storage.
dataset*stringdecision*stringapprove · rejectid_a*integerid_b*integermatchkey_namestringpathstringreasonstringlearn_thresholdsForce 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.2 params
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.
matchkey_namestringpathstringmemory_statsReturn Learning Memory status: total correction count, last learn time, and current learned adjustments. Cheap; safe for status checks.1 params
Return Learning Memory status: total correction count, last learn time, and current learned adjustments. Cheap; safe for status checks.
pathstringmemory_exportReturn all corrections as a list of dicts (CSV-shaped). Caller is responsible for writing the file. Optionally filter by dataset.2 params
Return all corrections as a list of dicts (CSV-shaped). Caller is responsible for writing the file. Optionally filter by dataset.
datasetstringpathstringidentity_resolveResolve 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.2 params
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.
pathstringrecord_id*stringidentity_listList identities, optionally filtered by dataset/status.5 params
List identities, optionally filtered by dataset/status.
datasetstringlimitintegeroffsetintegerpathstringstatusstringidentity_historyReturn the temporal event log for an identity.3 params
Return the temporal event log for an identity.
entity_id*stringlimitintegerpathstringidentity_conflictsList evidence edges marked `conflicts_with`.2 params
List evidence edges marked `conflicts_with`.
datasetstringpathstringidentity_mergeManually merge two identities. All records from `absorb_entity_id` are reassigned to `keep_entity_id`.4 params
Manually merge two identities. All records from `absorb_entity_id` are reassigned to `keep_entity_id`.
absorb_entity_id*stringkeep_entity_id*stringpathstringreasonstringidentity_splitSplit a subset of records off an identity into a brand-new identity. The original keeps the remaining records.4 params
Split a subset of records off an identity into a brand-new identity. The original keeps the remaining records.
entity_id*stringpathstringreasonstringrecord_ids*arrayget_statsGet dataset statistics: record count, cluster count, match rate, cluster sizes.
Get dataset statistics: record count, cluster count, match rate, cluster sizes.
No parameters. Call it with no arguments.
find_duplicatesFind duplicate matches for a record. Provide field values to search against the loaded dataset.2 params
Find duplicate matches for a record. Provide field values to search against the loaded dataset.
record*objecttop_kintegerexplain_matchExplain why two records match or don't match. Shows per-field score breakdown.2 params
Explain why two records match or don't match. Shows per-field score breakdown.
record_a*objectrecord_b*objectlist_clustersList duplicate clusters found in the dataset. Returns cluster IDs, sizes, and member counts.2 params
List duplicate clusters found in the dataset. Returns cluster IDs, sizes, and member counts.
limitintegermin_sizeintegerget_clusterGet details of a specific cluster: all member records and their field values.1 params
Get details of a specific cluster: all member records and their field values.
cluster_id*integerget_golden_recordGet the merged golden (canonical) record for a cluster.1 params
Get the merged golden (canonical) record for a cluster.
cluster_id*integermatch_recordMatch 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"}3 params
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"}
record*objectthresholdnumbertop_kintegerunmerge_recordRemove 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.1 params
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.
record_id*integershatter_clusterBreak an entire cluster into individual records. All members become singletons. Use when a cluster is completely wrong.1 params
Break an entire cluster into individual records. All members become singletons. Use when a cluster is completely wrong.
cluster_id*integersuggest_configAnalyze 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"}]1 params
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"}]
bad_merges*arrayprofile_dataGet data quality profile: column types, null rates, unique counts, sample values.
Get data quality profile: column types, null rates, unique counts, sample values.
No parameters. Call it with no arguments.
export_resultsExport matching results to a file (CSV or JSON).2 params
Export matching results to a file (CSV or JSON).
formatstringcsv · jsondefault: csvoutput_path*stringlist_domainsList available domain extraction rulebooks (built-in + user-defined).
List available domain extraction rulebooks (built-in + user-defined).
No parameters. Call it with no arguments.
create_domainCreate a custom domain extraction rulebook. Define patterns for a specific data domain (medical devices, automotive parts, real estate, etc.).7 params
Create a custom domain extraction rulebook. Define patterns for a specific data domain (medical devices, automotive parts, real estate, etc.).
attribute_patternsobjectbrand_patternsarrayidentifier_patternsobjectname*stringscopestringlocal · globaldefault: localsignals*arraystop_wordsarraytest_domainTest a domain extraction rulebook against sample records. Shows what features would be extracted from the loaded data.2 params
Test a domain extraction rulebook against sample records. Shows what features would be extracted from the loaded data.
domain_name*stringsample_sizeintegerpprl_auto_configAnalyze the loaded dataset and recommend optimal PPRL (privacy-preserving record linkage) configuration. Returns recommended fields, bloom filter parameters, threshold, and explanation.2 params
Analyze the loaded dataset and recommend optimal PPRL (privacy-preserving record linkage) configuration. Returns recommended fields, bloom filter parameters, threshold, and explanation.
security_levelstringstandard · high · paranoiddefault: highuse_llmbooleanpprl_linkRun privacy-preserving record linkage between two parties' data. Computes bloom filters, matches records without sharing raw data. Specify fields, threshold, and security level.5 params
Run privacy-preserving record linkage between two parties' data. Computes bloom filters, matches records without sharing raw data. Specify fields, threshold, and security level.
fields*arrayfile_a*stringfile_b*stringsecurity_levelstringstandard · high · paranoiddefault: highthresholdnumberSponsors
Readme
GoldenMatch
Find the rows in your data that are the same person, company or product. No rules to write, no labelled pairs, no model to train.
Zero-config entity resolution for Python. Point it at a CSV or a table: it chooses how to match, shows you what it chose, and merges each group of duplicates into one golden record.
Details
- Repository
- github.com/benseverndev-oss/goldenmatch
- Website
- github.com/benseverndev-oss/goldenmatch/tree/main/packages/python/goldenanalysis#readme
- Category
- Data & Analytics
- Package
goldenanalysis- Transport
- STDIO
- Registry
- MCP registry, active
- Prompts
- 5
- Tools verified
- Jun 10, 2026