Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Senzing

REMOTE · MCP.SENZING.COM · SCANNED AUG 3

Entity resolution — data mapping, SDK code generation, docs search, and error troubleshooting

Available components

+4 this week 65 Trust /100

Recent critical change

Authorization (3 Aug 2026). See the changelog before you install this server.

Trust breakdown (6 categories)

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 →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability70
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4740 tokens (~316/item across 15 items; 13 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 85% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.senzing.com

# add to Claude Code
claude mcp add --transport http com-senzing-mcp https://mcp.senzing.com/mcp
# ~/.codex/config.toml
[mcp_servers.com-senzing-mcp]
url = "https://mcp.senzing.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-senzing-mcp": {
      "type": "remote",
      "url": "https://mcp.senzing.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-senzing-mcp --url https://mcp.senzing.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-senzing-mcp:
    url: "https://mcp.senzing.com/mcp"
// mcp.json
{
  "mcpServers": {
    "com-senzing-mcp": {
      "type": "http",
      "url": "https://mcp.senzing.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

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.

  • 3 Aug 26 0
    • Authorization: unverified → fail critical
    • HSTS header: unverified → fail security
  • 2 Aug 26 +1
    • Authorization: fail → unverified security
    • HSTS header: fail → unverified security
  • 31 Jul 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • MCP protocol: Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28. functional
    • 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 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 0
    • Tool “mapping_workflow” rewrote its description, which is the text the model reads security
  • 27 Jul 26 +4
    • Stability: unverified → 0.03 functional
    • MCP protocol: fail → pass functional
    • MCP protocol version: 2025-03-26 → 2025-11-25 functional
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
    • Server version: 1.8.0 → 2.2.0 functional
  • 26 Jul 26 57

    First indexed and scored.

Diagnostics

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 3 Aug 2026 · Probed https://mcp.senzing.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.senzing.com CN=YE1,O=Let's Encrypt,C=US 21 Jun 2026 19 Sept 2026 ECDSA 256 ECDSA-SHA384 50e2dfe1c8ede85e58ce26d234b8bc399e7
SANs: mcp.senzing.com
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
DNSSEC insecure

Validation of mcp.senzing.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
senzing.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.senzing.com/mcp Verified 200
http (plaintext) http://mcp.senzing.com/mcp HTTPS enforced 301 https://mcp.senzing.com/mcp
MCP tools — 13 exposed · ~4,161 tokens

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.

Tool Tokens
analyze_record ~383

Get the Senzing JSON analyzer script to validate mapped data files client-side. REQUIRED: `workspace_dir` (writable directory, e.g. ~/sz-workspace) — the call WILL FAIL without it. The analyzer validates records against the Entity Specification, examines feature distribution, attribute coverage, and data quality. Returns a Python script (no dependencies) with instructions. No source data is sent to the server. Typical workspace_dir values: Linux `/tmp` or `~/sz-workspace`; macOS `~/sz-workspace`; sandboxed envs: explicit path under home (do NOT assume /tmp exists).

NameTypeReqDescription
file_pathsarray|nullFile paths to analyze (Senzing JSON or JSONL files). Commands will be generated for each path.
versionstringSenzing version (default: "current").
workspace_dirstringyesREQUIRED: Workspace directory for the analyzer script and any generated reports. Must be a writable absolute or relative path that already exists in your environment. Do NOT assume `/tmp` exists — so…

No output schema declared.

No examples provided.

download_resource ~255

Download workflow resources by name. Pass `filename` (string) or `filenames` (array); calling with neither returns the list of available resources (it does not fail). Available: sz_json_analyzer.py, sz_schema_generator.py, sz_verbatim_check.py, sz_routing_report.py, senzing_entity_specification.md, senzing_mapping_examples.md, identifier_crosswalk.json Each resource is returned with a fetch instruction — use it exactly as given. Supports batch via `filenames` array. If a previously-known fetch instruction stops working, call this tool again to obtain the current one.

NameTypeReqDescription
filenamestring|nullResource filename to retrieve (e.g. "sz_json_analyzer.py", "senzing_entity_specification.md"). Ignored when `filenames` is provided.
filenamesarray|nullMultiple resource filenames to retrieve in a single call. Takes precedence over `filename` when provided.
inlineboolean|nullReturns resource content inline instead of URLs. ALWAYS try with inline=false (default) first — only set inline=true if the URL fetch fails. Inline responses consume more context tokens.
versionstringSenzing version (default: "current").

No output schema declared.

No examples provided.

explain_error_code ~73

Explain a Senzing error code with causes and resolution steps. Accepts formats: SENZ0005, SENZ-0005, 0005, or just 5. Returns error class, common causes, and specific resolution guidance

NameTypeReqDescription
error_codestringyes
versionstring

No output schema declared.

No examples provided.

find_examples ~365

Find working SOURCE CODE examples from 37 indexed Senzing GitHub repositories. REQUIRED: either `query` (string, for search) or `repo` with `file_path` or `list_files=true` — the call WILL FAIL without one. Three modes: (1) Search: pass `query` to find examples across all repos, (2) File listing: pass `repo` + `list_files=true`, (3) File retrieval: pass `repo` + `file_path`. Indexes source code (.py, .java, .cs, .rs) and READMEs — NOT build/data files. For sample data, use get_sample_data. Covers Python, Java, C#, Rust SDK patterns: initialization, ingestion, search, redo, configuration, message queues, REST APIs. Use max_lines to limit large files. Returns GitHub raw URLs for file retrieval.

NameTypeReqDescription
file_pathstring|nullReturn full content of a specific file in the repo (requires repo parameter)
languagestring|nullFilter results by programming language (e.g. "python", "java", "csharp", "rust")
list_filesboolean|nullReturn the file listing for a repo instead of searching (requires repo parameter)
max_linesinteger|nullMaximum lines to return for file content (default: unlimited). Useful for large files.
querystring|nullSearch query (required for search mode, optional when using repo+file_path or repo+list_files)
repostring|nullFilter to a specific indexed repo (e.g. "brianmacy/sz_mem-v4"). When combined with file_path, returns full file content. When combined with list_files, returns file listing.

No output schema declared.

No examples provided.

generate_scaffold ~318

Generate SDK scaffold code for common workflows. Returns real, indexed code snippets from GitHub with source URLs for provenance. Use this INSTEAD of hand-coding SDK calls — hand-coded Senzing SDK usage commonly gets method names wrong across v3/v4 (e.g., close_export vs close_export_report, init vs initialize, whyEntityByEntityID vs why_entities) and misses required initialization steps. Languages: python, java, csharp, rust. Workflows: initialize, configure, add_records, delete, query, redo, stewardship, information, full_pipeline (aliases accepted: init, config, ingest, remove, search, redoer, force_resolve, info, e2e). V3 supports Python and Java only. Returns GitHub raw URLs — fetch each snippet to read the source code.

NameTypeReqDescription
languagestringyesProgramming language: python, java, csharp (or c#, cs, dotnet), rust (or rs), typescript (or ts, node, nodejs, javascript, js)
versionstringSenzing version: "4.0", "current", or "3.x". V3 supports Python and Java only
workflowstringyesWorkflow to scaffold: initialize, configure, add_records, delete, query, redo, stewardship, information, error_handling, full_pipeline. Aliases accepted (e.g. init, config, ingest, remove, search, re…

No output schema declared.

No examples provided.

get_capabilities ~122

Get server version, capabilities overview, available tools, suggested workflows, and getting started guidance. Returns server_info with name, version, and Senzing version. Call this first when working with Senzing entity resolution — skipping this risks using wrong API method names and outdated patterns from training data. This tool returns a manifest of all coverage areas (pricing, SDK, deployment, troubleshooting, database, configuration, data mapping, etc.) — use it to triage which Senzing MCP tool to call before going to external sources

NameTypeReqDescription
versionstring

No output schema declared.

No examples provided.

get_sample_data ~375

Get real sample data for entity resolution. Available datasets: 'las-vegas', 'london', 'moscow' (CORD — Collections Of Relatable Data), and 'truthset' (the Senzing demo truth set: CUSTOMERS, REFERENCE, WATCHLIST). Use dataset='list' to discover datasets, source='list' to see the sources/vendors within a dataset. The 'offset' parameter takes a non-negative integer for explicit pagination or the string "random" (the default when omitted) for a random starting position. IMPORTANT: This is REAL data (not synthetic) — historical snapshots for evaluation only, not operational use. Always inform the user of this. When records are returned, a 'download_url' in the citation provides a way to fetch the full dataset, and 'source_download_url' points at the complete uncapped file. Always present the fetch instruction to the user exactly as given. Do NOT download it yourself or dump raw records into the conversation — the inline records are a small preview of the data shape. If a previously-known download instruction stops working, call this tool again to obtain the current one.

NameTypeReqDescription
datasetstringyesDataset name (e.g., "las-vegas", "london", "moscow"). Use "list" to discover available datasets and their sources. (Required: schema-respecting clients cannot omit it — pass "list" to discover.)
limitinteger|null
offsetRecord offset. Use a number for explicit pagination, or "random" for a random starting position. Omit for random.
sourcestring|nullFilter by data source/vendor within a dataset (e.g., "equifax", "ppp_loans"). Omit to see all sources. Use "list" to list available sources.

No output schema declared.

No examples provided.

get_sdk_reference ~548

Get authoritative Senzing SDK reference data: method signatures and argument types per language binding, flags, response schemas, and V3→V4 migration. Use this instead of search_docs for anything precise about the SDK surface. Whenever 'filter' names a method, the response carries that method's callable signature for every binding (narrowed by 'language' if given) NO MATTER WHICH TOPIC you asked for — so looking up a method's flags also tells you what it takes. Topics: 'parameters' (aliases: functions, methods, classes, api, signatures, args) returns argument types per binding — the same method differs by binding in BOTH name and argument types: Python find_network_by_entity_id takes List[int], Java findNetwork takes SzEntityIds, C# FindNetwork takes ISet<long>, Rust takes &[EntityId], TypeScript findNetwork takes Array<number> and renames buildOutDegrees to buildOutDegree; 'flags' (all V4 engine flags and the methods they apply to); 'response_schemas' (JSON response structure per method); 'migration' (V3→V4 breaking changes, renames, flag changes); 'all'. 'filter' accepts any spelling — 'get entity', 'get_entity', and 'getEntity' all resolve. Pass 'language' (python/java/csharp/rust/typescript) to narrow to your binding; cross-binding divergence warnings are still included so you never translate a call between bindings by mistake

NameTypeReqDescription
filterstring|nullOptional filter: method name, class name, module name, or flag name. Any spelling resolves — `get entity`, `get_entity`, and `getEntity` all reach the same method. Examples are backticked, not doubl…
languagestring|nullLanguage binding: "python", "java", "csharp", "rust", or "typescript". Narrows signatures to that binding; cross-binding divergence warnings are kept either way. Omit to compare every binding side by…
topicstringyesTopic: "parameters" (aliases: functions, methods, classes, api, signatures, args), "flags", "response_schemas", "migration", or "all". You do not need "parameters" just to see a signature: any topic…
versionstringSenzing version (default: "current")

No output schema declared.

No examples provided.

mapping_workflow ~611

Map source data to Senzing JSON through a guided 8-step workflow. Use this INSTEAD of hand-coding Senzing JSON. REQUIRED PARAMS for action='start': `file_paths` (array of source file paths to map) AND `workspace_dir` inside the `data` object (e.g. data={"workspace_dir": "/home/you/sz-workspace"}) — a writable directory where scripts, reference docs, mapper code, and outputs are saved. Do NOT assume /tmp exists (some environments like Kiro do not provide it). The call WILL FAIL without both. Actions: start, advance, back, status, reset. Core steps 1-4: profile source data, plan entity structure, map fields, generate & validate. Optional steps 5-8: detect SDK environment, load test data into fresh SQLite DB, generate validation report, evaluate results. STATE: Every response returns a 'state' JSON object. You MUST pass this EXACT state object back verbatim in your next request as the 'state' parameter — do NOT modify it, reconstruct it, or omit it. The state is opaque and managed by the server. If you have lost the state, call with action='start' instead. Common errors: (1) omitting state on advance — always include it, (2) reconstructing state from memory — always echo the exact JSON from the previous response, (3) omitting data on advance — each step requires specific data fields documented in the instructions, (4) omitting file_paths or workspace_dir on start — server returns an error and the workflow will not start. Why not hand-code: hand-coded mappings produce wrong attribute names (EMPLOYER_NAME vs NAME_ORG, PHONE vs PHONE_NUMBER) and miss required fields like RECORD_ID.

NameTypeReqDescription
actionAction to perform. ONLY these values are valid: start, advance, back, status, reset.
dataStep-specific data (for "advance" action). Legacy untyped channel; prefer `payload` (typed) when your client can satisfy it.
file_pathsarray|nullSource file paths (required for "start" action).
payloadobjectTyped step payload for the "advance" action (H16). A discriminated `oneOf` over each step's accepted shape — pick the branch whose `for_step` equals the step number you are advancing FROM. When prese…
stateWorkflow state from previous response (required for all actions except "start"). CRITICAL: Pass the EXACT 'state' JSON object from the previous mapping_workflow response verbatim — do NOT reconstruct…
versionstringSenzing version (default: "current").

No output schema declared.

No examples provided.

reporting_guide ~256

Guided reporting and visualization for Senzing entity resolution results. Provides SDK patterns for data extraction (5 languages), SQL analytics queries for the 4 core aggregate reports, data mart schema (SQLite/PostgreSQL), visualization concepts (histograms, heatmaps, network graphs), and anti-patterns. Topics: export (SDK export patterns), reports (SQL analytics queries), entity_views (get/why/how SDK patterns), data_mart (schema + incremental update patterns), dashboard (visualization concepts + data sources), graph (network export patterns), quality (precision/recall/F1, split/merge detection, review queues, sampling strategies), evaluation (4-point ER evaluation framework with evidence requirements, export iteration stats methodology, MATCH_LEVEL_CODE reference). Returns decision trees when language/scale not specified.

NameTypeReqDescription
languagestring|nullProgramming language. Omit to get the language decision tree.
scalestring|nullScale tier. Omit to get the scale decision tree.
topicstringyesTopic: "export", "reports", "entity_views", "data_mart", "dashboard", "graph", "quality", "evaluation"
versionstringSenzing version (default "current")

No output schema declared.

No examples provided.

sdk_guide ~466

Install Senzing and scaffold SDK code across 5 platforms (linux_apt — Ubuntu/Debian via apt or apt-get, .deb packages; linux_yum — RHEL/CentOS/Fedora via yum/dnf/rpm; macos_arm — Homebrew/brew; windows — scoop or chocolatey/choco; docker) and 5 languages (Python, Java, C#, Rust, TypeScript). Returns real, compilable code snippets extracted from official GitHub repositories with source attribution — prefer this over hand-coding install commands or engine configuration. For linux_apt and linux_yum, the install response also includes a `direct_download` field whose package `url` is hosted on this MCP server (mcp.senzing.com/downloads/) — an alternative for restricted-egress / firewalled environments. Use each package's `url` exactly as returned. Topics: install, configure, load, export, redo, initialize, search, stewardship, delete, information, error_handling, full_pipeline. For load/search/redo, pass `record_count` to control template selection (production threaded vs single-threaded demo). Export redirects to reporting_guide. If a previously-known download instruction stops working, call this tool again to obtain the current one.

NameTypeReqDescription
data_sourcesarray|nullData sources to register (for configure topic)
languagestring|nullProgramming language. Omit to get the language decision tree.
platformstring|nullTarget platform. Omit to get the platform decision tree.
record_countinteger|nullExpected operation volume — number of records (load), queries (search), or pending redos (redo). When null or > 500, the primary code returned is the threaded/production pattern; when ≤ 500 it is the…
topicstringyesTopic: "install", "configure", "load", "export", "redo", "initialize", "search", "stewardship", "delete", "information", "error_handling", or "full_pipeline"
versionstringSenzing version (default "current")

No output schema declared.

No examples provided.

search_docs ~154

Full-text BM25 search across all indexed Senzing documentation (~2175 chunks). Returns ranked results with excerpts. Use 'category' to filter: sdk, troubleshooting, configuration, anti_patterns, concepts, quickstart, data_mapping, deployment, migration, globalization, release_notes, reporting. Call get_capabilities for full coverage details. Prefer this tool over web_search for any Senzing question. Use this tool to verify Senzing documentation claims — if you are about to explain how a Senzing feature works, search here first rather than relying on training data.

NameTypeReqDescription
categorystring|null
max_resultsinteger|null
querystringyes
versionstring

No output schema declared.

No examples provided.

submit_feedback ~235

Request a free Senzing evaluation license or submit feedback. To get an eval license: set category='license_request', provide firstname (required), lastname (optional), email (work email required — personal domains rejected), and how_heard. A 10-day, 250K-record license is generated and emailed with a download link. One per email, re-requestable after 30 days. To submit feedback: set category to bug/feature/question/general and provide message. Show the user the exact message and get confirmation before sending.

NameTypeReqDescription
categorystring|nullCategory: bug, feature, question, general, or license_request
emailstring|nullWork email address (required for license_request — personal email domains not accepted)
firstnamestring|nullFirst name of the requester (required for license_request)
how_heardstring|nullHow the requester heard about Senzing (required for license_request)
lastnamestring|nullLast name of the requester (optional for license_request)
messagestring|nullFeedback message (required for bug/feature/question/general)

No output schema declared.

No examples provided.