datazen-sqlcdc
v1.0.4
Published
DataZen SQL CDC language specification (operations, syntax, options).
Maintainers
Readme
datazen-sqlcdc
MCP server that gives AI assistants first-class knowledge of the DataZen SQL CDC language — every operation, its syntax, options, and canonical examples.
An MCP (Model Context Protocol) stdio server, datazen-sqlcdc, backed by the complete DataZen SQL CDC language specification.
Point Claude — or any MCP-compatible client — at this server and it can list SQL CDC operations, look up exact syntax and options, and pull working examples on demand, so it writes correct SQL CDC instead of guessing.
The same spec is also exported as a typed JSON document for direct programmatic use (see Using the spec as JSON).
Quick start
Run the server with no install:
npx -y datazen-sqlcdc@latestRegister with Claude Code
claude mcp add datazen-spec -- npx -y datazen-sqlcdc@latestRegister with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"datazen-spec": {
"command": "npx",
"args": ["-y", "datazen-sqlcdc@latest"]
}
}
}Register with Hermes agent
Hermes agent registers stdio MCP servers in an mcp_servers: block in $HERMES_HOME/config.yaml (or ~/.hermes/config.yaml when HERMES_HOME is unset). Add this server:
mcp_servers:
datazen-spec:
command: "npx"
args: ["-y", "datazen-sqlcdc@latest"]Unlike the other DataZen MCP servers, this one reads no environment variables and needs no credentials, so no env: block is required.
You can also add it from the CLI — run the interactive picker (hermes mcp) and select the server, or add it non-interactively. --args consumes the rest of the line, so it must come last and each argument is passed bare:
hermes mcp add datazen-spec --command npx --args -y datazen-sqlcdc@latestThen verify it connects, and reload after any config.yaml change:
hermes mcp test datazen-spec # confirm it connects and lists the three tools
# ...and inside `hermes chat`:
/reload-mcp # re-read config.yaml without restarting the sessionOnce loaded, Hermes exposes the same three tools described in Tools. These are read-only lookups, so no restriction is needed, but to limit Hermes to specific tools you can add a tools.include block:
mcp_servers:
datazen-spec:
command: "npx"
args: ["-y", "datazen-sqlcdc@latest"]
tools:
include: [list_operations, get_operation, get_examples]Install globally (optional)
npm install -g datazen-sqlcdc
datazen-sqlcdcTools
The server exposes three tools:
| Tool | Input | Output |
| --- | --- | --- |
| list_operations | none | One line per operation: key — COMMAND — short description. |
| get_operation | operationKey | Markdown with the operation's description, syntax, and options. |
| get_examples | operationKey, maxExamples | Canonical SQL CDC examples in fenced SQL blocks. |
Operation keys are matched case-insensitively — addColumn and addcolumn both work.
A typical flow: the assistant calls list_operations to discover what exists, get_operation to learn the exact syntax and options for one, then get_examples to see it used in real scripts.
What SQL CDC looks like
SQL CDC scripts move and sync data between systems. A typical SQL Sync — keeping a destination table continuously in step with a source table — reads changed rows from the source and merges them into the destination:
-- Read new/changed Orders from the source database
SELECT * FROM DB [SourceDb]
( SELECT OrderId, CustomerId, Total, ModifiedUtc FROM dbo.Orders )
WITH HWM 'ModifiedUtc'
KEY COLUMNS 'OrderId'
;
-- Merge those rows into the destination, applying inserts/updates/deletes
MERGE INTO [DestDb]
TABLE 'dbo.Orders'
WITH KEY COLUMNS 'OrderId'
INSERTS UPDATES DELETES
SCHEMA_DRIFT
;Using the spec as JSON
Beyond the MCP server, the package's default export is the fully-resolved spec object, with TypeScript types included.
import spec from "datazen-sqlcdc";
console.log(spec.operationCount);
console.log(spec.operations.map((operation) => operation.key));CommonJS and raw-JSON entry points are also available:
const spec = require("datazen-sqlcdc");import spec from "datazen-sqlcdc/sqlcdc-spec.json";The spec shape:
interface SqlCdcSpec {
source: string; // specification origin
generatedUtc: string; // snapshot timestamp
operationCount: number;
operations: SqlCdcOperation[];
}
interface SqlCdcOperation {
key: string; // stable identifier, e.g. "addColumn"
name: string;
command: string; // SQL CDC command keyword
description: string;
link?: string;
inline?: boolean;
syntax: string; // syntax template
options?: { name: string; description: string }[];
examples?: { id: string; text: string }[];
}Development
From a local checkout:
npm install
npm run build
npm run smoke
node dist/server.jsRegister a local build with Claude Code:
claude mcp add datazen-spec -- node /absolute/path/to/datazen-sqlcdc/dist/server.jsPublishing
npm run build
npm run smoke
npm pack --dry-run
npm login
npm version patch
npm publish --access publicLicense
MIT — © 2026 Enzo Unified.
