Skip to content

Add optional tool metadata to Server Card for offline discovery #30

Description

@vyshnavigadamsetti

One thing we keep running into with the current spec direction: without tool definitions in the card, the card doesn't really tell you what a server does.

The spec defers primitives because servers are dynamic, but there's a whole class of consumers that will never connect to a live MCP server like registries, developer portals, agent orchestrators planning tool routing. For them the card ends up like an API catalog that lists URLs but no operations.

The OpenAPI parallel feels apt here: static documentation of what a server supports, used for discovery not execution. That model works well in practice and I think the same approach can work for MCP tools.

The fix seems straightforward: add optional tools, resources, and prompts arrays using the existing MCP types. Dynamic servers just don't set them. Clients still use tools/list at runtime as the source of truth. The static list is for discovery, not execution.

We built an open-source renderer that already visualizes static tool definitions from card JSON and it works really well in practice. Happy to demo if helpful.

Related: SEP-2127 comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestv2For the second iteration of the SEP

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions