domotz-mcp
Version:
MCP server for Domotz API and BMS (Building Management System) integration with IoT device monitoring
51 lines (50 loc) • 1.72 kB
JavaScript
import { z } from "zod";
import axios from "axios";
import { BaseDomotzTool } from "./BaseDomotzTool.js";
export default class GetAllAgentsTool extends BaseDomotzTool {
name = "get_all_agents";
description = "Get a list of all Domotz agents";
schema = {
page_size: {
type: z.number().min(1).max(100).default(50),
description: "Number of agents per page (1-100)"
},
page_number: {
type: z.number().min(0).default(0),
description: "Page number (0-based)"
}
};
async execute(input) {
const apiEndpoint = process.env.DOMOTZ_API_ENDPOINT || "https://api-eu-west-1-cell-1.domotz.com/public-api/v1/";
if (!this.apiKey) {
throw new Error("DOMOTZ_API_KEY environment variable is not set");
}
try {
const response = await axios.get(`${apiEndpoint}agent`, {
headers: {
"X-Api-Key": this.apiKey,
"Content-Type": "application/json"
},
params: {
page_size: input.page_size || 50,
page_number: input.page_number || 0
}
});
return {
success: true,
agents: response.data,
count: response.data.length,
page_size: input.page_size || 50,
page_number: input.page_number || 0
};
}
catch (error) {
return {
success: false,
error: error.message,
status: error.response?.status,
data: error.response?.data
};
}
}
}