Code Snippet Library / Sales Ops

MCP Capability Manifest Schema

A canonical JSON Schema + ajv validator describing a connected MCP server's capabilities, scope tier, and rate-limit usage — the data contract the Sales Stack Router skill is built on.

The MCP Capability Manifest Schema is a free JSON Schema (2020-12) plus an ajv validator that describes a connected MCP server's capabilities, scope tier, and rate-limit usage — the canonical data contract the Sales Stack Router skill routes against.

↗ View on GitHub ⬇ Download Full Repo (.zip)
MIT
License
JSON
Language
Aug 12, 2026
Last updated

Every real MCP server you connect — Outreach, Salesloft, Apollo, or anything else — needs to be described the same way before any routing logic (like the Sales Stack Router skill) can decide which one to call. This snippet is that canonical data contract: a JSON Schema (2020-12 draft) plus a small ajv validator.

What it validates

A manifest entry declares a server’s server_id, platform, connection status, an array of capabilities (each dot-namespaced, e.g. contact.enrich, with a required_scope of read/write/destructive), and an optional rate_limit + live usage_this_window.

const { validateManifest } = require('./validate.js');
const result = validateManifest(myManifestEntry);
if (!result.valid) console.error(result.errors);
// { valid: false, errors: [{ index: null, message: "must be equal to one of the allowed values", path: "/status" }] }

Why a schema instead of just TypeScript types

Manifests in real usage are usually built from data pulled at runtime (an account’s live connected-app list), not written by hand in code you control. A runtime-validated JSON Schema catches malformed data before it reaches routing logic — a compile-time type can’t do that for data you didn’t generate yourself.

README.md View raw ↗

What this is (and isn’t)

A schema + a thin ajv validator, not a hosted service. Nothing leaves your environment.

Files

FilePurpose
schema.jsonJSON Schema (2020-12 draft) for one manifest entry
validate.jsajv-based validator — accepts a single entry or an array
examples/valid.jsonA schema-conformant example
examples/invalid.jsonIntentionally broken example, used by the test suite to prove rejection actually works
test.js10-test suite

Security & validation

Verified 2026-08-12: npm audit 0 vulnerabilities (single dependency: ajv, installed in an isolated local package.json), node test.js 10/10 passing, including a dedicated test proving the shipped invalid.json example is actually rejected.

Support

Open an issue on GitHub Issues. Want it wired into your real MCP server connections? Book a scoping call ($175/hr).

License

MIT

FAQ

Is this free to use?

Yes. Free to download and use. MV3 charges $175/hr only if you want help wiring it into your real connected MCP servers.

Does my manifest data get sent to MV3?

No. Validation runs entirely in your own environment with zero network calls.

Why does it require ajv instead of being zero-dependency?

JSON Schema validation with good error messages is a solved problem — reimplementing it would add risk, not remove it. ajv is a single, widely-audited dependency (0 vulnerabilities per npm audit as of 2026-08-12).

What uses this schema?

The Sales Stack Router skill consumes manifests in exactly this shape. You can also use it standalone to validate any MCP-server inventory data.

Where do I get support if something breaks?

Open a GitHub Issue for bugs or questions. For paid help wiring this into your real CRM/sales stack, book a scoping call.

JR
Jordan Reeves
ABM & Outbound Pipeline, MV3 Marketing