mcp-framework
Version:
Framework for building Model Context Protocol (MCP) servers in Typescript
37 lines (36 loc) • 1.01 kB
JavaScript
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();
}
}