Senzing
Server Details
Entity resolution — data mapping, SDK code generation, docs search, and error troubleshooting
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.5/5 across 13 of 13 tools scored.
Each tool has a clearly distinct purpose, covering different aspects of Senzing entity resolution: data validation, resource downloads, error codes, code examples, scaffolding, capabilities, sample data, SDK reference, guided workflows, reporting, installation, documentation search, and feedback submission. No two tools have overlapping functions that would cause confusion.
Tool names predominantly follow a verb_noun pattern (analyze_record, download_resource, explain_error_code, find_examples, generate_scaffold, get_capabilities, etc.). Minor deviations like 'mapping_workflow' (gerund_noun) and 'reporting_guide', 'sdk_guide' (noun_noun) are present but do not significantly harm predictability.
With 13 tools, the server is well-scoped for its purpose as a helper/guide for Senzing entity resolution. Each tool addresses a specific task in the developer workflow, from initial capability checks to sample data, documentation, and mapping assistance. The count feels neither sparse nor bloated.
The tool set covers the full spectrum of tasks a developer would need when integrating Senzing: understanding capabilities, validating data, mapping data, finding examples and scaffold code, accessing sample data, SDK references, documentation search, error explanation, reporting guidance, installation guide, and feedback/licensing. There are no obvious gaps for the stated purpose.
Available Tools
13 toolsanalyze_recordARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Senzing version (default: "current"). | current |
| file_paths | No | File paths to analyze (Senzing JSON or JSONL files). Commands will be generated for each path. | |
| workspace_dir | Yes | REQUIRED: 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 — some environments (e.g. Kiro) do not provide it. Typical values: Linux: `/tmp` or `~/sz-workspace`; macOS: `~/sz-workspace`; Kiro/sandboxed: an explicit path under `~`, e.g. `~/sz-workspace`. Declared as a non-optional `String` (no `#[serde(default)]`) so it appears in the generated JSON `inputSchema` `required` array. The prose has always said REQUIRED, but as an `Option` it was schema-optional, so schema-respecting clients omitted it and looped on the `needs_param` guidance. An empty string still deserializes; the handler catches that and returns the guidance as an `isError` result. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: the tool returns a Python script with instructions, no source data is sent to the server, and it validates records and examines data quality. This adds significant context beyond the annotations (readOnlyHint, idempotentHint, destructiveHint).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it starts with the tool's purpose, then details requirements, functionality, and workspace_dir specifics. Every sentence adds value, with no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no nested objects, the description fully covers what the agent needs: it explains the return type, prerequisites, behavior, and provides examples. The annotations and schema complement this well, making the definition complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning beyond the input schema, especially for 'workspace_dir' by explaining its criticality, typical values, and environment-specific considerations. The schema already covers 100% of parameters, but the description provides practical guidance that enhances agent understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a Senzing JSON analyzer script for client-side validation. It specifies the verb 'Get' and the resource 'analyzer script', making the purpose distinct from sibling tools which cover different functionalities like downloading or searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear prerequisites, notably the 'workspace_dir' requirement and typical values. However, it does not explicitly compare to alternative tools or state when not to use this tool, which would elevate the score to 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_resourceARead-onlyIdempotentInspect
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
HTTP mode returns URLs; stdio mode returns sz-mcp-coworker extract commands. Supports batch via filenames array.
Asset IDs are not stable across versions. If a previously-known ID fails to extract, call this tool again to obtain the current ID.
| Name | Required | Description | Default |
|---|---|---|---|
| inline | No | Returns 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. | |
| version | No | Senzing version (default: "current"). | current |
| filename | No | Resource filename to retrieve (e.g. "sz_json_analyzer.py", "senzing_entity_specification.md"). Ignored when `filenames` is provided. | |
| filenames | No | Multiple resource filenames to retrieve in a single call. Takes precedence over `filename` when provided. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, idempotent), description adds details: returns list if no params, asset IDs unstable, mode differences (HTTP vs stdio), inline token consumption warning. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured and front-loaded with purpose. A few extra sentences on available resources could be separate but are helpful. Not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description explains return types (URLs, commands, inline) and behavior with no parameters. Also warns about token cost and version instability. Fully complete for a download tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions. The description adds crucial usage context (inline=false first, filename/filenames precedence, version defaults), exceeding schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool downloads resources by name, lists available resources, and explains behavior when no filename is provided. It distinguishes itself from siblings which focus on analysis, not downloading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on filename vs filenames precedence and inline parameter usage. Lacks explicit when-not-to-use instructions but siblings are distinct, so this is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_error_codeARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | current | |
| error_code | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent. Description adds accepted input formats and output details (error class, causes, resolution), which is valuable beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, input formats, and output content. Missing prerequisites or existence checks, but sufficient for a simple lookup tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage; description explains error_code format but not version parameter. Adequate compensation for the main parameter but ignores optional one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool explains Senzing error codes with causes and resolution steps. Distinguishes itself from sibling tools like analyze_record or search_docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates when to use: to explain an error code. No explicit exclusions or alternatives, but context is straightforward for a lookup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_examplesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filter 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. | |
| query | No | Search query (required for search mode, optional when using repo+file_path or repo+list_files) | |
| language | No | Filter results by programming language (e.g. "python", "java", "csharp", "rust") | |
| file_path | No | Return full content of a specific file in the repo (requires repo parameter) | |
| max_lines | No | Maximum lines to return for file content (default: unlimited). Useful for large files. | |
| list_files | No | Return the file listing for a repo instead of searching (requires repo parameter) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. Description adds indexed file types, excluded files, three modes, max_lines behavior, and output format (GitHub raw URLs), providing full behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is long but well-structured: first paragraph gives critical requirements and modes, second paragraph details content and capabilities. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (6 params, 3 modes, no output schema), description is thorough: covers modes, parameter combos, indexed content, output format, and limitations (max_lines, excluded files).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by linking parameters to modes, clarifying query requirement, and explaining max_lines purpose, going beyond schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool finds working source code examples from 37 indexed repos, specifying the resource and action. It distinguishes from siblings like get_sample_data and search_docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes three modes with required parameter combinations and warns of failure without proper setup. Mentions alternative get_sample_data for data files, but lacks when-not-to-use for other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_scaffoldARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Senzing version: "4.0", "current", or "3.x". V3 supports Python and Java only | current |
| language | Yes | Programming language: python, java, csharp (or c#, cs, dotnet), rust (or rs), typescript (or ts, node, nodejs, javascript, js) | |
| workflow | Yes | Workflow to scaffold: initialize, configure, add_records, delete, query, redo, stewardship, information, error_handling, full_pipeline. Aliases accepted (e.g. init, config, ingest, remove, search, redoer, force_resolve, info, error, retry, e2e) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool returns URLs to fetch, not the code itself, and mentions indexing and provenance. Annotations already cover safety (readOnlyHint, idempotentHint), so description adds useful behavioral context beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is about 5 sentences, front-loaded with purpose and usage guidance. It is informative without being verbose, though could be slightly more concise by grouping details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema), the description fully explains the return format (URLs to fetch), supported values, and aliases. No gaps for agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant value: list of languages with aliases, workflows with aliases, and version constraints (V3 supports Python and Java only). This exceeds minimal schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Generate') and resource ('SDK scaffold code'), clearly distinguishing it from sibling tools like analyze_record or search_docs. It explicitly mentions the source (GitHub) and provenance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using this tool INSTEAD of hand-coding SDK calls, citing common errors. Lists supported languages and workflows with aliases, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | current |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint, destructiveHint false), the description discloses that it returns server_info with name, version, Senzing version, and a manifest of coverage areas. It also warns about risks of skipping, adding valuable context not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough and front-loaded with purpose, but is slightly verbose. However, every sentence adds value, and the structure is logical, moving from purpose to usage guidance to return content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers return content and usage context, it omits explanation of the 'version' parameter, which is the only input. Given no output schema, the description should fully define the input's role to be complete. This gap reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has an optional 'version' parameter with default 'current', but the description does not explain its purpose or behavior. With 0% schema coverage, the description should compensate but fails to clarify how this parameter affects the output, leaving agents without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's purpose: retrieving server version, capabilities overview, available tools, suggested workflows, and getting started guidance. It uses specific nouns and distinguishes itself from sibling tools by positioning itself as the first triage tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Call this first when working with Senzing entity resolution... skipping this risks using wrong API method names...' It also advises using it to triage before external sources, effectively telling the agent when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sample_dataARead-onlyIdempotentInspect
Get real sample data from CORD (Collections Of Relatable Data) datasets. Use dataset='list' to discover available datasets, source='list' to see vendors within a dataset.
IMPORTANT: CORD data is REAL (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. In HTTP mode this is a URL the user (or an automation) can curl; in stdio mode it is a sz-mcp-coworker extract command the user runs locally to pull bytes from the embedded bundle. Always present the fetch instruction to the user. Do NOT download it yourself or dump raw records into the conversation — the inline records are a small preview of the data shape.
Asset IDs are not stable across versions. If a previously-known ID fails to extract, call this tool again to obtain the current ID.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | Record offset. Use a number for explicit pagination, or "random" for a random starting position. Omit for random. | |
| source | No | Filter by data source/vendor within a dataset (e.g., "equifax", "ppp_loans"). Omit to see all sources. Use "list" to list available sources. | |
| dataset | Yes | Dataset 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.) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds important behavioral context: data is real (not synthetic), historical snapshots for evaluation only, not for operational use, and asset IDs are not stable. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with clear sections and front-loaded main purpose. Each sentence adds value, though it is slightly lengthy. Could be trimmed but overall effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but description explains the preview nature of returned records and the download_url behavior in different modes (HTTP vs stdio). It also warns about asset ID instability and provides instructions for when extraction fails. This is complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% (limit lacks description). The description adds meaning by explaining that dataset='list' discovers datasets, source='list' shows vendors, and offset can be 'random'. This goes beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get real sample data from CORD datasets' which is a specific verb+resource. It distinguishes itself from siblings like analyze_record or download_resource by focusing on retrieving sample data and includes special features like listing datasets/sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit instructions are given for discovering available datasets (dataset='list') and sources (source='list'). It also provides critical usage guidance (inform user data is real, do not download yourself, present fetch instructions). However, it does not explicitly mention when not to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sdk_referenceARead-onlyIdempotentInspect
Get authoritative Senzing SDK reference data for flags, migration, and API details. Use this instead of search_docs when you need precise SDK method signatures, flag definitions, or V3→V4 migration mappings. Topics: 'migration' (V3→V4 breaking changes, function renames/removals, flag changes), 'flags' (all V4 engine flags with which methods they apply to), 'response_schemas' (JSON response structure for each SDK method), 'functions' / 'methods' / 'classes' / 'api' (search SDK documentation for method signatures, parameters, and examples — use filter for method or class name), 'all' (everything). Use 'filter' to narrow by method name, module name, or flag name
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Topic: "migration", "flags", "response_schemas", or "all" | |
| filter | No | Optional filter: method name, module name, or flag name to narrow results | |
| version | No | Senzing version (default: "current") | current |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly/idempotent), so description appropriately focuses on content behavior: explains 'authoritative' data types and details what each topic returns (breaking changes, flag mappings, JSON schemas). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with zero waste: purpose statement → sibling differentiation → topic enumeration with parenthetical explanations → filter usage. Front-loaded with clear intent; enumeration is necessary given string-type parameter without strict enum constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but description compensates by detailing return content for each topic. With 100% schema coverage and comprehensive annotations, the description successfully rounds out the specification by explaining topic-specific return structures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While schema has 100% coverage, description adds critical enumerations and semantics: lists all valid topic values ('functions', 'methods', 'classes', 'api' in addition to schema's basic list) and explains what data each returns. Clarifies filter parameter usage patterns with specific examples (method name, module name).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent specific purpose: 'Get authoritative Senzing SDK reference data for flags, migration, and API details.' Clearly identifies resource (SDK reference) and scope. Explicitly distinguishes from sibling tool search_docs, preventing confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit directive: 'Use this instead of search_docs when you need precise SDK method signatures...' provides clear when-to-use vs alternative. Topic enumeration further guides selection (use 'migration' for V3→V4 changes, 'flags' for engine flags, etc.).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapping_workflowARead-onlyInspect
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 (NAME_ORG vs BUSINESS_NAME_ORG, EMPLOYER_NAME vs NAME_ORG, PHONE vs PHONE_NUMBER) and miss required fields like RECORD_ID.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Step-specific data (for "advance" action). Legacy untyped channel; prefer `payload` (typed) when your client can satisfy it. | |
| state | No | Workflow 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, modify, or omit any fields. If you have lost the state, call with action='start' instead. | |
| action | No | Action to perform. ONLY these values are valid: start, advance, back, status, reset. | |
| payload | No | Typed 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 present it is merged over `data` (payload wins); when absent, behavior is identical to sending `data`. | |
| version | No | Senzing version (default: "current"). | current |
| file_paths | No | Source file paths (required for "start" action). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description contradicts annotations: annotations state readOnlyHint=true, but description describes file creation (scripts, reference docs, mapper code, outputs saved to workspace_dir), implying mutation. This is a serious inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with sections (actions, required params, state, common errors) and front-loads core purpose. However, it is verbose and could be more concise; every sentence adds value but the length could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the 8-step workflow and detailed schema, the description covers all necessary aspects: actions, state management, required parameters, common errors, and reasons to use this tool. It is complete for an AI agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds practical guidance beyond schema: explains required params for start (file_paths, workspace_dir), imperative that state be passed verbatim, and covers common errors. This enhances usability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Map source data to Senzing JSON through a guided 8-step workflow' and specifies it should be used instead of hand-coding, providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this INSTEAD of hand-coding Senzing JSON' and explains why hand-coding is error-prone. Also provides context for when to use start vs other actions and warns about common errors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reporting_guideARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Scale tier. Omit to get the scale decision tree. | |
| topic | Yes | Topic: "export", "reports", "entity_views", "data_mart", "dashboard", "graph", "quality", "evaluation" | |
| version | No | Senzing version (default "current") | current |
| language | No | Programming language. Omit to get the language decision tree. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm read-only safety (readOnlyHint=true, destructiveHint=false), so the description appropriately focuses on content behavior rather than safety. It adds valuable behavioral detail: the conditional return of 'decision trees' when optional parameters are omitted, and explicitly lists the 8 topic domains covered, preventing surprise about the breadth of guidance provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with zero waste: sentence 1 establishes scope, sentence 2 lists cross-language capabilities and artifacts, sentence 3 maps the topic parameter to specific content types, and sentence 4 explains conditional behavior. Every clause delivers actionable information about tool capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (covering 8 distinct technical domains from SQL analytics to network graphs) and lack of output schema, the description adequately previews return content types (patterns, queries, schemas, anti-patterns) and conditional behaviors. A minor gap is the lack of explicit output format indication (text vs structured), though the content descriptions imply text/documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3, but the description elevates this by explaining the semantic consequence of omitting 'language' and 'scale' parameters (triggers decision tree responses). It also implicitly validates the 'topic' enum by listing all 8 valid values with their semantic meanings in parentheses.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific scope ('Guided reporting and visualization for Senzing entity resolution results') and enumerates distinct deliverables (SDK patterns, SQL queries, data mart schemas, visualization concepts). This clearly distinguishes it from siblings like sdk_guide (general SDK usage) or mapping_workflow by focusing specifically on reporting output and analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for what the tool delivers (guidance on 8 specific topics from export to evaluation) and hints at the interactive selection pattern ('Returns decision trees when language/scale not specified'). While it doesn't explicitly name sibling tools to avoid, the scope is distinct enough that the agent can infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sdk_guideARead-onlyIdempotentInspect
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. In HTTP mode the package url is hosted on this MCP server (mcp.senzing.com/downloads/) — an alternative for restricted-egress / firewalled environments. In stdio mode the package url is a local sz-mcp-coworker extract command that pulls the .deb from the binary's embedded bundle. 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.
Asset IDs are not stable across versions. If a previously-known ID fails to extract, call this tool again to obtain the current ID.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Topic: "install", "configure", "load", "export", "redo", "initialize", "search", "stewardship", "delete", "information", "error_handling", or "full_pipeline" | |
| version | No | Senzing version (default "current") | current |
| language | No | Programming language. Omit to get the language decision tree. | |
| platform | No | Target platform. Omit to get the platform decision tree. | |
| data_sources | No | Data sources to register (for configure topic) | |
| record_count | No | Expected 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 single-threaded demo. Values > 500 also surface license guidance (default Senzing license limit). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond annotations: 'Returns real, compilable code snippets extracted from official GitHub repositories with source attribution,' and details the package URL behavior in HTTP vs. stdio modes. It also warns that 'Asset IDs are not stable across versions.' No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly long and contains many details. While all sentences are relevant, the structure could be improved (e.g., bullet points for modes, topics). It is front-loaded with the core purpose but becomes dense with specifics. It is appropriately sized for the complexity but leans toward verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, many topics, and platform/language variations, the description covers essential contextual details: HTTP vs. stdio mode, direct_download field, record_count thresholds, asset ID instability, and redirect to reporting_guide. No output schema exists, but the description compensates by explaining return features (direct_download, url). The description appears sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter has a baseline description. The tool description adds significant meaning: for record_count, it explains the threshold for production vs. demo patterns and license guidance; for topic, it lists all valid topics (matching schema but reinforcing); for language and platform, it notes that omitting returns a decision tree. This additional context helps an agent select appropriate values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: 'Install Senzing and scaffold SDK code across 5 platforms and 5 languages.' It specifies the verb (install/scaffold), resource (Senzing SDK code), and scope (platforms/languages). The title 'SDK Setup Guide' aligns and the description distinguishes from sibling tools by stating 'prefer this over hand-coding install commands or engine configuration.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance, such as 'prefer this over hand-coding install commands or engine configuration.' It also explains context-specific behavior: 'For load/search/redo, pass record_count to control template selection' and 'Export redirects to reporting_guide.' It gives alternative actions: 'If a previously-known ID fails to extract, call this tool again to obtain the current ID.' While clear, it does not explicitly cover when not to use (e.g., for simple queries where search_docs might be more appropriate).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| version | No | current | |
| category | No | ||
| max_results | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds that it returns ranked results with excerpts and supports category filtering, providing useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with front-loaded purpose and usage guidelines. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no output schema, the description covers the main purpose and one parameter (category), and points to get_capabilities for more. It lacks detail on version and max_results, but overall adequate for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It explains 'query' implicitly and 'category' with a list of values, but does not mention 'version' or 'max_results'. Thus partially helpful but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs full-text BM25 search across indexed Senzing documentation, specifying the resource and action. It distinguishes from siblings by noting 'Prefer this tool over web_search for any Senzing question.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (for Senzing documentation questions) and when not to (over web_search). Also instructs to call get_capabilities for full coverage details and to verify claims before explaining.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Work email address (required for license_request — personal email domains not accepted) | ||
| message | No | Feedback message (required for bug/feature/question/general) | |
| category | No | Category: bug, feature, question, general, or license_request | |
| lastname | No | Last name of the requester (optional for license_request) | |
| firstname | No | First name of the requester (required for license_request) | |
| how_heard | No | How the requester heard about Senzing (required for license_request) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context about what happens (email with license, one per email, 30-day wait) beyond annotations. Annotations indicate destructiveHint=true but description does not contradict; it's consistent with creating a license record. No mention of rate limits, but sufficient for this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with two paragraphs, each dedicated to a use case. Sentences are informative but concise; no wasted words. Could be slightly shorter, but clarity is prioritized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers both use cases with required parameters and outcomes for license request. For feedback, it lacks explicit return value but includes instruction to confirm with user. Output schema is absent, so description partially compensates. Fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions. Description adds value by clarifying which parameters are required for each category (e.g., firstname required for license, email domain restrictions), improving semantic understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states two purposes: requesting a license and submitting feedback. Uses specific verbs and resources, and distinguishes from sibling tools which are unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use each category (license_request vs. other categories), provides requirements for each, and instructs to confirm with user before sending feedback. No sibling tool overlaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!