mcp-quickbase
Version:
Work with Quickbase via Model Context Protocol
165 lines (164 loc) • 3.83 kB
TypeScript
import { BaseTool } from "../base";
import { QuickbaseClient } from "../../client/quickbase";
/**
* Order by configuration for query
*/
export interface OrderBy {
/**
* Field ID to order by
*/
fieldId: string;
/**
* Ordering direction: ASC or DESC
*/
order: "ASC" | "DESC";
}
/**
* Parameters for query_records tool
*/
export interface QueryRecordsParams {
/**
* The ID of the table to query
*/
table_id: string;
/**
* WHERE clause for filtering records
*/
where?: string;
/**
* Fields to select (field IDs)
*/
select?: string[];
/**
* Fields to order by
*/
orderBy?: OrderBy[];
/**
* Maximum number of records to return
*/
max_records?: number;
/**
* Number of records to skip
*/
skip?: number;
/**
* Whether to automatically handle pagination for large result sets
*/
paginate?: boolean;
/**
* Additional query options
*/
options?: Record<string, unknown>;
}
/**
* Response from querying records
*/
export interface QueryRecordsResult {
/**
* Array of records
*/
records: Record<string, any>[];
/**
* Total number of records matching the query
*/
totalRecords?: number;
/**
* Whether this is a partial result set (more records available)
*/
hasMore?: boolean;
/**
* Metadata about the query
*/
metadata?: {
/**
* Fields included in the result
*/
fields?: Record<string, unknown>[];
/**
* Table ID that was queried
*/
tableId: string;
/**
* Number of records returned
*/
numRecords: number;
/**
* Number of records skipped
*/
skip?: number;
};
}
/**
* Tool for querying records from a Quickbase table
*/
export declare class QueryRecordsTool extends BaseTool<QueryRecordsParams, QueryRecordsResult> {
name: string;
description: string;
/**
* Parameter schema for query_records
*/
paramSchema: {
type: string;
properties: {
table_id: {
type: string;
description: string;
};
where: {
type: string;
description: string;
};
select: {
type: string;
description: string;
items: {
type: string;
};
};
orderBy: {
type: string;
description: string;
items: {
type: string;
properties: {
fieldId: {
type: string;
};
order: {
type: string;
enum: string[];
};
};
};
};
max_records: {
type: string;
description: string;
};
skip: {
type: string;
description: string;
};
paginate: {
type: string;
description: string;
};
options: {
type: string;
description: string;
};
};
required: string[];
};
/**
* Constructor
* @param client Quickbase client
*/
constructor(client: QuickbaseClient);
/**
* Run the query_records tool
* @param params Tool parameters
* @returns Queried records
*/
protected run(params: QueryRecordsParams): Promise<QueryRecordsResult>;
}