mcp-quickbase
Version:
Work with Quickbase via Model Context Protocol
66 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toolRegistry = exports.ToolRegistryImpl = void 0;
const logger_1 = require("../utils/logger");
const logger = (0, logger_1.createLogger)('ToolRegistry');
/**
* Implementation of the MCP Tool Registry
* Manages all available MCP tools
*/
class ToolRegistryImpl {
constructor() {
this.tools = new Map();
}
/**
* Get a tool by name
* @param name Tool name
* @returns The tool or undefined if not found
*/
getTool(name) {
return this.tools.get(name);
}
/**
* Register a tool
* @param tool Tool to register
*/
registerTool(tool) {
if (this.tools.has(tool.name)) {
logger.warn(`Tool with name ${tool.name} already exists, overwriting`);
}
this.tools.set(tool.name, tool);
logger.info(`Registered tool: ${tool.name}`);
}
/**
* Get all registered tools
* @returns Array of all registered tools
*/
getAllTools() {
return Array.from(this.tools.values());
}
/**
* Get tool names
* @returns Array of tool names
*/
getToolNames() {
return Array.from(this.tools.keys());
}
/**
* Check if a tool exists
* @param name Tool name
* @returns True if the tool exists
*/
hasTool(name) {
return this.tools.has(name);
}
/**
* Get tool count
* @returns Number of registered tools
*/
getToolCount() {
return this.tools.size;
}
}
exports.ToolRegistryImpl = ToolRegistryImpl;
// Create singleton instance
exports.toolRegistry = new ToolRegistryImpl();
//# sourceMappingURL=registry.js.map