mcp-framework
Version:
Framework for building Model Context Protocol (MCP) servers in Typescript
38 lines (37 loc) • 1.13 kB
JavaScript
import { BaseLoader } from './BaseLoader.js';
import { logger } from '../core/Logger.js';
export class ResourceLoader extends BaseLoader {
constructor(basePath) {
super({
subdirectory: 'resources',
excludedFiles: ['BaseResource.js', '*.test.js', '*.spec.js'],
extensions: ['.js'],
}, basePath);
}
async hasResources() {
return this.hasItems();
}
validateItem(resource) {
const isValid = Boolean(resource &&
typeof resource.uri === 'string' &&
typeof resource.name === 'string' &&
resource.resourceDefinition &&
typeof resource.read === 'function');
if (isValid) {
logger.debug(`Validated resource: ${resource.name}`);
}
else {
logger.warn(`Invalid resource found: missing required properties`);
}
return isValid;
}
createInstance(ResourceClass) {
return new ResourceClass();
}
getItemName(resource) {
return resource.name;
}
async loadResources() {
return this.loadItems();
}
}