Skip to main content

Testing

VirtualMetric hosts a Model Context Protocol (MCP) server that lets an AI coding agent — such as Claude Code — test, validate, and author DataStream pipelines. It runs the same service/pipeline engine used by production normalization, so its output is bit-for-bit consistent with what a live director produces.

The server is a managed, remote service: there is nothing to install or run locally. You connect your agent to the hosted endpoint, and the agent drives the pipeline-testing tools on your behalf.

Connecting an Agent

The server is available over HTTP at:

https://mcp.virtualmetric.com/mcp

Access is protected by Cloudflare Access service tokens. VirtualMetric provisions a Client ID and Client Secret for your organization; present them as request headers.

For Claude Code, register the server with claude mcp add:

claude mcp add --transport http vmetric https://mcp.virtualmetric.com/mcp \
--header "CF-Access-Client-Id: <client-id>" \
--header "CF-Access-Client-Secret: <client-secret>"

Other MCP clients connect to the same URL with the same two headers.

Tools

Once connected, the agent has these tools, each backed by the production engine:

ToolPurpose
test_pipelineRun sample logs through a pipeline → normalized JSON
validate_pipelineCompare output to an expected fixture (true/false)
diff_pipelineExpected vs. actual output and a unified diff
validate_schemaReport missing / extra / type-mismatch fields vs. a target schema (ASIM, OCSF, UDM, or custom)
list_processorsList available processors with one-line descriptions
get_processorA processor's option schema and documentation link
list_skillsList the embedded authoring guides
get_skillReturn a guide's full text

The tools accept the pipeline YAML and sample log inline as arguments rather than file paths, so the agent can author and test pipelines without writing files to disk.

Authoring Guides

The server ships three guides that teach an agent the pipeline-authoring conventions and known gotchas. The agent retrieves them through the list_skills and get_skill tools:

GuideUse when
writing-normalization-pipelinesUmbrella guide — tooling, pack layout, and schema taxonomy
building-a-packCreating a new content pack for a source from scratch
building-a-pipelineAdding, fixing, or updating a pipeline in an existing pack

Example

Ask the agent to run a sample log through a pipeline and check the result: it calls test_pipeline (and validate_pipeline or diff_pipeline when you provide an expected fixture) against the hosted engine and returns the normalized JSON — no local setup required.

For interactive testing inside the web interface, see the Pipeline Debugger.