UNPKG

mcp-framework

Version:

Framework for building Model Context Protocol (MCP) servers in Typescript

37 lines (36 loc) 1.01 kB
import { BaseLoader } from './BaseLoader.js'; import { logger } from '../core/Logger.js'; export class ToolLoader extends BaseLoader { constructor(basePath) { super({ subdirectory: 'tools', excludedFiles: ['BaseTool.js', '*.test.js', '*.spec.js'], extensions: ['.js'], }, basePath); } async hasTools() { return this.hasItems(); } validateItem(tool) { const isValid = Boolean(tool && typeof tool.name === 'string' && tool.toolDefinition && typeof tool.toolCall === 'function'); if (isValid) { logger.debug(`Validated tool: ${tool.name}`); } else { logger.warn(`Invalid tool found: missing required properties`); } return isValid; } createInstance(ToolClass) { return new ToolClass(); } getItemName(tool) { return tool.name; } async loadTools() { return this.loadItems(); } }