Skip to content

manifest tools entries forbid inputSchema, so consumers that expect MCP's Tool shape reject the bundle #298

Description

@shakaran

The manifest schema rejects inputSchema inside a tools entry, allowing only name and description. A registry that consumes the declared tools as MCP Tool objects therefore cannot accept them, because Tool requires inputSchema.

This is not hypothetical: Smithery's publish endpoint answers 400 with Invalid input: expected object, received undefined, once per tool, for a bundle whose manifest passes mcpb validate. The result is that a bundle can declare tools that no consumer expecting the MCP shape can use, and declaring them costs a publish rather than gaining anything.

Reproduction

npx @anthropic-ai/mcpb@2.1.2 validate manifest.json with manifest_version 0.3:

"tools": [
  {
    "name": "example",
    "description": "An example tool",
    "inputSchema": { "type": "object", "properties": {}, "required": [] }
  }
]
ERROR: Manifest validation failed:
  - tools.0: Unrecognized key(s) in object: 'inputSchema'

Removing inputSchema validates and packs, and is then rejected downstream.

Question

Is the omission deliberate — tools being a display hint rather than a capability declaration — or should the entry allow the full Tool shape? If it is deliberate, saying so in MANIFEST.md would help, since the natural reading of a tools array is that it carries what tools/list returns.

Filed the mirror of this at arcadeai-labs/smithery-cli#806; the two schemas contradict each other and I have no view on which side should move.

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