Stone.js API
    Preparing search index...

    Options for the @Mcp activation.

    interface McpDecoratorOptions {
        filter?: (tool: McpTool, route: RouteLike) => boolean;
        instructions?: string;
        name?: string;
        path?: string;
        requireDescription?: boolean;
        route?: Record<string, unknown>;
        version?: string;
    }

    Hierarchy (View Summary)

    Index
    filter?: (tool: McpTool, route: RouteLike) => boolean

    The last word on which tools are exposed, called once per listing.

    Everything else about a tool is declared on its route. This exists for what a declaration cannot know: an environment, a flag, a caller. Return false to leave a tool out.

    instructions?: string

    Instructions handed to the agent once, alongside the tool list.

    The place to say what this API is for and how its tools relate, which no single tool description can carry.

    name?: string

    The server name an agent sees during initialize. Defaults to the application's name.

    path?: string

    Where the endpoint is served. Defaults to /mcp.

    requireDescription?: boolean

    Whether a tool with no description is refused rather than exposed.

    false by default, because a route that says mcp: 'create-note' asked for a tool and should get one. Set it to true on an API where an undescribed tool is a defect: an agent reading a bare name will guess, and it guesses worst on the routes that write.

    route?: Record<string, unknown>

    Anything else to put on the endpoint's route definition: auth, authz, rateLimit, middleware, a different name.

    This is how the endpoint is protected, and it is protected like any other route rather than by options this module invents. A public tool surface is a decision, so it is written here.

    blueprint.set('stone.mcp.route', { auth: true, rateLimit: { max: 60, window: 60, by: 'user' } })
    
    version?: string

    The server version an agent sees. Defaults to 0.0.0.