UNPKG

mcp-quickbase

Version:

Work with Quickbase via Model Context Protocol

48 lines (47 loc) 1.28 kB
import { McpTool } from "../types/mcp"; import { ApiResponse } from "../types/api"; import { QuickbaseClient } from "../client/quickbase"; /** * Base class for MCP tools */ export declare abstract class BaseTool<TParams, TResult> implements McpTool<TParams, TResult> { /** * Tool name */ abstract name: string; /** * Tool description */ abstract description: string; /** * Parameter schema for the tool */ abstract paramSchema: Record<string, unknown>; /** * QuickBase client instance */ protected client: QuickbaseClient; /** * Constructor * @param client QuickBase client instance */ constructor(client: QuickbaseClient); /** * Validate parameters against schema using Zod * @param params Parameters to validate * @returns Validated parameters */ protected validateParams(params: unknown): TParams; /** * Execute the tool * @param params Tool parameters * @returns Tool result */ execute(params: TParams): Promise<ApiResponse<TResult>>; /** * Implement the tool's functionality * @param params Tool parameters * @returns Tool result */ protected abstract run(params: TParams): Promise<TResult>; }