@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
52 lines (51 loc) • 1.69 kB
TypeScript
import { OpenApiV3_1 } from "../OpenApiV3_1";
/**
* MCP tool type.
*
* `IMcpTool` is an interface representing a tool type defined in the MCP (Model
* Context Protocol).
*
* Note that, don't be confused with {@link IMcpLlmFunction} type, that is used
* for {@link McpLlm.application} which converts this `IMcpTool` type to the
* {@link IMcpLlmFunction} type.
*
* @author Jeongho Nam - https://github.com/samchon
* @warning Don't be confused with {@link IMcpLlmFunction}
*/
export interface IMcpTool {
/**
* Name of the tool.
*
* @maxLength 64
*/
name: string;
/** Description of the tool. */
description?: string | undefined;
/**
* Input schema of the tool.
*
* The input schema, parameters of the tool.
*
* As MCP (Model Context Protocol) does not restict the JSON schema
* specification, `@samchon/openapi` has defined it to be universal structure
* {@link OpenApiV3_1.IJsonSchema} which can cover every JSON schema
* specification.
*/
inputSchema: IMcpTool.IInputSchema;
}
export declare namespace IMcpTool {
/**
* Input schema of the tool.
*
* The input schema, parameters of the tool.
*
* As MCP (Model Context Protocol) does not restict the JSON schema
* specification, `@samchon/openapi` has defined it to be universal structure
* {@link OpenApiV3_1.IJsonSchema} which can cover every JSON schema
* specification.
*/
type IInputSchema = (OpenApiV3_1.IJsonSchema.IObject | OpenApiV3_1.IJsonSchema.IReference) & {
/** Collection of the named schemas. */
$defs?: Record<string, OpenApiV3_1.IJsonSchema>;
};
}