- Status: Reference
- Version: current
- Canonical for: supported tool matrix and adapter coverage
- Audience: public
Evidra supports two related integration surfaces:
- core evidence recording, which stores declared intent and outcomes
- optional companion adapters, which may produce
CanonicalAction - controller evidence sources, which emit reconcile lifecycle evidence without pretending to be artifact adapters
When running evidra-mcp in DevOps server mode, the MCP surface stays intentionally small:
run_commandfor direct kubectl, helm, terraform, and aws operationscollect_diagnosticsfor one bundled Kubernetes diagnosis pass over a workloadwrite_filefor agent-authored manifests or config files under the workspace or temp directoriesdescribe_toolfor loading the full schema of deferred protocol tools on demandprescribe_smart,report, andget_eventfor explicit evidence control- optional
prescribe_fullwhen the server is started with--full-prescribe
The default workflow is still run_command plus auto-evidence. prescribe_smart and report remain available in the default tool list, but their full schemas are deferred until the agent calls describe_tool.
collect_diagnostics is not a new artifact adapter. It is a read-only MCP helper that reduces repeated get / describe / events / logs turns for common Kubernetes debugging workflows.
| Tool | CLI flag | Artifact | Notes |
|---|---|---|---|
| kubectl | --tool kubectl |
YAML manifest(s) | Multi-doc YAML supported |
| Helm | --tool helm |
Rendered templates (helm template output) |
K8s adapter parses the YAML |
| Kustomize | --tool kustomize |
Build output (kustomize build output) |
K8s adapter parses the YAML |
| OpenShift (oc) | --tool oc |
YAML manifest(s) | Handles DeploymentConfig, Route, BuildConfig, ImageStream |
| ArgoCD rendered manifests | --tool kubectl |
Rendered sync manifests | Explicit rendered output still flows through the Kubernetes adapter |
Legacy adapter note: companion canonicalizers may strip managedFields, uid,
resourceVersion, creationTimestamp, last-applied-configuration, and other
server-set fields before producing optional canonical_action.
Legacy detector note: detector output is not generated by the core prescribe write path. Use an external scanner/policy engine to supply assessment context.
| Tool | CLI flag | Artifact | Notes |
|---|---|---|---|
| Terraform | --tool terraform |
Plan JSON (terraform show -json) |
Extracts resource_changes |
Artifact preparation:
terraform plan -out=tfplan
terraform show -json tfplan > plan.jsonLegacy detector note: Terraform risk detection is companion/external assessment logic, not core write-path behavior.
| Tool | CLI flag | Artifact | Notes |
|---|---|---|---|
| Docker | --tool docker |
Container inspect JSON | docker inspect output |
Legacy detector note: Docker risk detection is companion/external assessment logic, not core write-path behavior.
Any tool not listed above can still be recorded through declared intent. Core recording computes artifact digest when bytes are supplied and does not require resource-level identity or domain-specific detectors.
For tools with structured output (Pulumi, Ansible, CDK), use
--canonical-action only when you already have pre-built resource identity:
evidra prescribe \
--tool pulumi \
--operation update \
--artifact state.json \
--canonical-action '{"resource_identity": [...], "resource_count": 2, "operation_class": "mutate"}'Companion adapters historically implement the canon.Adapter interface:
type Adapter interface {
Name() string
CanHandle(tool string) bool
Canonicalize(tool, operation, environment string, rawArtifact []byte) (CanonResult, error)
}See internal/canon/ for existing adapter implementations.
| Source | Primary path | What Evidra captures | Notes |
|---|---|---|---|
| Argo CD | Controller-first self-hosted integration | Reconcile start/completion evidence, observed outcome, optional explicit prescription linkage | Primary v1 GitOps story |
| Argo CD webhook | /v1/hooks/argocd |
Mapped lifecycle events | Supported push path; adjacent to controller mode |
Argo CD does not currently ship as a dedicated argocd/v1 artifact adapter.
When customers have rendered manifests, Evidra still recommends sending them
through the Kubernetes path.