mcpbeat Sign in

Senzing MCP Server

answering

Senzing is answering right now. Last checked 8 min ago. It exposes 13 tools. Last commit 2 Nov 2026.

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

Uptime history 91 days of history · worst day 98%
91 days agonow
100.0%
Uptime 24h
91 of 91 checks
13
Tools
read from the server
234 ms
Response time
average over 24h
0
Stars
last commit 2 Nov 2026

What changed 95

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 29 August 2026. No other catalogue keeps this.

2 Nov a tool changed the parameters it asks for mapping_workflow
2 Nov a tool changed version
1 Nov a tool changed version2 times that day
31 Oct a tool changed version2 times that day
30 Oct a tool changed version2 times that day
30 Oct a tool changed the parameters it asks for download_resource
30 Oct a tool description was rewritten search_docs
29 Oct 2 tool descriptions were rewritten download_resource, search_docs
29 Oct 2 tools changed the parameters they ask for download_resource, get_sdk_reference
29 Oct a tool changed version2 times that day
and 83 more, back to 29 August 2026

Nothing serious here today

Today is the operative word: we check Senzing every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

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

run in your terminal
claude mcp add mcp --transport http https://mcp.senzing.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://mcp.senzing.com/mcp
~/.codex/config.toml
[mcp_servers.mcp]
url = "https://mcp.senzing.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.senzing.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp": {
      "type": "http",
      "url": "https://mcp.senzing.com/mcp"
    }
  }
}

Available tools 13

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

