1.4 KiB
Plugin MCP artifacts are validated before packing
Plugin SDK v0.3.2 serializes Connect service descriptors into
PluginManifest.mcp_tools. Without a CLI gate, an artifact could carry
inconsistent procedures, missing RBAC coverage, invalid schemas, unstable
names, or no runtime HTTP handler and fail only after installation.
Decision: both ninja plugin build and ninja plugin verify validate the MCP
surface. Descriptor procedures must agree with service and method fields, be
unique, map to supported RBAC roles, contain object input schemas, and derive a
scoped name no longer than 128 bytes. The protobuf package must end in an API
major such as v1, plugin.mod must provide scope and plugin identity, and any
descriptor-bearing manifest must set has_http_handler. The CLI pins Plugin
SDK v0.3.2 so builds preserve the typed descriptor field.
Relying only on the CMS loader was rejected because it lets known-invalid
artifacts reach the registry. Validating only during build was rejected because
verify must independently gate externally supplied artifacts.
Consequences:
- Invalid MCP artifacts fail before upload or installation.
- The CLI and CMS enforce the same descriptor and runtime invariants.
- Wiki artifacts built with this CLI retain all typed MCP descriptors.
Keywords: ninja plugin build, ninja plugin verify, Plugin SDK v0.3.2, MCPToolDescriptor, mcp_tools, has_http_handler, plugin.mod scope, RBAC, JSON Schema, plugin_ninja_wiki_v1