GoldenMatch
REMOTE · GOLDENMATCH-MCP-PRODUCTION.UP.RAILWAY.APP · 2 COMPONENTS · SCANNED SEP 21
Find duplicate records in 30 seconds. Zero-config entity resolution, 97.2% F1 out of the box.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, but returns a challenge with no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
Schema Quality & AI Usability0
- Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
- Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
- Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified
Unverified: 6 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.
How do I install the GoldenMatch MCP server?
GoldenMatch is a hosted endpoint at https://goldenmatch-mcp-production.up.railway.app/mcp/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · goldenmatch-mcp-production.up.railway.app
claude mcp add --transport http benseverndev-oss-goldenmatch 'https://goldenmatch-mcp-production.up.railway.app/mcp/'
{
"mcpServers": {
"benseverndev-oss-goldenmatch": {
"url": "https://goldenmatch-mcp-production.up.railway.app/mcp/"
}
}
} {
"servers": {
"benseverndev-oss-goldenmatch": {
"type": "http",
"url": "https://goldenmatch-mcp-production.up.railway.app/mcp/"
}
}
} [mcp_servers.benseverndev-oss-goldenmatch] url = "https://goldenmatch-mcp-production.up.railway.app/mcp/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"benseverndev-oss-goldenmatch": {
"type": "remote",
"url": "https://goldenmatch-mcp-production.up.railway.app/mcp/",
"enabled": true
}
}
} openclaw mcp add benseverndev-oss-goldenmatch --url 'https://goldenmatch-mcp-production.up.railway.app/mcp/' --transport streamable-http
mcp_servers:
benseverndev-oss-goldenmatch:
url: "https://goldenmatch-mcp-production.up.railway.app/mcp/" {
"McpServers": {
"benseverndev-oss-goldenmatch": {
"Transport": "http",
"Url": "https://goldenmatch-mcp-production.up.railway.app/mcp/"
}
}
} assistant mcp add benseverndev-oss-goldenmatch -t streamable-http -u 'https://goldenmatch-mcp-production.up.railway.app/mcp/'
{
"mcpServers": {
"benseverndev-oss-goldenmatch": {
"type": "http",
"url": "https://goldenmatch-mcp-production.up.railway.app/mcp/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 22 Aug 26 0
- Endpoint reachability: reachable → behind authorisation ▼ security
- Authorization: unverified → fail ▼ security
- Stability: 0.87 → unverified ▼ security
- Transport: pass → unverified ▼ security
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 7 Aug 26 0
- The server no longer declares the “experimental” capability functional
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 0
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Probed https://goldenmatch-mcp-production.up.railway.app/mcp/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.up.railway.app | CN=YE1,O=Let's Encrypt,C=US | 29 Jul 2026 | 27 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 6da79bb561da3efeb0e751ca21abd3999fe |
| SANs: *.up.railway.app, up.railway.app | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of goldenmatch-mcp-production.up.railway.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| railway.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On connection |
| HTTP status | 401 |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://goldenmatch-mcp-production.up.railway.app/mcp/ | Auth required | 401 | |
| http (plaintext) | http://goldenmatch-mcp-production.up.railway.app/mcp/ | HTTPS enforced | 301 | https://goldenmatch-mcp-production.up.railway.app/mcp/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_correction ~276
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id | integer | – | Field-level: cluster_id the correction targets. |
| corrected_value | string | – | Field-level: the value the reviewer changed it to. |
| dataset | string | yes | Dataset identifier (e.g. file path). Required, non-empty. |
| decision | string | yes | – |
| field_name | string | – | Field-level: the column being corrected. |
| id_a | integer | – | Pair-level: first row id. Field-level: ignored. |
| id_b | integer | – | Pair-level: second row id. Field-level: ignored. |
| matchkey_name | string | – | – |
| original_value | string | – | Field-level: the value build_golden_record chose. |
| path | string | – | SQLite memory DB path. Default: .goldenmatch/memory.db |
| reason | string | – | – |
No output schema declared.
No examples provided.
agent_approve_reject ~66
Approve or reject a review queue pair
| Name | Type | Req | Description |
|---|---|---|---|
| decided_by | string | yes | – |
| decision | string | yes | – |
| id_a | integer | yes | – |
| id_b | integer | yes | – |
| job_name | string | yes | – |
| reason | string | – | – |
No output schema declared.
No examples provided.
agent_compare_strategies ~115
Compare ER strategies on your data
| Name | Type | Req | Description |
|---|---|---|---|
| encoding | string | – | Encoding of *_content (default base64) |
| file_content | string | – | Alternative to file_path: file bytes (base64 default, or raw with encoding='text') |
| file_path | string | – | – |
| filename | string | – | Original filename when using file_content |
| ground_truth | string | – | – |
| ground_truth_content | string | – | Alternative to ground_truth: base64/text bytes |
| ground_truth_name | string | – | – |
No output schema declared.
No examples provided.
agent_deduplicate ~137
Run full ER pipeline with confidence gating and reasoning
| Name | Type | Req | Description |
|---|---|---|---|
| config | object | – | – |
| encoding | string | – | Encoding of *_content (default base64) |
| exclude_columns | array | – | Column names to skip across GoldenMatch + GoldenFlow + auto-config. Optional. Layered with config.exclude_columns when both are set. force_include (env var) rescues from any opt-out path. |
| file_content | string | – | Alternative to file_path: file bytes (base64 default, or raw with encoding='text') |
| file_path | string | – | – |
| filename | string | – | Original filename when using file_content |
No output schema declared.
No examples provided.
agent_explain_cluster ~27
Explain why records are in the same cluster
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id | integer | yes | – |
No output schema declared.
No examples provided.
agent_explain_pair ~48
Natural language explanation for a record pair
| Name | Type | Req | Description |
|---|---|---|---|
| exact | array | – | – |
| fuzzy | object | – | – |
| record_a | object | yes | – |
| record_b | object | yes | – |
No output schema declared.
No examples provided.
agent_match_sources ~157
Match two files with intelligent strategy selection
| Name | Type | Req | Description |
|---|---|---|---|
| config | object | – | – |
| encoding | string | – | Encoding of *_content (default base64) |
| exclude_columns | array | – | Column names to skip across GoldenMatch + GoldenFlow + auto-config. Optional. Layered with config.exclude_columns when both are set. force_include (env var) rescues from any opt-out path. |
| file_a | string | – | – |
| file_a_content | string | – | Alternative to file_a: base64/text bytes |
| file_a_name | string | – | – |
| file_b | string | – | – |
| file_b_content | string | – | Alternative to file_b: base64/text bytes |
| file_b_name | string | – | – |
No output schema declared.
No examples provided.
agent_review_queue ~23
Get borderline pairs awaiting approval
| Name | Type | Req | Description |
|---|---|---|---|
| job_name | string | yes | – |
No output schema declared.
No examples provided.
analyze_blocking ~79
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Top N suggestions |
| sample_size | integer | – | – |
| target_block_size | integer | – | – |
No output schema declared.
No examples provided.
analyze_data ~80
Profile data, detect domain, recommend ER strategy
| Name | Type | Req | Description |
|---|---|---|---|
| encoding | string | – | Encoding of *_content (default base64) |
| file_content | string | – | Alternative to file_path: file bytes (base64 default, or raw with encoding='text') |
| file_path | string | – | – |
| filename | string | – | Original filename when using file_content |
No output schema declared.
No examples provided.
auto_configure ~180
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| constraints | object | – | – |
| encoding | string | – | Encoding of *_content (default base64) |
| exclude_columns | array | – | Column names to skip across GoldenMatch + GoldenFlow + auto-config. Optional. Layered with config.exclude_columns when both are set. force_include (env var) rescues from any opt-out path. |
| file_content | string | – | Alternative to file_path: file bytes (base64 default, or raw with encoding='text') |
| file_path | string | – | – |
| filename | string | – | Original filename when using file_content |
No output schema declared.
No examples provided.
certify_recall ~156
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.
| Name | Type | Req | Description |
|---|---|---|---|
| encoding | string | – | Encoding of *_content (default base64) |
| file_content | string | – | Alternative to file_path: file bytes (base64 default, or raw with encoding='text') |
| file_path | string | – | Dataset to dedupe + certify |
| filename | string | – | Original filename when using file_content |
No output schema declared.
No examples provided.
compare_clusters ~171
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).
| Name | Type | Req | Description |
|---|---|---|---|
| clusters_a_content | string | – | Alternative to clusters_a_path: base64/text bytes (JSON, use encoding='text') |
| clusters_a_name | string | – | – |
| clusters_a_path | string | – | Baseline clusters JSON |
| clusters_b_content | string | – | Alternative to clusters_b_path: base64/text bytes (JSON, use encoding='text') |
| clusters_b_name | string | – | – |
| clusters_b_path | string | – | Comparison clusters JSON |
| encoding | string | – | Encoding of *_content (default base64) |
No output schema declared.
No examples provided.
config_weaknesses ~117
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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_findings | integer | – | Max findings to return, ranked by severity (default 6). |
| phrasing | string | – | Wording style for the findings (default plain). |
No output schema declared.
No examples provided.
controller_telemetry ~54
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
create_domain ~227
Create a custom domain extraction rulebook. Define patterns for a specific data domain (medical devices, automotive parts, real estate, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| attribute_patterns | object | – | Named regex patterns for domain attributes (e.g. {'size': '\\b(\\d+mm)\\b'}) |
| brand_patterns | array | – | Brand/manufacturer names to extract (e.g. ['Medtronic', 'Abbott']) |
| identifier_patterns | object | – | Named regex patterns for domain identifiers (e.g. {'ndc': '\\b(\\d{5}-\\d{4}-\\d{2})\\b'}) |
| name | string | yes | Domain name (e.g. 'medical_devices', 'automotive_parts') |
| scope | string | – | Save locally (.goldenmatch/domains/) or globally (~/.goldenmatch/domains/). Default: local. |
| signals | array | yes | Column name keywords that trigger this domain (e.g. ['ndc', 'fda', 'implant']) |
| stop_words | array | – | Words to strip during name normalization |
No output schema declared.
No examples provided.
dedupe ~75
Alias for `find_duplicates`. Find duplicate matches for a record. Provide field values to search against the loaded dataset.
| Name | Type | Req | Description |
|---|---|---|---|
| record | object | yes | Record fields to match (e.g. {"name": "John Smith", "zip": "10001"}) |
| top_k | integer | – | Max results to return (default 5) |
No output schema declared.
No examples provided.
documents_ingest ~94
Extract records from documents (PDF/image) against a target schema into rows ready for dedupe_df. Returns records + an ingest report.
| Name | Type | Req | Description |
|---|---|---|---|
| backend | string | – | – |
| drop_empty | boolean | – | – |
| model | string | – | – |
| out_path | string | – | optional CSV/parquet to also write |
| paths | array | yes | – |
| schema | object | yes | schema JSON: {'fields':[...]} |
No output schema declared.
No examples provided.
documents_suggest_schema ~49
Propose a target extraction schema (JSON) from a sample document image/PDF.
| Name | Type | Req | Description |
|---|---|---|---|
| backend | string | – | – |
| model | string | – | – |
| sample_path | string | yes | – |
No output schema declared.
No examples provided.
evaluate ~85
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.
| Name | Type | Req | Description |
|---|---|---|---|
| col_a | string | – | – |
| col_b | string | – | – |
| ground_truth_path | string | yes | CSV of true match pairs (columns id_a,id_b or idA,idB). |
No output schema declared.
No examples provided.
explain_cluster ~33
Alias for `agent_explain_cluster`. Explain why records are in the same cluster
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id | integer | yes | – |
No output schema declared.
No examples provided.
explain_match ~45
Explain why two records match or don't match. Shows per-field score breakdown.
| Name | Type | Req | Description |
|---|---|---|---|
| record_a | object | yes | First record fields |
| record_b | object | yes | Second record fields |
No output schema declared.
No examples provided.
explain_pair ~52
Alias for `explain_match`. Explain why two records match or don't match. Shows per-field score breakdown.
| Name | Type | Req | Description |
|---|---|---|---|
| record_a | object | yes | First record fields |
| record_b | object | yes | Second record fields |
No output schema declared.
No examples provided.
explain_routing ~67
Human-readable explanation of why each stage is routed the way it is, with the driver-RAM projection that drove it.
| Name | Type | Req | Description |
|---|---|---|---|
| cluster | object | – | – |
| driver_mem_gb | number | – | – |
| estimated_pair_count | integer | yes | – |
| n_rows | integer | yes | – |
No output schema declared.
No examples provided.
export_results ~44
Export matching results to a file (CSV or JSON).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Output format (default csv) |
| output_path | string | yes | File path to save results |
No output schema declared.
No examples provided.
find_duplicates ~69
Find duplicate matches for a record. Provide field values to search against the loaded dataset.
| Name | Type | Req | Description |
|---|---|---|---|
| record | object | yes | Record fields to match (e.g. {"name": "John Smith", "zip": "10001"}) |
| top_k | integer | – | Max results to return (default 5) |
No output schema declared.
No examples provided.
fix_quality ~177
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]
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Optional domain hint (healthcare, finance, ecommerce) |
| encoding | string | – | Encoding of *_content (default base64) |
| file_content | string | – | Alternative to file_path: file bytes (base64 default, or raw with encoding='text') |
| file_path | string | – | Path to the CSV file to fix |
| filename | string | – | Original filename when using file_content |
| fix_mode | string | – | Fix aggressiveness: safe (conservative) or moderate (balanced). Default: safe |
| output_path | string | – | Optional path to save the fixed CSV. If omitted, returns summary only. |
No output schema declared.
No examples provided.
get_cluster ~36
Get details of a specific cluster: all member records and their field values.
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id | integer | yes | Cluster ID to look up |
No output schema declared.
No examples provided.
get_golden_record ~32
Get the merged golden (canonical) record for a cluster.
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id | integer | yes | Cluster ID |
No output schema declared.
No examples provided.
get_stats ~24
Get dataset statistics: record count, cluster count, match rate, cluster sizes.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
identity_audit ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | – | – |
| dataset | string | – | – |
| limit | integer | – | – |
| path | string | – | – |
No output schema declared.
No examples provided.
identity_audit_seal ~133
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | – | Principal sealing the log. Defaults to 'agent'. |
| dataset | string | – | – |
| path | string | – | Identity DB path |
No output schema declared.
No examples provided.
identity_audit_verify ~99
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | – | – |
| path | string | – | Identity DB path |
No output schema declared.
No examples provided.
identity_claim ~133
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | – | Principal, e.g. 'agent:claude'. Defaults to 'agent'. |
| entity_id | string | yes | Entity to claim the record into |
| path | string | – | – |
| reason | string | – | – |
| record_id | string | yes | record id in `{source}:{source_pk}` form |
| trust | number | – | Trust in [0,1]. Default by actor prefix. |
No output schema declared.
No examples provided.
identity_conflicts ~32
List evidence edges marked `conflicts_with`.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | – | – |
| path | string | – | – |
No output schema declared.
No examples provided.
identity_history ~39
Return the temporal event log for an identity.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_id | string | yes | – |
| limit | integer | – | – |
| path | string | – | – |
No output schema declared.
No examples provided.
identity_list ~52
List identities, optionally filtered by dataset/status.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | – | – |
| limit | integer | – | – |
| offset | integer | – | – |
| path | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
identity_merge ~159
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.
| Name | Type | Req | Description |
|---|---|---|---|
| absorb_entity_id | string | yes | – |
| actor | string | – | Principal making the change, e.g. 'agent:claude' or 'steward:alice'. Defaults to 'agent'. |
| keep_entity_id | string | yes | – |
| path | string | – | – |
| reason | string | – | – |
| trust | number | – | Trust of the actor in [0,1]. Defaults by actor prefix (steward 1.0, agent 0.5). |
No output schema declared.
No examples provided.
identity_profile ~74
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_id | string | yes | – |
| path | string | – | Identity DB path |
No output schema declared.
No examples provided.
identity_resolve ~70
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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | – | Identity DB path |
| record_id | string | yes | record id in `{source}:{source_pk}` form |
No output schema declared.
No examples provided.
identity_resolve_conflict ~186
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | – | Principal, e.g. 'steward:alice'. Defaults to 'agent'. |
| apply | boolean | – | Act on the verdict (split on 'distinct'); false = log only. |
| dataset | string | – | – |
| path | string | – | – |
| reason | string | – | – |
| record_a_id | string | yes | – |
| record_b_id | string | yes | – |
| resolution | string | yes | – |
| trust | number | – | Trust in [0,1]. Default by actor prefix. |
No output schema declared.
No examples provided.
identity_show ~69
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.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_id | string | yes | – |
| event_limit | integer | – | – |
| path | string | – | Identity DB path |
No output schema declared.
No examples provided.
identity_split ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actor | string | – | Principal making the change, e.g. 'agent:claude'. Defaults to 'agent'. |
| entity_id | string | yes | – |
| path | string | – | – |
| reason | string | – | – |
| record_ids | array | yes | – |
| trust | number | – | Trust of the actor in [0,1]. Default by actor prefix. |
No output schema declared.
No examples provided.
identity_stats ~63
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | – | – |
| path | string | – | Identity DB path |
No output schema declared.
No examples provided.
identity_worklist ~68
Prioritized steward worklist: active entities needing attention (open conflicts and/or confidence below weak_confidence), highest conflict count first.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | – | – |
| limit | integer | – | – |
| path | string | – | Identity DB path |
| weak_confidence | number | – | – |
No output schema declared.
No examples provided.
incremental ~172
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.
| Name | Type | Req | Description |
|---|---|---|---|
| base_file | string | – | Existing base dataset path |
| base_file_content | string | – | Alternative to base_file: base64/text bytes |
| base_file_name | string | – | – |
| config | string | – | Optional config YAML path |
| encoding | string | – | Encoding of *_content (default base64) |
| new_records | string | – | New records file to match in |
| new_records_content | string | – | Alternative to new_records: base64/text bytes |
| new_records_name | string | – | – |
| threshold | number | – | Optional threshold override |
No output schema declared.
No examples provided.
learn_thresholds ~97
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.
| Name | Type | Req | Description |
|---|---|---|---|
| matchkey_name | string | – | Optional: learn only for this matchkey. |
| path | string | – | SQLite memory DB path. Default: .goldenmatch/memory.db |
No output schema declared.
No examples provided.
lineage ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| max_pairs | integer | – | – |
| natural_language | boolean | – | – |
| output_dir | string | – | If set, write lineage JSON here and return the path instead of inline records. |
No output schema declared.
No examples provided.
lint_routing ~89
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cluster | object | – | – |
| driver_mem_gb | number | – | – |
| env | object | – | – |
| estimated_pair_count | integer | yes | – |
| n_rows | integer | yes | – |
No output schema declared.
No examples provided.
list_clusters ~58
List duplicate clusters found in the dataset. Returns cluster IDs, sizes, and member counts.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max clusters to return (default 20) |
| min_size | integer | – | Minimum cluster size to include (default 2) |
No output schema declared.
No examples provided.
What is the GoldenMatch MCP server?
GoldenMatch is an MCP server listed in the public MCP registry as io.github.benseverndev-oss/goldenmatch. Find duplicate records in 30 seconds. Zero-config entity resolution, 97.2% F1 out of the box. This page covers its hosted endpoint (https://goldenmatch-mcp-production.up.railway.app/mcp/).
Is the GoldenMatch MCP server safe to use?
GoldenMatch scores 33 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the GoldenMatch MCP server expose?
GoldenMatch exposes 77 tools: analyze_data, auto_configure, controller_telemetry, agent_deduplicate, agent_match_sources, and 72 more. Their descriptions and schemas cost roughly 7,291 tokens of context every time the server is loaded.
Does the GoldenMatch MCP server require authentication?
Yes. GoldenMatch asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the GoldenMatch MCP server still maintained?
GoldenMatch is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.