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 →
list_corrections ~85
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | – | Optional dataset filter (e.g. file path). |
| path | string | – | SQLite memory DB path. Default: .goldenmatch/memory.db |
No output schema declared.
No examples provided.
list_domains ~21
List available domain extraction rulebooks (built-in + user-defined).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_plugins ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
No output schema declared.
No examples provided.
list_runs ~32
List previous dedupe/match runs (for rollback) from the run log.
| Name | Type | Req | Description |
|---|---|---|---|
| output_dir | string | – | – |
No output schema declared.
No examples provided.
match ~125
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"}
| Name | Type | Req | Description |
|---|---|---|---|
| record | object | yes | Record fields to match against the dataset |
| threshold | number | – | Minimum score to consider a match (default: use config threshold) |
| top_k | integer | – | Max matches to return (default 5) |
No output schema declared.
No examples provided.
match_record ~120
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"}
| Name | Type | Req | Description |
|---|---|---|---|
| record | object | yes | Record fields to match against the dataset |
| threshold | number | – | Minimum score to consider a match (default: use config threshold) |
| top_k | integer | – | Max matches to return (default 5) |
No output schema declared.
No examples provided.
memory_export ~63
Return all corrections as a list of dicts (CSV-shaped). Caller is responsible for writing the file. Optionally filter by dataset.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | – | – |
| path | string | – | SQLite memory DB path. Default: .goldenmatch/memory.db |
No output schema declared.
No examples provided.
memory_import ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| corrections | array | yes | Correction dicts, as returned by memory_export. |
| path | string | – | SQLite memory DB path. Default: .goldenmatch/memory.db |
No output schema declared.
No examples provided.
memory_stats ~54
Return Learning Memory status: total correction count, last learn time, and current learned adjustments. Cheap; safe for status checks.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | – | SQLite memory DB path. Default: .goldenmatch/memory.db |
No output schema declared.
No examples provided.
plan_routing ~70
Project per-stage distributed routing (scoring/clustering/golden) for a given data shape + cluster. Pure; no controller run.
| 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.
pprl_auto_config ~76
Analyze the loaded dataset and recommend optimal PPRL (privacy-preserving record linkage) configuration. Returns recommended fields, bloom filter parameters, threshold, and explanation.
| Name | Type | Req | Description |
|---|---|---|---|
| security_level | string | – | Security level (default: high) |
| use_llm | boolean | – | Use LLM for enhanced recommendations (requires API key) |
No output schema declared.
No examples provided.
pprl_link ~191
Run privacy-preserving record linkage between two parties' data. Computes bloom filters, matches records without sharing raw data. Specify fields, threshold, and security level.
| Name | Type | Req | Description |
|---|---|---|---|
| encoding | string | – | Encoding of *_content (default base64) |
| fields | array | yes | Field names to match on (e.g. ['first_name', 'last_name', 'zip_code']) |
| file_a | string | – | Path to party A's CSV file |
| file_a_content | string | – | Alternative to file_a: base64/text bytes |
| file_a_name | string | – | – |
| file_b | string | – | Path to party B's CSV file |
| file_b_content | string | – | Alternative to file_b: base64/text bytes |
| file_b_name | string | – | – |
| security_level | string | – | – |
| threshold | number | – | Match threshold (default: auto-detected) |
No output schema declared.
No examples provided.
profile ~30
Alias for `profile_data`. Get data quality profile: column types, null rates, unique counts, sample values.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
profile_data ~25
Get data quality profile: column types, null rates, unique counts, sample values.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
retrieve_similar ~286
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.
| Name | Type | Req | Description |
|---|---|---|---|
| column | string | yes | Column of the corpus to embed + search |
| 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 | – | CSV/Parquet corpus to search |
| filename | string | – | Original filename when using file_content |
| filters | object | – | Optional {column: value} equality pre-filter applied before embedding |
| k | integer | – | Max records to return (default 20) |
| model | string | – | Embedder id (default 'inhouse' -- local, deterministic, no cloud/torch). Also 'all-MiniLM-L6-v2', a Vertex/OpenAI model, etc. |
| query | string | yes | Free-text query to search for |
| threshold | number | – | Minimum cosine similarity in [-1, 1] (default 0.0) |
No output schema declared.
No examples provided.
review_config ~84
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
rollback ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| output_dir | string | – | – |
| run_id | string | yes | – |
No output schema declared.
No examples provided.
run_transforms ~148
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]
| 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 | – | Path to the CSV file to transform |
| filename | string | – | Original filename when using file_content |
| output_path | string | – | Optional path to save the transformed CSV. If omitted, returns summary only. |
No output schema declared.
No examples provided.
scan_quality ~133
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]
| 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 scan |
| filename | string | – | Original filename when using file_content |
No output schema declared.
No examples provided.
schema_match ~142
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.
| Name | Type | Req | Description |
|---|---|---|---|
| encoding | string | – | Encoding of *_content (default base64) |
| 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 | – | – |
| min_score | number | – | – |
No output schema declared.
No examples provided.
sensitivity ~189
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.
| Name | Type | Req | Description |
|---|---|---|---|
| config | string | – | Optional config YAML path |
| 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 | – | CSV/Parquet to analyze |
| filename | string | – | Original filename when using file_content |
| sample_size | integer | – | Optional: randomly sample N records before sweeping |
| sweep | array | yes | Sweep specs as 'field:start:stop:step', e.g. 'threshold:0.70:0.95:0.05'. One or more. |
No output schema declared.
No examples provided.
shatter_cluster ~44
Break an entire cluster into individual records. All members become singletons. Use when a cluster is completely wrong.
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id | integer | yes | Cluster ID to shatter |
No output schema declared.
No examples provided.
suggest_config ~88
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"}]
| Name | Type | Req | Description |
|---|---|---|---|
| bad_merges | array | yes | List of bad merge examples with record_a, record_b, and optional reason |
No output schema declared.
No examples provided.
suggest_pprl ~81
Check if data needs privacy-preserving matching
| 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.
test_domain ~62
Test a domain extraction rulebook against sample records. Shows what features would be extracted from the loaded data.
| Name | Type | Req | Description |
|---|---|---|---|
| domain_name | string | yes | Name of the domain rulebook to test |
| sample_size | integer | – | Number of records to test (default 10) |
No output schema declared.
No examples provided.
unmerge_record ~58
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.
| Name | Type | Req | Description |
|---|---|---|---|
| record_id | integer | yes | Row ID of the record to unmerge |
No output schema declared.
No examples provided.
upload_dataset ~182
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.
| Name | Type | Req | Description |
|---|---|---|---|
| encoding | string | – | Encoding of file_content (default base64) |
| file_content | string | yes | File bytes, base64-encoded (or raw text with encoding='text') |
| filename | string | yes | Original filename (extension preserved for format sniffing) |
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.