mcp-quickbase 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/LICENSE +21 -0
- package/README.md +301 -0
- package/dist/client/quickbase.d.ts +28 -0
- package/dist/client/quickbase.js +235 -0
- package/dist/client/quickbase.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.js +21 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +19 -0
- package/dist/mcp/server.js +102 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp-stdio-server.d.ts +2 -0
- package/dist/mcp-stdio-server.js +168 -0
- package/dist/mcp-stdio-server.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.js +318 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/apps/create_app.d.ts +87 -0
- package/dist/tools/apps/create_app.js +87 -0
- package/dist/tools/apps/create_app.js.map +1 -0
- package/dist/tools/apps/index.d.ts +9 -0
- package/dist/tools/apps/index.js +40 -0
- package/dist/tools/apps/index.js.map +1 -0
- package/dist/tools/apps/list_tables.d.ts +108 -0
- package/dist/tools/apps/list_tables.js +100 -0
- package/dist/tools/apps/list_tables.js.map +1 -0
- package/dist/tools/apps/update_app.d.ts +91 -0
- package/dist/tools/apps/update_app.js +99 -0
- package/dist/tools/apps/update_app.js.map +1 -0
- package/dist/tools/base.d.ts +47 -0
- package/dist/tools/base.js +63 -0
- package/dist/tools/base.js.map +1 -0
- package/dist/tools/configure_cache.d.ts +81 -0
- package/dist/tools/configure_cache.js +77 -0
- package/dist/tools/configure_cache.js.map +1 -0
- package/dist/tools/fields/create_field.d.ts +121 -0
- package/dist/tools/fields/create_field.js +102 -0
- package/dist/tools/fields/create_field.js.map +1 -0
- package/dist/tools/fields/index.d.ts +8 -0
- package/dist/tools/fields/index.js +37 -0
- package/dist/tools/fields/index.js.map +1 -0
- package/dist/tools/fields/update_field.d.ts +112 -0
- package/dist/tools/fields/update_field.js +114 -0
- package/dist/tools/fields/update_field.js.map +1 -0
- package/dist/tools/files/download_file.d.ts +111 -0
- package/dist/tools/files/download_file.js +173 -0
- package/dist/tools/files/download_file.js.map +1 -0
- package/dist/tools/files/index.d.ts +8 -0
- package/dist/tools/files/index.js +37 -0
- package/dist/tools/files/index.js.map +1 -0
- package/dist/tools/files/upload_file.d.ts +107 -0
- package/dist/tools/files/upload_file.js +211 -0
- package/dist/tools/files/upload_file.js.map +1 -0
- package/dist/tools/index.d.ts +18 -0
- package/dist/tools/index.js +65 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/records/bulk_create_records.d.ts +75 -0
- package/dist/tools/records/bulk_create_records.js +104 -0
- package/dist/tools/records/bulk_create_records.js.map +1 -0
- package/dist/tools/records/bulk_update_records.d.ts +77 -0
- package/dist/tools/records/bulk_update_records.js +102 -0
- package/dist/tools/records/bulk_update_records.js.map +1 -0
- package/dist/tools/records/create_record.d.ts +68 -0
- package/dist/tools/records/create_record.js +123 -0
- package/dist/tools/records/create_record.js.map +1 -0
- package/dist/tools/records/index.d.ts +11 -0
- package/dist/tools/records/index.js +46 -0
- package/dist/tools/records/index.js.map +1 -0
- package/dist/tools/records/query_records.d.ts +164 -0
- package/dist/tools/records/query_records.js +261 -0
- package/dist/tools/records/query_records.js.map +1 -0
- package/dist/tools/records/update_record.d.ts +81 -0
- package/dist/tools/records/update_record.js +99 -0
- package/dist/tools/records/update_record.js.map +1 -0
- package/dist/tools/registry.d.ts +41 -0
- package/dist/tools/registry.js +66 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/reports/index.d.ts +6 -0
- package/dist/tools/reports/index.js +31 -0
- package/dist/tools/reports/index.js.map +1 -0
- package/dist/tools/reports/run_report.d.ts +70 -0
- package/dist/tools/reports/run_report.js +72 -0
- package/dist/tools/reports/run_report.js.map +1 -0
- package/dist/tools/tables/create_table.d.ts +142 -0
- package/dist/tools/tables/create_table.js +119 -0
- package/dist/tools/tables/create_table.js.map +1 -0
- package/dist/tools/tables/get_table_fields.d.ts +108 -0
- package/dist/tools/tables/get_table_fields.js +96 -0
- package/dist/tools/tables/get_table_fields.js.map +1 -0
- package/dist/tools/tables/index.d.ts +9 -0
- package/dist/tools/tables/index.js +40 -0
- package/dist/tools/tables/index.js.map +1 -0
- package/dist/tools/tables/update_table.d.ts +91 -0
- package/dist/tools/tables/update_table.js +99 -0
- package/dist/tools/tables/update_table.js.map +1 -0
- package/dist/tools/test_connection.d.ts +51 -0
- package/dist/tools/test_connection.js +101 -0
- package/dist/tools/test_connection.js.map +1 -0
- package/dist/types/api.d.ts +70 -0
- package/dist/types/api.js +6 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/config.d.ts +49 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/mcp.d.ts +55 -0
- package/dist/types/mcp.js +3 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/utils/cache.d.ts +87 -0
- package/dist/utils/cache.js +211 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/file.d.ts +40 -0
- package/dist/utils/file.js +167 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/logger.d.ts +37 -0
- package/dist/utils/logger.js +144 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/retry.d.ts +39 -0
- package/dist/utils/retry.js +88 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/validation.d.ts +32 -0
- package/dist/utils/validation.js +227 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs/README.md +41 -0
- package/docs/architecture.md +94 -0
- package/docs/claude-prompts.md +218 -0
- package/docs/deployment.md +244 -0
- package/docs/developer-guide.md +537 -0
- package/docs/final-qa-report.md +243 -0
- package/docs/performance-benchmarks.md +306 -0
- package/docs/quick-reference.md +109 -0
- package/docs/quickstart.md +183 -0
- package/docs/security-review.md +263 -0
- package/docs/tools.md +269 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { BaseTool } from '../base';
|
|
2
|
+
import { QuickbaseClient } from '../../client/quickbase';
|
|
3
|
+
/**
|
|
4
|
+
* Parameters for create_app tool
|
|
5
|
+
*/
|
|
6
|
+
export interface CreateAppParams {
|
|
7
|
+
/**
|
|
8
|
+
* Name of the application to create
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
/**
|
|
12
|
+
* Description of the application
|
|
13
|
+
*/
|
|
14
|
+
description?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Additional options for app creation
|
|
17
|
+
*/
|
|
18
|
+
options?: Record<string, any>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Response from creating an application
|
|
22
|
+
*/
|
|
23
|
+
export interface CreateAppResult {
|
|
24
|
+
/**
|
|
25
|
+
* The ID of the created application
|
|
26
|
+
*/
|
|
27
|
+
appId: string;
|
|
28
|
+
/**
|
|
29
|
+
* The name of the created application
|
|
30
|
+
*/
|
|
31
|
+
name: string;
|
|
32
|
+
/**
|
|
33
|
+
* The description of the created application
|
|
34
|
+
*/
|
|
35
|
+
description?: string;
|
|
36
|
+
/**
|
|
37
|
+
* The date the application was created
|
|
38
|
+
*/
|
|
39
|
+
created?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The URL to access the application
|
|
42
|
+
*/
|
|
43
|
+
appUrl?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Additional details returned from the API
|
|
46
|
+
*/
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Tool for creating a new Quickbase application
|
|
51
|
+
*/
|
|
52
|
+
export declare class CreateAppTool extends BaseTool<CreateAppParams, CreateAppResult> {
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
/**
|
|
56
|
+
* Parameter schema for create_app
|
|
57
|
+
*/
|
|
58
|
+
paramSchema: {
|
|
59
|
+
type: string;
|
|
60
|
+
properties: {
|
|
61
|
+
name: {
|
|
62
|
+
type: string;
|
|
63
|
+
description: string;
|
|
64
|
+
};
|
|
65
|
+
description: {
|
|
66
|
+
type: string;
|
|
67
|
+
description: string;
|
|
68
|
+
};
|
|
69
|
+
options: {
|
|
70
|
+
type: string;
|
|
71
|
+
description: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
required: string[];
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Constructor
|
|
78
|
+
* @param client Quickbase client
|
|
79
|
+
*/
|
|
80
|
+
constructor(client: QuickbaseClient);
|
|
81
|
+
/**
|
|
82
|
+
* Run the create_app tool
|
|
83
|
+
* @param params Tool parameters
|
|
84
|
+
* @returns Created application details
|
|
85
|
+
*/
|
|
86
|
+
protected run(params: CreateAppParams): Promise<CreateAppResult>;
|
|
87
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateAppTool = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
const logger_1 = require("../../utils/logger");
|
|
6
|
+
const logger = (0, logger_1.createLogger)('CreateAppTool');
|
|
7
|
+
/**
|
|
8
|
+
* Tool for creating a new Quickbase application
|
|
9
|
+
*/
|
|
10
|
+
class CreateAppTool extends base_1.BaseTool {
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param client Quickbase client
|
|
14
|
+
*/
|
|
15
|
+
constructor(client) {
|
|
16
|
+
super(client);
|
|
17
|
+
this.name = 'create_app';
|
|
18
|
+
this.description = 'Creates a new Quickbase application. Only use this tool when explicitly asked to create a new application.';
|
|
19
|
+
/**
|
|
20
|
+
* Parameter schema for create_app
|
|
21
|
+
*/
|
|
22
|
+
this.paramSchema = {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
name: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Name of the application'
|
|
28
|
+
},
|
|
29
|
+
description: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'Description of the application'
|
|
32
|
+
},
|
|
33
|
+
options: {
|
|
34
|
+
type: 'object',
|
|
35
|
+
description: 'Additional options for app creation'
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
required: ['name']
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Run the create_app tool
|
|
43
|
+
* @param params Tool parameters
|
|
44
|
+
* @returns Created application details
|
|
45
|
+
*/
|
|
46
|
+
async run(params) {
|
|
47
|
+
logger.info('Creating new Quickbase application', { name: params.name });
|
|
48
|
+
const { name, description, options } = params;
|
|
49
|
+
// Prepare request body
|
|
50
|
+
const body = {
|
|
51
|
+
name,
|
|
52
|
+
description: description || ''
|
|
53
|
+
};
|
|
54
|
+
// Add any additional options
|
|
55
|
+
if (options) {
|
|
56
|
+
Object.assign(body, options);
|
|
57
|
+
}
|
|
58
|
+
// Create the application
|
|
59
|
+
const response = await this.client.request({
|
|
60
|
+
method: 'POST',
|
|
61
|
+
path: '/apps',
|
|
62
|
+
body
|
|
63
|
+
});
|
|
64
|
+
if (!response.success || !response.data) {
|
|
65
|
+
logger.error('Failed to create application', {
|
|
66
|
+
error: response.error,
|
|
67
|
+
params
|
|
68
|
+
});
|
|
69
|
+
throw new Error(response.error?.message || 'Failed to create application');
|
|
70
|
+
}
|
|
71
|
+
const app = response.data;
|
|
72
|
+
logger.info('Successfully created application', {
|
|
73
|
+
appId: app.id,
|
|
74
|
+
name: app.name
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
appId: app.id,
|
|
78
|
+
name: app.name,
|
|
79
|
+
description: app.description,
|
|
80
|
+
created: app.created,
|
|
81
|
+
appUrl: app.url,
|
|
82
|
+
...app
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.CreateAppTool = CreateAppTool;
|
|
87
|
+
//# sourceMappingURL=create_app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_app.js","sourceRoot":"","sources":["../../../src/tools/apps/create_app.ts"],"names":[],"mappings":";;;AAAA,kCAAmC;AAEnC,+CAAkD;AAElD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,eAAe,CAAC,CAAC;AAyD7C;;GAEG;AACH,MAAa,aAAc,SAAQ,eAA0C;IA0B3E;;;OAGG;IACH,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QA9BT,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,4GAA4G,CAAC;QAElI;;WAEG;QACI,gBAAW,GAAG;YACnB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qCAAqC;iBACnD;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB,CAAC;IAQF,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,GAAG,CAAC,MAAuB;QACzC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE9C,uBAAuB;QACvB,MAAM,IAAI,GAAwB;YAChC,IAAI;YACJ,WAAW,EAAE,WAAW,IAAI,EAAE;SAC/B,CAAC;QAEF,6BAA6B;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;YACb,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;gBAC3C,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM;aACP,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,8BAA8B,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAA2B,CAAC;QAEjD,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YAC9C,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,GAAG,CAAC,GAAG;YACf,GAAG,GAAG;SACP,CAAC;IACJ,CAAC;CACF;AAtFD,sCAsFC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QuickbaseClient } from '../../client/quickbase';
|
|
2
|
+
/**
|
|
3
|
+
* Register all app management tools with the registry
|
|
4
|
+
* @param client Quickbase client
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerAppTools(client: QuickbaseClient): void;
|
|
7
|
+
export * from './create_app';
|
|
8
|
+
export * from './update_app';
|
|
9
|
+
export * from './list_tables';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.registerAppTools = registerAppTools;
|
|
18
|
+
const registry_1 = require("../registry");
|
|
19
|
+
const create_app_1 = require("./create_app");
|
|
20
|
+
const update_app_1 = require("./update_app");
|
|
21
|
+
const list_tables_1 = require("./list_tables");
|
|
22
|
+
const logger_1 = require("../../utils/logger");
|
|
23
|
+
const logger = (0, logger_1.createLogger)('AppTools');
|
|
24
|
+
/**
|
|
25
|
+
* Register all app management tools with the registry
|
|
26
|
+
* @param client Quickbase client
|
|
27
|
+
*/
|
|
28
|
+
function registerAppTools(client) {
|
|
29
|
+
logger.info('Registering app management tools');
|
|
30
|
+
// Register individual tools
|
|
31
|
+
registry_1.toolRegistry.registerTool(new create_app_1.CreateAppTool(client));
|
|
32
|
+
registry_1.toolRegistry.registerTool(new update_app_1.UpdateAppTool(client));
|
|
33
|
+
registry_1.toolRegistry.registerTool(new list_tables_1.ListTablesTool(client));
|
|
34
|
+
logger.info('App management tools registered');
|
|
35
|
+
}
|
|
36
|
+
// Export all tools
|
|
37
|
+
__exportStar(require("./create_app"), exports);
|
|
38
|
+
__exportStar(require("./update_app"), exports);
|
|
39
|
+
__exportStar(require("./list_tables"), exports);
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/apps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAaA,4CASC;AArBD,0CAA2C;AAC3C,6CAA6C;AAC7C,6CAA6C;AAC7C,+CAA+C;AAC/C,+CAAkD;AAElD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,UAAU,CAAC,CAAC;AAExC;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAuB;IACtD,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAEhD,4BAA4B;IAC5B,uBAAY,CAAC,YAAY,CAAC,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,uBAAY,CAAC,YAAY,CAAC,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,uBAAY,CAAC,YAAY,CAAC,IAAI,4BAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtD,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;AACjD,CAAC;AAED,mBAAmB;AACnB,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { BaseTool } from '../base';
|
|
2
|
+
import { QuickbaseClient } from '../../client/quickbase';
|
|
3
|
+
/**
|
|
4
|
+
* Table information returned by list_tables
|
|
5
|
+
*/
|
|
6
|
+
export interface TableInfo {
|
|
7
|
+
/**
|
|
8
|
+
* The ID of the table
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/**
|
|
12
|
+
* The name of the table
|
|
13
|
+
*/
|
|
14
|
+
name: string;
|
|
15
|
+
/**
|
|
16
|
+
* The description of the table
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The singular noun for records in this table
|
|
21
|
+
*/
|
|
22
|
+
singleRecordName?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The plural noun for records in this table
|
|
25
|
+
*/
|
|
26
|
+
pluralRecordName?: string;
|
|
27
|
+
/**
|
|
28
|
+
* The date the table was created
|
|
29
|
+
*/
|
|
30
|
+
created?: string;
|
|
31
|
+
/**
|
|
32
|
+
* The date the table was last updated
|
|
33
|
+
*/
|
|
34
|
+
updated?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Additional details about the table
|
|
37
|
+
*/
|
|
38
|
+
[key: string]: any;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Parameters for list_tables tool
|
|
42
|
+
*/
|
|
43
|
+
export interface ListTablesParams {
|
|
44
|
+
/**
|
|
45
|
+
* The ID of the application (optional, uses the configured one if not provided)
|
|
46
|
+
*/
|
|
47
|
+
app_id?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Whether to include hidden tables in the results
|
|
50
|
+
*/
|
|
51
|
+
include_hidden?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Filter tables by pattern (case-insensitive substring match)
|
|
54
|
+
*/
|
|
55
|
+
filter?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Response from listing tables
|
|
59
|
+
*/
|
|
60
|
+
export interface ListTablesResult {
|
|
61
|
+
/**
|
|
62
|
+
* Array of table information
|
|
63
|
+
*/
|
|
64
|
+
tables: TableInfo[];
|
|
65
|
+
/**
|
|
66
|
+
* The application ID that was queried
|
|
67
|
+
*/
|
|
68
|
+
appId: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Tool for listing tables in a Quickbase application
|
|
72
|
+
*/
|
|
73
|
+
export declare class ListTablesTool extends BaseTool<ListTablesParams, ListTablesResult> {
|
|
74
|
+
name: string;
|
|
75
|
+
description: string;
|
|
76
|
+
/**
|
|
77
|
+
* Parameter schema for list_tables
|
|
78
|
+
*/
|
|
79
|
+
paramSchema: {
|
|
80
|
+
type: string;
|
|
81
|
+
properties: {
|
|
82
|
+
app_id: {
|
|
83
|
+
type: string;
|
|
84
|
+
description: string;
|
|
85
|
+
};
|
|
86
|
+
include_hidden: {
|
|
87
|
+
type: string;
|
|
88
|
+
description: string;
|
|
89
|
+
};
|
|
90
|
+
filter: {
|
|
91
|
+
type: string;
|
|
92
|
+
description: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
required: never[];
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Constructor
|
|
99
|
+
* @param client Quickbase client
|
|
100
|
+
*/
|
|
101
|
+
constructor(client: QuickbaseClient);
|
|
102
|
+
/**
|
|
103
|
+
* Run the list_tables tool
|
|
104
|
+
* @param params Tool parameters
|
|
105
|
+
* @returns List of tables in the application
|
|
106
|
+
*/
|
|
107
|
+
protected run(params: ListTablesParams): Promise<ListTablesResult>;
|
|
108
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ListTablesTool = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
const logger_1 = require("../../utils/logger");
|
|
6
|
+
const logger = (0, logger_1.createLogger)('ListTablesTool');
|
|
7
|
+
/**
|
|
8
|
+
* Tool for listing tables in a Quickbase application
|
|
9
|
+
*/
|
|
10
|
+
class ListTablesTool extends base_1.BaseTool {
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param client Quickbase client
|
|
14
|
+
*/
|
|
15
|
+
constructor(client) {
|
|
16
|
+
super(client);
|
|
17
|
+
this.name = 'list_tables';
|
|
18
|
+
this.description = 'Lists all tables in the Quickbase application';
|
|
19
|
+
/**
|
|
20
|
+
* Parameter schema for list_tables
|
|
21
|
+
*/
|
|
22
|
+
this.paramSchema = {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
app_id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'The ID of the application'
|
|
28
|
+
},
|
|
29
|
+
include_hidden: {
|
|
30
|
+
type: 'boolean',
|
|
31
|
+
description: 'Whether to include hidden tables'
|
|
32
|
+
},
|
|
33
|
+
filter: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Filter tables by name (case-insensitive substring match)'
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
required: []
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Run the list_tables tool
|
|
43
|
+
* @param params Tool parameters
|
|
44
|
+
* @returns List of tables in the application
|
|
45
|
+
*/
|
|
46
|
+
async run(params) {
|
|
47
|
+
const { app_id, include_hidden, filter } = params;
|
|
48
|
+
// Use provided app_id or fall back to the one from config
|
|
49
|
+
const appId = app_id || this.client.getConfig().appId;
|
|
50
|
+
if (!appId) {
|
|
51
|
+
throw new Error('Application ID is required but not provided in parameters or configuration');
|
|
52
|
+
}
|
|
53
|
+
logger.info('Listing tables in Quickbase application', {
|
|
54
|
+
appId,
|
|
55
|
+
includeHidden: include_hidden
|
|
56
|
+
});
|
|
57
|
+
// Prepare query parameters
|
|
58
|
+
const queryParams = {};
|
|
59
|
+
if (include_hidden !== undefined) {
|
|
60
|
+
queryParams.includeHidden = include_hidden.toString();
|
|
61
|
+
}
|
|
62
|
+
// List tables in the application
|
|
63
|
+
const response = await this.client.request({
|
|
64
|
+
method: 'GET',
|
|
65
|
+
path: `/tables?appId=${appId}`,
|
|
66
|
+
params: queryParams
|
|
67
|
+
});
|
|
68
|
+
if (!response.success || !response.data) {
|
|
69
|
+
logger.error('Failed to list tables', {
|
|
70
|
+
error: response.error,
|
|
71
|
+
appId
|
|
72
|
+
});
|
|
73
|
+
throw new Error(response.error?.message || 'Failed to list tables');
|
|
74
|
+
}
|
|
75
|
+
// Cast data to array of tables
|
|
76
|
+
let tables = response.data.map(table => ({
|
|
77
|
+
id: table.id,
|
|
78
|
+
name: table.name,
|
|
79
|
+
description: table.description,
|
|
80
|
+
singleRecordName: table.singleRecordName,
|
|
81
|
+
pluralRecordName: table.pluralRecordName,
|
|
82
|
+
created: table.created,
|
|
83
|
+
updated: table.updated,
|
|
84
|
+
...table
|
|
85
|
+
}));
|
|
86
|
+
// Filter tables if requested
|
|
87
|
+
if (filter && filter.trim() !== '') {
|
|
88
|
+
const filterLower = filter.toLowerCase();
|
|
89
|
+
tables = tables.filter(table => table.name.toLowerCase().includes(filterLower) ||
|
|
90
|
+
(table.description && table.description.toLowerCase().includes(filterLower)));
|
|
91
|
+
}
|
|
92
|
+
logger.info(`Found ${tables.length} tables in application`, { appId });
|
|
93
|
+
return {
|
|
94
|
+
tables,
|
|
95
|
+
appId
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.ListTablesTool = ListTablesTool;
|
|
100
|
+
//# sourceMappingURL=list_tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list_tables.js","sourceRoot":"","sources":["../../../src/tools/apps/list_tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { BaseTool } from '../base';
|
|
2
|
+
import { QuickbaseClient } from '../../client/quickbase';
|
|
3
|
+
/**
|
|
4
|
+
* Parameters for update_app tool
|
|
5
|
+
*/
|
|
6
|
+
export interface UpdateAppParams {
|
|
7
|
+
/**
|
|
8
|
+
* The ID of the application to update
|
|
9
|
+
*/
|
|
10
|
+
app_id: string;
|
|
11
|
+
/**
|
|
12
|
+
* New name for the application
|
|
13
|
+
*/
|
|
14
|
+
name?: string;
|
|
15
|
+
/**
|
|
16
|
+
* New description for the application
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Additional options for app update
|
|
21
|
+
*/
|
|
22
|
+
options?: Record<string, any>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Response from updating an application
|
|
26
|
+
*/
|
|
27
|
+
export interface UpdateAppResult {
|
|
28
|
+
/**
|
|
29
|
+
* The ID of the updated application
|
|
30
|
+
*/
|
|
31
|
+
appId: string;
|
|
32
|
+
/**
|
|
33
|
+
* The updated name of the application
|
|
34
|
+
*/
|
|
35
|
+
name?: string;
|
|
36
|
+
/**
|
|
37
|
+
* The updated description of the application
|
|
38
|
+
*/
|
|
39
|
+
description?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The date the application was updated
|
|
42
|
+
*/
|
|
43
|
+
updated?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Additional details returned from the API
|
|
46
|
+
*/
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Tool for updating an existing Quickbase application
|
|
51
|
+
*/
|
|
52
|
+
export declare class UpdateAppTool extends BaseTool<UpdateAppParams, UpdateAppResult> {
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
/**
|
|
56
|
+
* Parameter schema for update_app
|
|
57
|
+
*/
|
|
58
|
+
paramSchema: {
|
|
59
|
+
type: string;
|
|
60
|
+
properties: {
|
|
61
|
+
app_id: {
|
|
62
|
+
type: string;
|
|
63
|
+
description: string;
|
|
64
|
+
};
|
|
65
|
+
name: {
|
|
66
|
+
type: string;
|
|
67
|
+
description: string;
|
|
68
|
+
};
|
|
69
|
+
description: {
|
|
70
|
+
type: string;
|
|
71
|
+
description: string;
|
|
72
|
+
};
|
|
73
|
+
options: {
|
|
74
|
+
type: string;
|
|
75
|
+
description: string;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
required: string[];
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Constructor
|
|
82
|
+
* @param client Quickbase client
|
|
83
|
+
*/
|
|
84
|
+
constructor(client: QuickbaseClient);
|
|
85
|
+
/**
|
|
86
|
+
* Run the update_app tool
|
|
87
|
+
* @param params Tool parameters
|
|
88
|
+
* @returns Updated application details
|
|
89
|
+
*/
|
|
90
|
+
protected run(params: UpdateAppParams): Promise<UpdateAppResult>;
|
|
91
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateAppTool = void 0;
|
|
4
|
+
const base_1 = require("../base");
|
|
5
|
+
const logger_1 = require("../../utils/logger");
|
|
6
|
+
const logger = (0, logger_1.createLogger)('UpdateAppTool');
|
|
7
|
+
/**
|
|
8
|
+
* Tool for updating an existing Quickbase application
|
|
9
|
+
*/
|
|
10
|
+
class UpdateAppTool extends base_1.BaseTool {
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param client Quickbase client
|
|
14
|
+
*/
|
|
15
|
+
constructor(client) {
|
|
16
|
+
super(client);
|
|
17
|
+
this.name = 'update_app';
|
|
18
|
+
this.description = 'Updates an existing Quickbase application';
|
|
19
|
+
/**
|
|
20
|
+
* Parameter schema for update_app
|
|
21
|
+
*/
|
|
22
|
+
this.paramSchema = {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
app_id: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'The ID of the application'
|
|
28
|
+
},
|
|
29
|
+
name: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'New name for the application'
|
|
32
|
+
},
|
|
33
|
+
description: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'New description for the application'
|
|
36
|
+
},
|
|
37
|
+
options: {
|
|
38
|
+
type: 'object',
|
|
39
|
+
description: 'Additional options for app update'
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
required: ['app_id']
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Run the update_app tool
|
|
47
|
+
* @param params Tool parameters
|
|
48
|
+
* @returns Updated application details
|
|
49
|
+
*/
|
|
50
|
+
async run(params) {
|
|
51
|
+
logger.info('Updating Quickbase application', {
|
|
52
|
+
appId: params.app_id
|
|
53
|
+
});
|
|
54
|
+
const { app_id, name, description, options } = params;
|
|
55
|
+
// At least one update field is required
|
|
56
|
+
if (!name && !description && (!options || Object.keys(options).length === 0)) {
|
|
57
|
+
throw new Error('At least one update field (name, description, or options) is required');
|
|
58
|
+
}
|
|
59
|
+
// Prepare request body with only the fields that are provided
|
|
60
|
+
const body = {};
|
|
61
|
+
if (name !== undefined) {
|
|
62
|
+
body.name = name;
|
|
63
|
+
}
|
|
64
|
+
if (description !== undefined) {
|
|
65
|
+
body.description = description;
|
|
66
|
+
}
|
|
67
|
+
// Add any additional options
|
|
68
|
+
if (options) {
|
|
69
|
+
Object.assign(body, options);
|
|
70
|
+
}
|
|
71
|
+
// Update the application
|
|
72
|
+
const response = await this.client.request({
|
|
73
|
+
method: 'POST',
|
|
74
|
+
path: `/apps/${app_id}`,
|
|
75
|
+
body
|
|
76
|
+
});
|
|
77
|
+
if (!response.success || !response.data) {
|
|
78
|
+
logger.error('Failed to update application', {
|
|
79
|
+
error: response.error,
|
|
80
|
+
appId: app_id
|
|
81
|
+
});
|
|
82
|
+
throw new Error(response.error?.message || 'Failed to update application');
|
|
83
|
+
}
|
|
84
|
+
const app = response.data;
|
|
85
|
+
logger.info('Successfully updated application', {
|
|
86
|
+
appId: app.id,
|
|
87
|
+
updates: Object.keys(body).join(', ')
|
|
88
|
+
});
|
|
89
|
+
return {
|
|
90
|
+
appId: app.id,
|
|
91
|
+
name: app.name,
|
|
92
|
+
description: app.description,
|
|
93
|
+
updated: app.updated || new Date().toISOString(),
|
|
94
|
+
...app
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.UpdateAppTool = UpdateAppTool;
|
|
99
|
+
//# sourceMappingURL=update_app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update_app.js","sourceRoot":"","sources":["../../../src/tools/apps/update_app.ts"],"names":[],"mappings":"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"}
|