Skip to content

Bundles & Structure

Bundles are rule-generated groupings of tools. Membership is determined by declarative rules — not manual curation.

BundleDescriptionSelection logic
coreEssential utilities every workspace needsExplicit ID list
agentsAgent orchestration, navigation, context, tool selectionExplicit IDs + agents tag
opsDevOps, infrastructure, deployment, monitoringTags: automation, packaging, release, monitoring
evaluationTesting, benchmarking, coverage analysisTags: testing, evaluation, benchmark, coverage
mcp-tool-registry/
├── registry.json # Canonical source of truth
├── schema/registry.schema.json
├── bundles/ # Rules-generated subsets
├── dist/ # Derived artifacts (generated at publish)
│ ├── registry.index.json # Search index
│ ├── capabilities.json # Capability reverse map
│ ├── derived.meta.json # Build metadata + registry hash
│ └── registry.llms.txt # LLM-native context
└── curation/featured.json # Featured tools and collections

These artifacts are generated at publish time from the canonical registry.json:

ArtifactPurpose
registry.index.jsonPre-built search index with keywords and facets
capabilities.jsonReverse map from capabilities to tools
derived.meta.jsonBuild metadata and registry content hash
registry.llms.txtPlain-text tool descriptions optimized for LLM consumption

Data-only — Zero executable code. Consumers import JSON metadata and use it however they need.

Schema-validated — Every tool entry is validated against a JSON Schema in CI. Required fields, ID format, description quality, HTTPS URLs, and policy rules are all checked before merge.

Least privilege — Tools default to zero capabilities. Side-effects are opt-in and must be declared explicitly in the schema. Deprecated tools are automatically excluded from all bundles.

Reproducible — Pin a version, get deterministic metadata every time.

Bundle membership is declared in bundles/rules/<name>.rules.json. Each rule file contains:

  • rules — An array of inclusion rules. Each rule can specify:
    • ids — An explicit list of tool IDs to include.
    • tags — A list of tags to match. The operator field controls matching: "OR" (default) includes any tool with at least one matching tag, "AND" requires all tags to match.
  • exclude — An object for exclusion logic:
    • deprecated: true — Automatically removes deprecated tools from the bundle.
    • ids — An explicit list of tool IDs to exclude.

Bundles are regenerated deterministically by scripts/build-bundles.mjs whenever you run npm run bundles:build. The output is sorted alphabetically by tool ID for stable diffs.