basalt / mcp-core/src / McpToolDef
Interface: McpToolDef
Defined in: mcp-core/src/server.ts:48
A function-shaped MCP tool. Unlike the runtime @basaltkit/mcp package (whose tools are BasaltRoutes), the core takes plain descriptors so a dev tool can expose any function — no DI container, no framework runtime.
Properties
description
> description: string
Defined in: mcp-core/src/server.ts:50
inputSchema
> inputSchema: Record<string, unknown>
Defined in: mcp-core/src/server.ts:51
name
> name: string
Defined in: mcp-core/src/server.ts:49
outputSchema?
> optional outputSchema?: Record<string, unknown>
Defined in: mcp-core/src/server.ts:52
Methods
invoke()
> invoke(args, ctx): Promise<McpToolResult>
Defined in: mcp-core/src/server.ts:53
Parameters
args
Record<string, unknown>
ctx
Returns
Promise<McpToolResult>
visible()?
> optional visible(ctx): boolean | Promise<boolean>
Defined in: mcp-core/src/server.ts:60
Optional listing filter: return false to leave the tool out of this caller's tools/list. It must be side-effect free (it runs on every listing) and it is NOT authorization — tools/call never consults it, so invoke must still enforce access itself. A throwing hook hides the tool.
Parameters
ctx
Returns
boolean | Promise<boolean>