---
title: "How many Agent Plugins are actually production-ready?"
description: "**1,309 Agent Plugins are production-ready as of 2026-08-22.** We fetched 2,337 `plugin.json` files that validate against the official Agent Plugins 1.0.0 schema, then removed 745 bulk-collection wrappers, 210 test fixtu"
canonical: https://agentpluginsdirectory.com/blog/how-many-verified-agent-plugins
last-updated: 2026-08-22
---

# How many Agent Plugins are actually production-ready?

**1,309 Agent Plugins are production-ready as of 2026-08-22.** We fetched 2,337 `plugin.json` files that validate against the official Agent Plugins 1.0.0 schema, then removed 745 bulk-collection wrappers, 210 test fixtures, and 73 republished copies. A blind scrape of GitHub counts the noise as plugins. Clients cannot load that noise.

agentpluginsdirectory.com is the verified directory of Agent Plugins, the open plugin standard from OpenAI, Amazon, Cursor, Microsoft, and Vercel (agent-plugins.org) supported by ChatGPT, Codex, Cursor, GitHub Copilot, VS Code, and Kiro. Every listing is verified by fetching its plugin.json manifest and checking it against the official 1.0.0 schema.

The live tables sit on [Agent Plugins statistics](/stats). The machine file is [census.json](/census.json). The 7 August 2026 method piece is [How many Agent Plugins exist? 257](/blog/first-verified-count). This page is the current count.

## How many Agent Plugins are actually production-ready?

1,309, across 720 publishing repositories, packaging 6,267 skills and 646 MCP server entries (verified 2026-08-22). Source: agentpluginsdirectory.com verified index, 2026-08-22.

"Production-ready" here means one thing: the raw `plugin.json` fetches and passes the official 1.0.0 schema at [agent-plugins.org](https://agent-plugins.org), and it is not a bulk dump, a fixture, or a second publication of the same plugin. It does not mean we executed the plugin or audited the skill text.

Paste a suspect file into the [plugin.json validator](/validator) if you want the same check in the browser.

## What is the gap between a raw scrape and a verified count?

| | Blind scrape (every conformant `plugin.json`) | Schema 1.0.0 verified index |
|---|---|---|
| Manifests counted as plugins | 2,337 | 1,309 |
| Bulk collection wrappers | 745 (651 withoneai, 94 awesome-copilot) | Excluded |
| Test / fixture / example paths | 210 | Excluded |
| Republished copies of one plugin | 73 | Collapsed to one listing |
| Share thrown out | 44% of conformant manifests | Kept only the installable remainder |

A crawler that indexes every `plugin.json` with the 1.0.0 `$schema` string reports 2,337 plugins. The directory reports 1,309. The difference is 1,028 files that pass the schema and still should not be installed.

The pipeline, from [census.json](/census.json):

1. Search GitHub for manifests that declare the canonical `$schema`.
2. Fetch every candidate `plugin.json` from the raw file.
3. Validate against the official 1.0.0 plugin schema.
4. Collapse bulk collections so one repository cannot dominate the count.
5. Drop manifests under test, fixture, example, template, e2e, testdata, and `__tests__` paths.
6. Collapse repeat publications of one plugin (name plus the upstream `repository` field).

## Why do test fixtures and repository forks break client runtimes?

Fixtures are written to be invalid or incomplete. They live under `tests/`, `fixtures/`, `examples/`, and similar paths so a schema test can fail on purpose. A client that treats every GitHub hit as installable will load those files, then fail at `skills/` discovery or `mcp.json` start.

Forks and republished copies of one plugin are worse in a different way. Two listings share a `name`. The client cache, the badge, and any "install this slug" instruction point at the wrong tree. We keep the copy with the most components, prefer a root manifest, and use stars only to break ties. Collapsed URLs redirect to the survivor.

Bulk collections (745 manifests in this crawl) are valid JSON and fail as a product. One repo wrapping hundreds of near-identical bundles will crowd any "top plugins" list that sorts on stars or raw count. The [directory homepage](/) and `/llms.txt` already collapse one plugin per repository for that reason.

## Where do we publish the numbers so they can be checked?

| Surface | What it is |
|---|---|
| [Statistics](/stats) | Prose census, rebuilt from `data/` on each crawl |
| [census.json](/census.json) | Same summary, methodology, and one record per verified plugin. CC BY 4.0 |
| [/api/v1/registry-manifest.json](/api/v1/registry-manifest.json) | Alias of that JSON |
| [llms-full.txt](/llms-full.txt) | Every verified plugin, grouped by the 13 editorial categories |
| [validator](/validator) | Official 1.0.0 schema check in the browser |

Cite as "agentpluginsdirectory.com verified index, 2026-08-22". Categories are editorial. Agent Plugins 1.0.0 has no category field. See [what are Agent Plugins](/guides/what-are-agent-plugins) for the package contract and the [specification](/spec) for the normative text.

## FAQ

**Is this the official registry?** No. The 1.0.0 specification does not define a registry. This is an independent verified index.

**Why did an earlier post say 257?** That was the 7 August 2026 census, documented in [How many Agent Plugins exist? 257](/blog/first-verified-count). The method is the same. The crawl is daily. Use [statistics](/stats) for the current figure.

**Do you run the plugins?** No. We fetch and schema-check `plugin.json`. We do not execute MCP servers or evaluate skill quality.

**Can I reuse the dataset?** Yes. [census.json](/census.json) is CC BY 4.0. Attribute the dated index.
