Skip to content

Strict 0.4 schema still requires server.mcp_config for uv type (contradicts spec + loose schema; incomplete fix of #201) #263

Description

@aosmcleod

Summary

The strict 0.4 schema still requires server.mcp_config, which contradicts both MANIFEST.md and the loose schema for uv-type servers. This is the same failure as #201 (closed as completed) — but #201 was resolved by adding mcp_config to the hello-world-uv example, not by fixing the schema, so a spec-compliant UV extension without mcp_config still fails mcpb validate and mcpb pack.

Mechanism

  • MANIFEST.md:432 (uv server type): "mcp_config is optional (host manages execution)".
  • src/schemas_loose/0.4.ts:40: mcp_config: McpbManifestMcpConfigSchema.optional() (correct).
  • src/schemas/0.4.ts:39: mcp_config: McpbManifestMcpConfigSchemarequired.
  • validateManifest (src/node/validate.ts) and pack (src/cli/pack.ts) use the strict schema, so a UV manifest with no mcp_config is rejected.

Reproduction (executed)

A manifest_version: "0.4" manifest with server: { type: "uv", entry_point: "main.py" } and no mcp_config:

  • loose schema → success: true
  • strict schema → success: false, server.mcp_config: Required

Suggested fix

Make it optional in the strict schema to match the loose schema + spec:

mcp_config: McpbManifestMcpConfigSchema.optional(),

Ideally enforce it as required only for non-uv server types via .superRefine, but at minimum it must be optional so UV extensions validate. (Refs #201.)

Environment: current main (70fe3b3).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions