@azure/functions
Version:
Microsoft Azure Functions NodeJS Framework
77 lines (69 loc) • 2.42 kB
TypeScript
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License.
import type { Args, McpToolProperty } from './mcpTool';
import type { IToolPropertyBuilder } from './toolPropertyBuilder';
/**
* Fluent API builder for creating MCP Tool properties
* Implements IToolPropertyBuilder interface to ensure consistency
*/
export declare class ToolPropertyBuilder implements IToolPropertyBuilder {
get propertyType(): string;
get description(): string;
get isRequired(): boolean;
get isArray(): boolean;
string(): IToolPropertyBuilder;
double(): IToolPropertyBuilder;
long(): IToolPropertyBuilder;
number(): IToolPropertyBuilder;
boolean(): IToolPropertyBuilder;
object(): IToolPropertyBuilder;
integer(): IToolPropertyBuilder;
datetime(): IToolPropertyBuilder;
describe(description: string): IToolPropertyBuilder;
optional(): IToolPropertyBuilder;
asArray(): IToolPropertyBuilder;
}
/**
* Factory function to create a new tool property builder
*
* @example
* ```typescript
* const toolProperties = {
* snippetName: arg
* .string()
* .describe("Some Description"),
*
* optionalField: arg
* .number()
* .describe("Optional number field")
* .optional(),
* };
* ```
*/
export declare const arg: {
string(): IToolPropertyBuilder;
integer(): IToolPropertyBuilder;
number(): IToolPropertyBuilder;
long(): IToolPropertyBuilder;
double(): IToolPropertyBuilder;
boolean(): IToolPropertyBuilder;
datetime(): IToolPropertyBuilder;
object(): IToolPropertyBuilder;
};
/**
* Convert a tool properties object to McpToolProperty array
* @param args - Object with property names as keys and ToolProperty as values
* @returns Array of McpToolProperty objects with propertyName set correctly
*/
export declare function convertToolProperties(args: Args): McpToolProperty[];
/**
* Type guard to check if properties are in toolProp format
*/
export declare function isToolProperties(properties: unknown): properties is Args;
/**
* Normalize tool properties to McpToolProperty array format
* Supports both legacy array format and new toolProp object format
*/
export declare function normalizeToolProperties(
properties: McpToolProperty[] | Args | undefined
): McpToolProperty[] | undefined;