mcp-quickbase
Version:
Work with Quickbase via Model Context Protocol
72 lines • 2.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RunReportTool = void 0;
const base_1 = require("../base");
const logger_1 = require("../../utils/logger");
const logger = (0, logger_1.createLogger)('RunReportTool');
/**
* Tool for executing Quickbase reports
*/
class RunReportTool extends base_1.BaseTool {
constructor(client) {
super(client);
this.name = 'run_report';
this.description = 'Execute a Quickbase report with optional filters and parameters';
this.paramSchema = {
type: 'object',
properties: {
report_id: {
type: 'string',
description: 'The ID of the report to run'
},
options: {
type: 'object',
description: 'Additional options for the report execution',
properties: {
filters: {
type: 'object',
description: 'Filter conditions for the report'
},
format: {
type: 'string',
description: 'Output format for the report',
enum: ['JSON', 'CSV', 'XML']
},
groupBy: {
type: 'array',
description: 'Fields to group results by',
items: { type: 'string' }
},
sortBy: {
type: 'array',
description: 'Fields to sort results by',
items: { type: 'string' }
},
skip: {
type: 'number',
description: 'Number of records to skip'
},
top: {
type: 'number',
description: 'Number of records to retrieve'
}
}
}
},
required: ['report_id']
};
}
async run(params) {
const { report_id, options = {} } = params;
logger.info(`Running report: ${report_id}`);
const response = await this.client.request({
method: 'POST',
path: `/reports/${report_id}/run`,
body: options
});
logger.info(`Report executed successfully: ${report_id}`);
return response;
}
}
exports.RunReportTool = RunReportTool;
//# sourceMappingURL=run_report.js.map