tuxcare-eportal-mcp
Version:
TuxCare ePortal MCP server for integrating with TuxCare ePortal API
49 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ToolRegistry = void 0;
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
class ToolRegistry {
constructor() {
this.tools = new Map();
this.handlers = new Map();
}
addTool(tool, handler) {
this.tools.set(tool.name, tool);
this.handlers.set(tool.name, handler);
}
registerWithServer(server, client) {
// Register all tools
for (const tool of this.tools.values()) {
server.addTool(tool);
}
// Set up the handler
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
const handler = this.handlers.get(name);
if (!handler) {
return {
content: [{
type: "text",
text: `Tool ${name} not found`
}],
isError: true
};
}
try {
return await handler(args, client);
}
catch (error) {
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
return {
content: [{
type: "text",
text: `Error executing tool ${name}: ${errorMessage}`
}],
isError: true
};
}
});
}
}
exports.ToolRegistry = ToolRegistry;
//# sourceMappingURL=tool-registry.js.map