feat(plugins): import Agent Plugins 1.0 packages
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 148
- Forks
- 26
- Avg merge
- 5h 6m
- Merged PRs (30d)
- 40
Description
Area
Web app / API / Agent package import
Context
Agent Plugins 1.0.0 is now public as a vendor-neutral package format for Agent Skills and MCP servers. That boundary maps directly to two capabilities Mosoo already owns in the Agent Manifest: App-owned Skills and MCP connections.
Launch evidence:
- Agent Plugins specification and client conformance checklist
- OpenAI Developers announcement
- OpenAI's 2026-08-07 Codex changelog, which adds portable Agent Plugin installation and catalog search
- Vercel's launch post, which records the AWS, Cursor, GitHub, Microsoft, OpenAI, and Vercel collaboration and launch-client support
The specification page currently labels 1.0.0 a Working Draft. Mosoo should therefore recognize the canonical 1.0.0 schema identifiers explicitly and vendor the supported validation rules instead of fetching arbitrary schemas while loading a package.
Problem
A Builder who finds a portable Agent Plugin cannot use it in Mosoo without unpacking it manually, importing every Skill separately, recreating every MCP connection, and losing the package-level validation and provenance.
Mosoo's existing .agent package is not a substitute. It carries a Mosoo Agent's broader configuration, while Agent Plugins deliberately packages only portable capabilities. Treating the two formats as interchangeable would either discard Mosoo configuration or extend the external standard with Mosoo-only behavior.
This leaves Mosoo outside a growing extension ecosystem even though the runtime already supports the two v1 component types.
Proposal
Add an import-first Agent Plugins 1.0 compatibility path that projects supported components into Mosoo's existing App-owned resources.
The minimal Builder flow:
Import Agent Plugin → review detected components and warnings → install Skills / create MCP connection drafts → attach them to an Agent
For v1:
- Accept a ZIP whose extracted root is an Agent Plugin directory containing
plugin.json. - Validate
plugin.jsonagainst Mosoo's locally supported 1.0.0 rules, enforce the filesystem-resolved package boundary, and stop before discovery on a fatal manifest error. - Discover only the standard fixed locations:
skills/*/SKILL.md- root
mcp.json
- Import each valid Skill through the existing App Skill package path.
- Map valid
streamable-httpMCP entries into App-owned connection drafts, preserving the endpoint and non-secret configured headers. The Builder must explicitly choose or complete Mosoo-managed authorization before the connection becomes Ready; package data never becomes a credential. - Isolate failures at the standard boundaries: one invalid Skill or MCP entry is reported and skipped without disabling unrelated valid components.
- After import, use the existing Agent editor, execution snapshot, MCP proxy, and Agent Driver paths. Do not add a plugin-specific runtime protocol.
The import result should show the plugin name/version/source when available, what was installed, what needs authorization, and what was skipped.
Acceptance criteria
- A conformant 1.0.0 archive containing one valid Skill and one
streamable-httpMCP server imports into one App. - The imported Skill and authorized MCP connection can be attached to an Agent and used in a new Session through the existing frozen execution snapshot.
- Canonical 1.0.0
$schemavalues are validated locally; mismatched or unsupported plugin/MCP versions produce actionable errors. - Fatal manifest errors load no components; invalid Skills and individual MCP entries fail independently.
- Missing
skills/ormcp.jsonis treated as valid absence. - Path traversal, archive escape, and package symlink escape are rejected before component files are read or executed.
- Unsupported
stdio/sseentries and unimplemented extension namespaces are ignored with a visible report while supported components still import. - Import never treats
headers,env, or other package bytes as secrets and never authorizes a connection without an explicit Builder action. - Existing
.agentimport/export, standalone Skill import, MCP connections, and existing Agents remain unchanged. - One checked-in conformance fixture or focused test proves the loader, containment, discovery, and failure-isolation behavior.
Non-goals
- A Mosoo plugin marketplace, universal-directory integration, or multi-catalog abstraction
- Automatic plugin updates, synchronization, or grouped uninstall
- Exporting a Mosoo Agent as an Agent Plugin
- Local-process /
stdioMCP execution or legacy SSE transport - Portable hooks, commands, agents, or client-specific extension behavior
- Replacing Mosoo's
.agentpackage or Agent Manifest - Treating package metadata as a trust or security endorsement
Distribution and discovery can remain separate. In particular, #494 covers MCP catalog discovery; this issue covers loading a portable package after the Builder has obtained it.
Alternatives considered
- Keep separate Skill and MCP imports: no new loader work, but discards the interoperability benefit and forces Builders to reconstruct every bundle.
- Translate Agent Plugins into
.agent: conflates portable capabilities with a full Mosoo Agent and invents configuration the source package does not contain. - Create a first-class marketplace and plugin lifecycle now: broader than the standard, which intentionally leaves installation, distribution, policy, and UX to clients. Start with package compatibility and add lifecycle only after usage proves it is needed.
Compatibility and migration
This is additive. Imported components resolve into the existing App-owned Skill and MCP models; credentials remain in Mosoo's existing vault and do not travel with the package. Version support is explicit and schema-gated so later Agent Plugins versions do not silently change 1.0.0 behavior.
Related
- #364 — third-party Skills registry
- #494 — remote MCP Discover flow
- Mosoo Skills product note
- Mosoo MCP Connections product note
- Mosoo Agent import/export product note
Contribution
I can provide product feedback.
Checklist
- I searched existing issues before opening this request.
- I described the problem before the proposed solution.
- I kept this request focused on one improvement.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing App Skill package path and MCP connection flow, then review the plugin.json, skills/*/SKILL.md, and root mcp.json requirements. Check how imported resources reach the Agent editor, execution snapshot, MCP proxy, and Agent Driver. Done means a conformant archive imports supported components with containment checks, independent failure reporting, explicit authorization, and focused test or fixture coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend-api-design, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100