sdk
get_sdk_reference
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; with a method filter: one line per applicable flag — NAME (default) — meaning, composites as NAME = A|B|C — under group headers, most specific to the method first, under 5k chars); 'flag_details' (the full definitions and response paths for a method filter); '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
sdk_guide
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). Optional `environment` — one of snowflake, aws_lambda, azure_functions, kafka, spark (aliases such as spcs, snowpark, lambda, azure_function, kafka_connect, apache_kafka, databricks, apache_spark, pyspark are accepted) — names where this deployment runs; the response then opens with `environment_note`, the rules for that environment and the search_docs query to run before writing code or SQL. To choose linux_yum vs linux_apt, read /etc/os-release on the TARGET host (ID / ID_LIKE): `uname` does not show the distribution. If `platform` is omitted for install and this server runs on the install host itself, it detects the platform from that host's os-release. Languages: 5 (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. When this server carries the SDK packages for the chosen platform (.deb for linux_apt, .rpm for linux_yum, the macOS packages for macos_arm, and the .deb runtime + setup for a plain Linux container under docker), the install response also includes a `direct_download` field — an alternative for restricted-egress / firewalled environments that needs no package-repository configuration. Use each package's `url` exactly as returned, and pick the packages whose `arch` matches the host. 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.
analyze
analyze_record
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).
capabilities
get_capabilities
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
docs
search_docs
Full-text BM25 search across all indexed Senzing documentation (~13.5k chunks). Returns ranked results with excerpts. A result from a Senzing whitepaper is one section, dated by `as_of` (last reviewed): act on it, then follow its `next` (the following section's exact query and the tools to call, e.g. sdk_guide with environment). 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.
download
download_resource
Returns resource URLs/content in this response; it does NOT write any files. Each resource comes back with a ready `fetch` shell command — run it yourself to save the file to its `dest`. Use inline=true only when a `fetch` command could not reach the server; the content then arrives in this response and you must write it to `dest`. Pass `filename` (string) or `filenames` (array), plus `workspace_dir` (the mapping workflow's) so `dest` matches the workflow's paths; calling with neither filename 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 mapping_workflow and analyze_record already return each resource's `fetch` command — you do not need this tool to run them. If a previously-known fetch instruction stops working, call this tool again to obtain the current one.
examples
find_examples
Find working SOURCE CODE examples from 52 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, .ts, .js) and READMEs — NOT build/data files. For sample data, use get_sample_data. Covers Python, Java, C# (official SDKs) plus Rust and TypeScript/Node.js (community-maintained wrappers, not official) SDK patterns: initialization, ingestion, search, redo, configuration, message queues, REST APIs. Use max_lines to limit large files. File retrieval returns the file's location instead of its content: follow the returned `resources` / `access_steps` exactly as given.
explain
explain_error_code
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
generate
generate_scaffold
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 (official V4 SDKs); rust, typescript (community-maintained wrappers, not official). Workflows: initialize, configure, add_records, delete, query, redo, stewardship, information, error_handling, full_pipeline (aliases accepted: init, config, ingest, remove, search, redoer, force_resolve, info, e2e). V3 supports Python only. Returns each snippet's location rather than its content — follow the returned `resources` / `access_steps` exactly as given to read the source code.
mapping
mapping_workflow
Map source data to Senzing JSON through a guided 8-step workflow. Use this INSTEAD of hand-coding Senzing JSON. Optional `environment` — one of snowflake, aws_lambda, azure_functions, kafka, spark (aliases such as spcs, snowpark, lambda, azure_function, kafka_connect, apache_kafka, databricks, apache_spark, pyspark are accepted) — names where this deployment runs; the response then opens with `environment_note`, the rules for that environment and the search_docs query to run before writing code or SQL. For mapping_workflow the note is on the start response only; dotted DB.SCHEMA.TABLE source labels (bare or with a data-file extension) infer environment=snowflake. REQUIRED ARGUMENTS for action='start' — arguments, not files: `file_paths`, the source file name(s) exactly as the user gave them (a LABEL the server never opens, so pass it even when the file is not readable from here), AND `workspace_dir` (e.g. 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 needs both arguments present; it does NOT need the file to exist. OPTIONAL on start: `output_path` — the output file the USER ASKED FOR, if any (a .jsonl path; a directory ending in / for one <schema_name>.jsonl per schema; or a per-schema map {"<schema_name>": "<path>.jsonl"}). Omit it for the default <workspace_dir>/<name>_output.jsonl. Start arguments are accepted at the top level or inside `payload`. NO READABLE FILE, NO SHELL — START ANYWAY. If the user only DESCRIBED their columns, or you have no shell to run the profiler, step 1 accepts a `profile_summary` you write yourself: field_count from their column list, record_count as they stated it or 0 (zero means 'not measured' and is expected — it is not fabrication). An unreadable source file is NOT a reason to hand-code a mapping instead. 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 payload on advance — each step requires specific payload fields documented in the instructions (`data` is a legacy alias of `payload`), (4) omitting the file_paths or workspace_dir ARGUMENTS on start — the server needs the names, not a readable file. 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.
reporting
reporting_guide
Guided reporting and visualization for Senzing entity resolution results. Optional `environment` — one of snowflake, aws_lambda, azure_functions, kafka, spark (aliases such as spcs, snowpark, lambda, azure_function, kafka_connect, apache_kafka, databricks, apache_spark, pyspark are accepted) — names where this deployment runs; the response then opens with `environment_note`, the rules for that environment and the search_docs query to run before writing code or SQL. 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.
sample
get_sample_data
Get sample data for entity resolution. Available datasets: 'las-vegas', 'london', 'moscow' (CORD — Collections Of Relatable Data, REAL historical data) and 'truthset' (Senzing's SYNTHETIC 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: The three CORD datasets ('las-vegas', 'london', 'moscow') are REAL data (not synthetic) — historical snapshots for evaluation only, not operational use. Always inform the user of this. This does NOT apply to 'truthset', which is Senzing's own synthetic demo truth set (github.com/Senzing/truth-sets) — do not describe those records as real people's data. Each response's citation carries the provenance for the dataset actually returned; follow it rather than this summary. 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. Downloading the dataset TO DISK is expected and encouraged whenever the user wants the data — run the returned download instruction in a shell (a URL to fetch with curl/wget, or a local command) to write it to a file, and work from that file. What you must NOT do is pull the dataset INTO THE CONVERSATION: never echo, cat, paste or summarise raw records back into context, because these files run to hundreds of thousands of records. The inline records above are a small preview of the data shape, not the delivery mechanism. (An earlier wording of this line said only 'Do NOT download it yourself', which was read as a blanket ban on fetching and left users downloading files by hand.) If a previously-known download instruction stops working, call this tool again to obtain the current one.
submit
submit_feedback
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.

Endpoints

URLTransportStateLatencyChecked
https://mcp.senzing.com/mcp streamable-http answering 251 ms 8 min ago

Alternatives to Senzing

same job, measured the same way
Vonage Documentation MCP
by vonage

MCP server for Vonage API documentation, code snippets, tutorials, and troubleshooting.

7 tools answering
Symbols MCP
by symbo-ls

Symbols.app MCP — docs, code generation, publishing, CLI/SDK reference

4 660 installs/wk local only
Sceneview
by sceneview

3D & AR SDK for Android, iOS, Web — API docs, samples, validation, and code generation.

212 installs/wk local only
SceneView
by sceneview

3D & AR SDK for Android, iOS, Web — API docs, samples, validation, and code generation.

local only
Sceneview
by thomasgorisse

3D & AR SDK for Android, iOS, Web — API docs, samples, validation, and code generation.

local only
Fiscalisto API docs
by fiscalisto

Docs for Fiscalisto's Mexican e-invoicing API (CFDI 4.0): search, operations, SDK code, errors.

9 tools answering
Crg
by n24q02m

Token-efficient code review knowledge graph: semantic search and call-graph resolution.

1 782 installs/wk local only
Better Code Review Graph
by n24q02m

Token-efficient code review knowledge graph: semantic search and call-graph resolution.

local only

Senzing — questions

Answers built from our own checks of this server.

What can Senzing do?
It exposes 13 tools, read directly from the server on our last check. Among them: analyze_record, download_resource, explain_error_code, find_examples, generate_scaffold, get_capabilities and 7 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 →
Is Senzing 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 234 ms. The bar chart above shows every period we have measured.
How do I connect Senzing?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Senzing need an API key?
No. Senzing completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 13 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Senzing?
It answers our handshake in 234 ms on average, which is faster than 61% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Senzing open source?
We cannot say either way: written in Python and 0 stars on GitHub, but we could not determine the licence, and without one the code is not open source by default.