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:
| Tool | Purpose |
|---|---|
test_pipeline | Run sample logs through a pipeline → normalized JSON |
validate_pipeline | Compare output to an expected fixture (true/false) |
diff_pipeline | Expected vs. actual output and a unified diff |
validate_schema | Report missing / extra / type-mismatch fields vs. a target schema (ASIM, OCSF, UDM, or custom) |
list_processors | List available processors with one-line descriptions |
get_processor | A processor's option schema and documentation link |
list_skills | List the embedded authoring guides |
get_skill | Return 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:
| Guide | Use when |
|---|---|
writing-normalization-pipelines | Umbrella guide — tooling, pack layout, and schema taxonomy |
building-a-pack | Creating a new content pack for a source from scratch |
building-a-pipeline | Adding, 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.