mcpbeat

GoldenMatch MCP Server

io.github.benseverndev-oss/goldenmatch
answering

GoldenMatch is answering right now. Last checked 3 min ago. 1 829 installs a week from pypi. It exposes 77 tools. Last commit 4 Aug 2026.

Find duplicate records in 30 seconds. Zero-config entity resolution, 97.2% F1 out of the box.

Installs per day peak 1 234 · avg 505 · -18% w/w
a month agotoday
Uptime history 40 hours of history
40 hours agonow
100.0%
Uptime 24h
91 of 91 checks
77
Tools
read from the server
349 ms
Response time
average over 24h
1 829
Installs / week
npm and PyPI

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 3 min ago.

run in your terminal
claude mcp add goldenmatch --transport http https://goldenmatch-mcp-production.up.railway.app/mcp/
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "goldenmatch": {
      "url": "https://goldenmatch-mcp-production.up.railway.app/mcp/"
    }
  }
}
~/.codex/config.toml
[mcp_servers.goldenmatch]
url = "https://goldenmatch-mcp-production.up.railway.app/mcp/"
.cursor/mcp.json
{
  "mcpServers": {
    "goldenmatch": {
      "url": "https://goldenmatch-mcp-production.up.railway.app/mcp/"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "goldenmatch": {
      "url": "https://goldenmatch-mcp-production.up.railway.app/mcp/"
    }
  }
}

Available tools 77

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

identity
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. Optionally scoped to a dataset. Publish/mirror the returned root_hash to make tampering detectable by an external party.
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 / missing sealed events. Optionally scoped to a dataset.
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_conflicts
List evidence edges marked `conflicts_with`.
identity_history
Return the temporal event log for an identity.
identity_list
List identities, optionally filtered by dataset/status.
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_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_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_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_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_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_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.
agent
agent_approve_reject
Approve or reject a review queue pair
agent_compare_strategies
Compare ER strategies on your data
agent_deduplicate
Run full ER pipeline with confidence gating and reasoning
agent_explain_cluster
Explain why records are in the same cluster
agent_explain_pair
Natural language explanation for a record pair
agent_match_sources
Match two files with intelligent strategy selection
agent_review_queue
Get borderline pairs awaiting approval
explain
explain_cluster
Alias for `agent_explain_cluster`. Explain why records are in the same cluster
explain_match
Explain why two records match or don't match. Shows per-field score breakdown.
explain_pair
Alias for `explain_match`. Explain why two records match or don't match. Shows per-field score breakdown.
explain_routing
Human-readable explanation of why each stage is routed the way it is, with the driver-RAM projection that drove it.
memory
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.
memory_stats
Return Learning Memory status: total correction count, last learn time, and current learned adjustments. Cheap; safe for status checks.
analyze
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.
analyze_data
Profile data, detect domain, recommend ER strategy
documents
documents_ingest
Extract records from documents (PDF/image) against a target schema into rows ready for dedupe_df. Returns records + an ingest report.
documents_suggest_schema
Propose a target extraction schema (JSON) from a sample document image/PDF.
match
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": "[email protected]", "zip": "10001"}
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": "[email protected]", "zip": "10001"}
pprl
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.
profile
profile
Alias for `profile_data`. Get data quality profile: column types, null rates, unique counts, sample values.
profile_data
Get data quality profile: column types, null rates, unique counts, sample values.
suggest
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"}]
suggest_pprl
Check if data needs privacy-preserving matching
auto
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`.
certify
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 audit; see `goldenmatch evaluate --certify --audit-out`). Needs >=3 decorrelated systems.
cluster
get_cluster
Get details of a specific cluster: all member records and their field values.
clusters
list_clusters
List duplicate clusters found in the dataset. Returns cluster IDs, sizes, and member counts.
compare
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).
config
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 a one-paragraph summary.
controller
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.
correction
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_b) is canonicalized to (min, max) before storage.
corrections
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.
dedupe
dedupe
Alias for `find_duplicates`. Find duplicate matches for a record. Provide field values to search against the loaded dataset.
domain
create_domain
Create a custom domain extraction rulebook. Define patterns for a specific data domain (medical devices, automotive parts, real estate, etc.).
domains
list_domains
List available domain extraction rulebooks (built-in + user-defined).
duplicates
find_duplicates
Find duplicate matches for a record. Provide field values to search against the loaded dataset.
evaluate
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.
export
export_results
Export matching results to a file (CSV or JSON).
fix
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]
golden
get_golden_record
Get the merged golden (canonical) record for a cluster.
incremental
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.
learn
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.
lineage
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.
lint
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.
plan
plan_routing
Project per-stage distributed routing (scoring/clustering/golden) for a given data shape + cluster. Pure; no controller run.
plugins
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 the merge docstring.
retrieve
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 -- fetch candidate records by query without running a full dedupe.
review
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 the native kernel (pip install goldenmatch[native]); returns an empty list otherwise.
rollback
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.
runs
list_runs
List previous dedupe/match runs (for rollback) from the run log.
scan
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]
schema
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.
sensitivity
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.
shatter
shatter_cluster
Break an entire cluster into individual records. All members become singletons. Use when a cluster is completely wrong.
stats
get_stats
Get dataset statistics: record count, cluster count, match rate, cluster sizes.
test
test_domain
Test a domain extraction rulebook against sample records. Shows what features would be extracted from the loaded data.
transforms
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]
unmerge
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.
upload
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_TTL (default 24h); re-upload if you need a path older than that. Max size GOLDENMATCH_MCP_MAX_UPLOAD_BYTES (default 64MB) -- above it, pass a public http(s) URL as file_path instead.

Endpoints

URLTransportStateLatencyChecked
https://goldenmatch-mcp-production.up.railway.app/mcp/ streamable-http answering 362 ms 3 min ago

GoldenMatch — questions

Answers built from our own checks of this server.

What can GoldenMatch do?
It exposes 77 tools, read directly from the server on our last check. Among them: add_correction, agent_approve_reject, agent_compare_strategies, agent_deduplicate, agent_explain_cluster, agent_explain_pair and 71 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is GoldenMatch mostly used for?
Its tools cluster around identity, agent and explain. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is GoldenMatch working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 349 ms. The bar chart above shows every period we have measured.
How do I connect GoldenMatch?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does GoldenMatch need an API key?
No. GoldenMatch completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 77 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is GoldenMatch?
It answers our handshake in 349 ms on average, which is faster than 40% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use GoldenMatch?
The pypi package goldenmatch was installed 1 829 times in the last week. Week over week that is -18%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is GoldenMatch open source?
Yes — it is published under the MIT licence, written in Python, 128 stars on GitHub and 5 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.