When to Choose Each Option
Clear guidance based on your specific situation and needs.
Our Recommendation
Adopt Agent Plugins for any extension that needs to travel across more than one compatible client. The spec is one day old, but the problem it solves is real and well-understood: repackaging the same MCP server for every client is the default failure mode of the agent-extension ecosystem, and the six launch clients plus Google's day-one products cover enough surface area that a plugin packaged today will reach the majority of the market without modification. Stay with direct per-client MCP deployment when you are shipping to a single client, when you need client-specific capabilities that the portable contract does not cover (commands, hooks, agents), or when the absence of a trust and permissions model in the spec is a disqualifier rather than a deferred item. The spec is deliberately honest about what it does not define — no install mechanism, no distribution protocol, no sandboxing, no trust verification — and for regulated or enterprise environments those gaps matter today, even if they close in future versions. The pattern Context Studios favours is a hybrid one: package the portable parts (Agent Skills, MCP server declarations) as an Agent Plugin, and keep client-specific behaviour in the namespaced extension directory. When the portable contract is too narrow, ship directly. When it is wide enough, ship once. The spec's scope discipline is its strongest feature — it standardises only what genuinely travels, and leaves the rest where it belongs.
- Choose Agent Plugins when...
- You build extensions that need to run across multiple AI clients — ChatGPT, Cursor, GitHub Copilot, VS Code or Kiro — without repackaging for each one
- You ship both Agent Skills and MCP servers together and want them discovered as one unit, with independent validation so a broken MCP server does not disable the Skills
- You want your plugin to remain portable as new clients adopt the spec, without rewriting your packaging for each new client
- You are building for the ecosystem floor: one directory, one manifest, one contract that any compatible client can load
- Choose Standalone MCP Servers when...
- You ship a single MCP server to a single client and mcp.json alone is the simpler answer — a plugin wrapper adds overhead without benefit
- You need client-specific capabilities the portable contract does not cover — commands, hooks, agents or custom UI — and waiting for a multi-vendor consensus is not practical
- Your environment requires a trust, permissions or sandboxing model that the spec explicitly does not define, and per-client deployment gives you that today
- You need production maturity that a one-day-old specification cannot offer, and your MCP server already works across your target clients