apv (Agent Plugin Validator) is a lightweight, high-performance, schema-driven Go CLI tool for validating Agent Plugin manifests (plugin.json) and MCP configurations (mcp.json) against the open Agent Plugins v1.0.0 specification.
- 🎯 100% Schema-Driven Validation: Validates both Plugin Manifests (
plugin.json) and MCP Configurations (mcp.json). Automatically detects schema type via$schemaURL or filename (--type auto|manifest|mcp). - ⚡ Agent & CI/CD Ready:
--format jsonoutput for programmatic consumption by AI agents and pipeline steps.--quiet/-qsilent mode returning deterministic exit codes (0= valid,1= invalid,2= usage/runtime error).- TTY auto-detection and standard
NO_COLORenvironment variable support.
- 📦 Embedded & Cached Schema Lifecycle:
- Embedded canonical v1.0.0 schemas (
plugin.schema.jsonandmcp.schema.json). apv schema update [manifest|mcp|all] [url]to fetch and cache updated schemas locally (~/.apv/schemas/).- Flexible
--schemaoverrides:--schema <path|url>,--schema-manifest <path>,--schema-mcp <path>, or--schema manifest=p.json,mcp=m.json.
- Embedded canonical v1.0.0 schemas (
- 🚀 Shell Autocompletion: Built-in tab completion for Bash, Zsh, Fish, and PowerShell (
apv completion <shell>) with.jsonfile completion forvalidateand--schema. ⚠️ Spec-Compliant Warning Handling:- Unrecognized top-level fields in
plugin.jsonare classified as Warnings (⚠) and ignored per Spec §5.2 without failing validation.
- Unrecognized top-level fields in
go install github.com/rchaganti/agent-plugin-validator@latestDownload static binaries for Linux, macOS, and Windows (amd64/arm64) from the Releases Page.
# Validate single file
apv validate plugin.json
# Validate entire plugin folder (auto-discovers plugin.json and mcp.json)
apv validate ./my-plugin-folderOutput:
✓ Using schema: Agent Plugins Manifest (embedded default)
✓ ./my-plugin-folder/plugin.json is VALID
✓ Using schema: Agent Plugins MCP Configuration (embedded default)
✓ ./my-plugin-folder/mcp.json is VALID
apv validate --format json plugin.jsonOutput:
{
"valid": true,
"schema": {
"source": "embedded default",
"path": "(embedded)",
"id": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"title": "Agent Plugins Manifest"
},
"errors": []
}cat plugin.json | apv validate -apv validate -q plugin.json || exit 1| Command | Description |
|---|---|
| `apv schema show [manifest | mcp |
| `apv schema update [manifest | mcp |
| `apv schema reset [manifest | mcp |
| Exit Code | Meaning |
|---|---|
0 |
Validation Succeeded: Plugin manifest is valid (or has non-fatal warnings) |
1 |
Validation Failed: Manifest contains fatal schema errors |
2 |
Usage / Runtime Error: File not found, invalid JSON syntax, CLI flag error |
| Violation Type | Severity | Exit Code | Result | Spec Rule |
|---|---|---|---|---|
Missing $schema or name |
Fatal Error | 1 |
valid: false |
Required fields |
Invalid name pattern/length |
Fatal Error | 1 |
valid: false |
Format constraints |
| Unknown top-level property | Warning | 0 |
valid: true |
Ignored per Spec §5.2 |
# Run unit tests
go test -v ./...
# Build local binary
go build -o apv .MIT License © 2026 Ravikanth Chaganti & Contributors.