/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ export type McpTool = { name: string; description: string; inputSchema?: any; resourceName?: string; actionName?: string; path?: string; method?: string; call: (args: Record, context?: McpToolCallContext) => Promise; }; export type McpToolCallContext = { token?: string; headers?: Record; }; export type McpToolResultPostProcessorContext = { tool: McpTool; args: Record; callContext?: McpToolCallContext; response?: { statusCode?: number; headers?: Record; body?: any; }; }; export type McpToolResultPostProcessor = (result: any, context: McpToolResultPostProcessorContext) => any | Promise; export declare class McpToolsManager { private tools; private resultPostProcessors; private getActionKey; registerTools(tools: McpTool[]): void; registerToolResultPostProcessor(resourceName: string, actionName: string, processor: McpToolResultPostProcessor): void; postProcessToolResult(tool: McpTool, result: any, context: Omit): Promise; listTools(): McpTool[]; getTool(name: string): McpTool; }