@addai/tables-mcp 0.7.0

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.
Files changed (90) hide show
  1. package/README.md +127 -0
  2. package/dist/api-client.d.ts +12 -0
  3. package/dist/api-client.d.ts.map +1 -0
  4. package/dist/api-client.js +53 -0
  5. package/dist/api-client.js.map +1 -0
  6. package/dist/helpers/column-settings.d.ts +25 -0
  7. package/dist/helpers/column-settings.d.ts.map +1 -0
  8. package/dist/helpers/column-settings.js +96 -0
  9. package/dist/helpers/column-settings.js.map +1 -0
  10. package/dist/helpers/column-types.d.ts +8 -0
  11. package/dist/helpers/column-types.d.ts.map +1 -0
  12. package/dist/helpers/column-types.js +83 -0
  13. package/dist/helpers/column-types.js.map +1 -0
  14. package/dist/helpers/errors.d.ts +16 -0
  15. package/dist/helpers/errors.d.ts.map +1 -0
  16. package/dist/helpers/errors.js +19 -0
  17. package/dist/helpers/errors.js.map +1 -0
  18. package/dist/helpers/mapped-columns.d.ts +21 -0
  19. package/dist/helpers/mapped-columns.d.ts.map +1 -0
  20. package/dist/helpers/mapped-columns.js +119 -0
  21. package/dist/helpers/mapped-columns.js.map +1 -0
  22. package/dist/helpers/validate-options.d.ts +34 -0
  23. package/dist/helpers/validate-options.d.ts.map +1 -0
  24. package/dist/helpers/validate-options.js +120 -0
  25. package/dist/helpers/validate-options.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +34 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/logo.d.ts +2 -0
  31. package/dist/logo.d.ts.map +1 -0
  32. package/dist/logo.js +64 -0
  33. package/dist/logo.js.map +1 -0
  34. package/dist/preview.d.ts +3 -0
  35. package/dist/preview.d.ts.map +1 -0
  36. package/dist/preview.js +4 -0
  37. package/dist/preview.js.map +1 -0
  38. package/dist/server.d.ts +3 -0
  39. package/dist/server.d.ts.map +1 -0
  40. package/dist/server.js +136 -0
  41. package/dist/server.js.map +1 -0
  42. package/dist/setup.d.ts +2 -0
  43. package/dist/setup.d.ts.map +1 -0
  44. package/dist/setup.js +128 -0
  45. package/dist/setup.js.map +1 -0
  46. package/dist/tools/comments.d.ts +4 -0
  47. package/dist/tools/comments.d.ts.map +1 -0
  48. package/dist/tools/comments.js +63 -0
  49. package/dist/tools/comments.js.map +1 -0
  50. package/dist/tools/dashboards.d.ts +4 -0
  51. package/dist/tools/dashboards.d.ts.map +1 -0
  52. package/dist/tools/dashboards.js +560 -0
  53. package/dist/tools/dashboards.js.map +1 -0
  54. package/dist/tools/discovery.d.ts +4 -0
  55. package/dist/tools/discovery.d.ts.map +1 -0
  56. package/dist/tools/discovery.js +115 -0
  57. package/dist/tools/discovery.js.map +1 -0
  58. package/dist/tools/files.d.ts +4 -0
  59. package/dist/tools/files.d.ts.map +1 -0
  60. package/dist/tools/files.js +115 -0
  61. package/dist/tools/files.js.map +1 -0
  62. package/dist/tools/folders.d.ts +4 -0
  63. package/dist/tools/folders.d.ts.map +1 -0
  64. package/dist/tools/folders.js +164 -0
  65. package/dist/tools/folders.js.map +1 -0
  66. package/dist/tools/history.d.ts +4 -0
  67. package/dist/tools/history.d.ts.map +1 -0
  68. package/dist/tools/history.js +50 -0
  69. package/dist/tools/history.js.map +1 -0
  70. package/dist/tools/rows.d.ts +4 -0
  71. package/dist/tools/rows.d.ts.map +1 -0
  72. package/dist/tools/rows.js +244 -0
  73. package/dist/tools/rows.js.map +1 -0
  74. package/dist/tools/search.d.ts +4 -0
  75. package/dist/tools/search.d.ts.map +1 -0
  76. package/dist/tools/search.js +89 -0
  77. package/dist/tools/search.js.map +1 -0
  78. package/dist/tools/structure.d.ts +4 -0
  79. package/dist/tools/structure.d.ts.map +1 -0
  80. package/dist/tools/structure.js +172 -0
  81. package/dist/tools/structure.js.map +1 -0
  82. package/dist/tools/views.d.ts +4 -0
  83. package/dist/tools/views.d.ts.map +1 -0
  84. package/dist/tools/views.js +169 -0
  85. package/dist/tools/views.js.map +1 -0
  86. package/dist/types.d.ts +76 -0
  87. package/dist/types.d.ts.map +1 -0
  88. package/dist/types.js +3 -0
  89. package/dist/types.js.map +1 -0
  90. package/package.json +38 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboards.js","sourceRoot":"","sources":["../../src/tools/dashboards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { AiTablesClient } from '../api-client.js';
3
+ export declare function registerDiscoveryTools(server: McpServer, client: AiTablesClient): void;
4
+ //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAoJ/E"}
@@ -0,0 +1,115 @@
1
+ import { z } from 'zod';
2
+ import { mcpError, mcpResult } from '../helpers/errors.js';
3
+ export function registerDiscoveryTools(server, client) {
4
+ // ── list_workspaces ──
5
+ server.tool('list_workspaces', 'List all workspaces you have access to. Start here to discover available databases.', {}, async () => {
6
+ const res = await client.get('/workspaces');
7
+ if (res.error)
8
+ return mcpError(res.error.message);
9
+ return mcpResult(res.data);
10
+ });
11
+ // ── list_databases ──
12
+ server.tool('list_databases', 'List databases in a workspace, or all databases if workspace_id is omitted. Each database contains tables.', {
13
+ workspace_id: z
14
+ .string()
15
+ .uuid()
16
+ .optional()
17
+ .describe('Filter to a specific workspace. Omit to list all accessible databases.'),
18
+ }, async ({ workspace_id }) => {
19
+ const params = {};
20
+ if (workspace_id)
21
+ params.workspace_id = workspace_id;
22
+ const res = await client.get('/databases', params);
23
+ if (res.error)
24
+ return mcpError(res.error.message);
25
+ return mcpResult(res.data);
26
+ });
27
+ // ── create_database ──
28
+ server.tool('create_database', 'Create a new database in a workspace. A database is a container for tables.', {
29
+ workspace_id: z.string().uuid().describe('The workspace to create the database in'),
30
+ name: z.string().min(1).describe('Database name'),
31
+ description: z.string().optional().describe('Database description'),
32
+ }, async ({ workspace_id, name, description }) => {
33
+ const body = { workspace_id, name };
34
+ if (description)
35
+ body.description = description;
36
+ const res = await client.post('/databases', body);
37
+ if (res.error)
38
+ return mcpError(res.error.message);
39
+ return mcpResult(res.data);
40
+ });
41
+ // ── get_database ──
42
+ server.tool('get_database', 'Get a single database by id, including its name, description, and metadata.', {
43
+ database_id: z.string().uuid().describe('The database ID'),
44
+ }, async ({ database_id }) => {
45
+ const res = await client.get(`/databases/${database_id}`);
46
+ if (res.error)
47
+ return mcpError(res.error.message);
48
+ return mcpResult(res.data);
49
+ });
50
+ // ── update_database ──
51
+ server.tool('update_database', 'Update a database\'s name, description, or icon. Only the fields you pass are changed.', {
52
+ database_id: z.string().uuid().describe('The database to update'),
53
+ name: z.string().min(1).optional().describe('New database name'),
54
+ description: z.string().optional().describe('New description'),
55
+ icon: z.string().optional().describe('New icon name'),
56
+ }, async ({ database_id, name, description, icon }) => {
57
+ const body = {};
58
+ if (name !== undefined)
59
+ body.name = name;
60
+ if (description !== undefined)
61
+ body.description = description;
62
+ if (icon !== undefined)
63
+ body.icon = icon;
64
+ if (Object.keys(body).length === 0) {
65
+ return mcpError('Nothing to update — provide name, description, or icon');
66
+ }
67
+ const res = await client.patch(`/databases/${database_id}`, body);
68
+ if (res.error)
69
+ return mcpError(res.error.message);
70
+ return mcpResult(res.data);
71
+ });
72
+ // ── delete_database ──
73
+ server.tool('delete_database', 'Permanently delete a database and ALL of its tables, columns, and rows. This cannot be undone — confirm with the user before calling.', {
74
+ database_id: z.string().uuid().describe('The database to delete'),
75
+ }, async ({ database_id }) => {
76
+ const res = await client.delete(`/databases/${database_id}`);
77
+ if (res.error)
78
+ return mcpError(res.error.message);
79
+ return mcpResult({ message: 'Database deleted' });
80
+ });
81
+ // ── list_tables ──
82
+ server.tool('list_tables', 'List all tables in a database. Returns table names and IDs. Use get_table_schema to see columns.', {
83
+ database_id: z.string().uuid().describe('The database ID to list tables from'),
84
+ }, async ({ database_id }) => {
85
+ const res = await client.get('/tables', { database_id });
86
+ if (res.error)
87
+ return mcpError(res.error.message);
88
+ return mcpResult(res.data);
89
+ });
90
+ // ── get_table_schema ──
91
+ server.tool('get_table_schema', 'Get the full schema of a table including all columns, their types, and settings. ALWAYS call this before reading or writing rows — you need to know the column names and types.', {
92
+ table_id: z.string().uuid().describe('The table ID'),
93
+ }, async ({ table_id }) => {
94
+ const res = await client.get(`/tables/${table_id}`);
95
+ if (res.error)
96
+ return mcpError(res.error.message);
97
+ // Simplify the output for Claude — focus on column names and types
98
+ const table = res.data;
99
+ const columns = (table?.columns || []);
100
+ const schema = {
101
+ id: table?.id,
102
+ name: table?.name,
103
+ description: table?.description,
104
+ columns: columns.map((col) => ({
105
+ id: col.id,
106
+ name: col.name,
107
+ type: col.column_type,
108
+ settings: col.column_settings,
109
+ required: col.is_required,
110
+ })),
111
+ };
112
+ return mcpResult(schema);
113
+ });
114
+ }
115
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { AiTablesClient } from '../api-client.js';
3
+ export declare function registerFileTools(server: McpServer, client: AiTablesClient): void;
4
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA0BvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QA+F1E"}
@@ -0,0 +1,115 @@
1
+ import { z } from 'zod';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { basename, extname } from 'node:path';
4
+ import { mcpError, mcpResult } from '../helpers/errors.js';
5
+ // Minimal extension→MIME map (enough to set a sensible Content-Type; the bytes
6
+ // upload regardless). Falls back to application/octet-stream.
7
+ const MIME_BY_EXT = {
8
+ pdf: 'application/pdf', json: 'application/json', xml: 'application/xml',
9
+ zip: 'application/zip', csv: 'text/csv', txt: 'text/plain', md: 'text/markdown',
10
+ html: 'text/html', js: 'text/javascript', png: 'image/png', jpg: 'image/jpeg',
11
+ jpeg: 'image/jpeg', gif: 'image/gif', webp: 'image/webp', svg: 'image/svg+xml',
12
+ bmp: 'image/bmp', tiff: 'image/tiff', avif: 'image/avif', mp4: 'video/mp4',
13
+ webm: 'video/webm', mov: 'video/quicktime', mp3: 'audio/mpeg', wav: 'audio/wav',
14
+ ogg: 'audio/ogg', doc: 'application/msword',
15
+ docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
16
+ xls: 'application/vnd.ms-excel',
17
+ xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
18
+ ppt: 'application/vnd.ms-powerpoint',
19
+ pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
20
+ };
21
+ function guessMime(name, explicit) {
22
+ if (explicit)
23
+ return explicit;
24
+ const ext = extname(name).slice(1).toLowerCase();
25
+ return MIME_BY_EXT[ext] || 'application/octet-stream';
26
+ }
27
+ export function registerFileTools(server, client) {
28
+ server.tool('upload_file', 'Upload a real file from disk into a FILE-type column. Streams the bytes directly to storage (handles large files), then optionally writes the file into a specific row/cell. Returns the stored FILE value object {fileId,name,url,size,type} — pass that to update_rows yourself if you don\'t provide row_id/column_id. The file is stored under the table\'s own workspace.', {
29
+ table_id: z.string().uuid().describe('The table the file belongs to (determines the storage workspace).'),
30
+ file_path: z.string().describe('Absolute path to the local file to upload.'),
31
+ content_type: z.string().optional().describe('MIME type override. Usually auto-detected from the extension.'),
32
+ row_id: z.string().uuid().optional().describe('If set with column_id, the file is written into this row\'s FILE cell (appended for multi-file columns).'),
33
+ column_id: z.string().uuid().optional().describe('The FILE column id to write into (get it from get_table_schema). Required if row_id is given.'),
34
+ }, async ({ table_id, file_path, content_type, row_id, column_id }) => {
35
+ if ((row_id && !column_id) || (column_id && !row_id)) {
36
+ return mcpError('row_id and column_id must be provided together.');
37
+ }
38
+ // 1. Read the local file.
39
+ let bytes;
40
+ try {
41
+ bytes = await readFile(file_path);
42
+ }
43
+ catch (e) {
44
+ return mcpError(`Could not read file at ${file_path}: ${e instanceof Error ? e.message : String(e)}`);
45
+ }
46
+ const name = basename(file_path);
47
+ const type = guessMime(name, content_type);
48
+ const size = bytes.length;
49
+ // 2. Mint a signed GCS upload URL scoped to the table's workspace.
50
+ const mint = await client.post(`/tables/${table_id}/upload-url`, { name, type, bytes: size });
51
+ // The upload-url endpoint returns the policy at the top level (not under `data`).
52
+ const policy = mint;
53
+ if (policy.error)
54
+ return mcpError(policy.error.message);
55
+ if (!policy.url || !policy.fields)
56
+ return mcpError('Upload URL response missing url/fields.');
57
+ // 3. Upload the bytes directly to GCS (multipart; file field must be last).
58
+ const form = new FormData();
59
+ for (const [k, v] of Object.entries(policy.fields))
60
+ form.append(k, v);
61
+ form.append('file', new Blob([new Uint8Array(bytes)], { type }), name);
62
+ const gcsRes = await fetch(policy.url, { method: 'POST', body: form });
63
+ if (!gcsRes.ok) {
64
+ const detail = await gcsRes.text().catch(() => '');
65
+ return mcpError(`Storage upload failed (${gcsRes.status}): ${detail.slice(0, 300)}`);
66
+ }
67
+ const fileValue = {
68
+ ...(policy.file_value || {}),
69
+ fileId: policy.file_id,
70
+ name,
71
+ url: policy.file_url,
72
+ size,
73
+ type,
74
+ };
75
+ // 4. Optionally write the file into the target cell (append for multi-file).
76
+ if (row_id && column_id) {
77
+ const rowRes = await client.get(`/tables/${table_id}/rows/${row_id}`);
78
+ if (rowRes.error)
79
+ return mcpError(`Uploaded, but failed to read target row: ${rowRes.error.message}`);
80
+ const rowData = rowRes.data?.data || {};
81
+ let existing = rowData[column_id];
82
+ if (typeof existing === 'string') {
83
+ try {
84
+ existing = JSON.parse(existing);
85
+ }
86
+ catch { /* legacy bare string */ }
87
+ }
88
+ let nextValue;
89
+ if (Array.isArray(existing)) {
90
+ nextValue = [...existing, fileValue];
91
+ }
92
+ else if (existing && typeof existing === 'object') {
93
+ nextValue = [existing, fileValue];
94
+ }
95
+ else {
96
+ nextValue = fileValue;
97
+ }
98
+ const patchRes = await client.patch(`/tables/${table_id}/rows/${row_id}`, {
99
+ data: { [column_id]: nextValue },
100
+ });
101
+ if (patchRes.error)
102
+ return mcpError(`Uploaded to ${policy.file_url}, but failed to set the cell: ${patchRes.error.message}`);
103
+ return mcpResult({
104
+ message: 'File uploaded and written to the cell.',
105
+ file: fileValue,
106
+ row: patchRes.data,
107
+ });
108
+ }
109
+ return mcpResult({
110
+ message: 'File uploaded. Pass `file` to update_rows to store it in a FILE column.',
111
+ file: fileValue,
112
+ });
113
+ });
114
+ }
115
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { AiTablesClient } from '../api-client.js';
3
+ export declare function registerFolderTools(server: McpServer, client: AiTablesClient): void;
4
+ //# sourceMappingURL=folders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../src/tools/folders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUvD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAiM5E"}
@@ -0,0 +1,164 @@
1
+ import { z } from 'zod';
2
+ import { mcpError, mcpResult } from '../helpers/errors.js';
3
+ // Two distinct folder concepts:
4
+ // • Table folders — organise TABLES inside a single database.
5
+ // Live under /databases/:databaseId/folders.
6
+ // • Database folders — organise DATABASES inside a workspace.
7
+ // Live under /database-folders.
8
+ // Both can nest (table folders via parent_folder_id) and both carry an
9
+ // optional icon + color. Moving an item into a folder is a separate call.
10
+ export function registerFolderTools(server, client) {
11
+ // ───────────────────────────── TABLE FOLDERS ─────────────────────────────
12
+ // ── list_table_folders ──
13
+ server.tool('list_table_folders', 'List the folders that organise tables inside a database. Returns folder ids, names, icons, colors, and parent_folder_id (for nested folders). Use create_table to place a table directly, or move_table_to_folder to reorganise.', {
14
+ database_id: z.string().uuid().describe('The database whose table folders you want to list'),
15
+ }, async ({ database_id }) => {
16
+ const res = await client.get(`/databases/${database_id}/folders`);
17
+ if (res.error)
18
+ return mcpError(res.error.message);
19
+ return mcpResult(res.data);
20
+ });
21
+ // ── create_table_folder ──
22
+ server.tool('create_table_folder', 'Create a folder inside a database to group tables. Nest it under another folder by passing parent_folder_id. After creating, use move_table_to_folder to put tables in it.', {
23
+ database_id: z.string().uuid().describe('The database to create the folder in'),
24
+ name: z.string().min(1).describe('Folder name'),
25
+ parent_folder_id: z
26
+ .string()
27
+ .uuid()
28
+ .optional()
29
+ .describe('Nest this folder inside an existing table folder (same database)'),
30
+ icon: z.string().optional().describe('Optional icon name'),
31
+ color: z.string().optional().describe('Optional color (e.g. a hex value or named color)'),
32
+ }, async ({ database_id, name, parent_folder_id, icon, color }) => {
33
+ const body = { name };
34
+ if (parent_folder_id)
35
+ body.parent_folder_id = parent_folder_id;
36
+ if (icon)
37
+ body.icon = icon;
38
+ if (color)
39
+ body.color = color;
40
+ const res = await client.post(`/databases/${database_id}/folders`, body);
41
+ if (res.error)
42
+ return mcpError(res.error.message);
43
+ return mcpResult(res.data);
44
+ });
45
+ // ── update_table_folder ──
46
+ server.tool('update_table_folder', 'Rename a table folder or change its icon/color. Only the fields you pass are changed.', {
47
+ folder_id: z.string().uuid().describe('The table folder to update'),
48
+ name: z.string().min(1).optional().describe('New folder name'),
49
+ icon: z.string().optional().describe('New icon name'),
50
+ color: z.string().optional().describe('New color'),
51
+ }, async ({ folder_id, name, icon, color }) => {
52
+ const body = {};
53
+ if (name !== undefined)
54
+ body.name = name;
55
+ if (icon !== undefined)
56
+ body.icon = icon;
57
+ if (color !== undefined)
58
+ body.color = color;
59
+ if (Object.keys(body).length === 0) {
60
+ return mcpError('Nothing to update — provide name, icon, or color');
61
+ }
62
+ const res = await client.patch(`/folders/${folder_id}`, body);
63
+ if (res.error)
64
+ return mcpError(res.error.message);
65
+ return mcpResult(res.data);
66
+ });
67
+ // ── delete_table_folder ──
68
+ server.tool('delete_table_folder', 'Delete a table folder. The tables inside are NOT deleted — they move back to the database root. This only removes the folder grouping.', {
69
+ folder_id: z.string().uuid().describe('The table folder to delete'),
70
+ }, async ({ folder_id }) => {
71
+ const res = await client.delete(`/folders/${folder_id}`);
72
+ if (res.error)
73
+ return mcpError(res.error.message);
74
+ return mcpResult({ message: 'Table folder deleted' });
75
+ });
76
+ // ── move_table_to_folder ──
77
+ server.tool('move_table_to_folder', 'Move a table into a table folder, or pass folder_id = null to move it back to the database root.', {
78
+ table_id: z.string().uuid().describe('The table to move'),
79
+ folder_id: z
80
+ .string()
81
+ .uuid()
82
+ .nullable()
83
+ .describe('Destination table folder id, or null to move the table to the database root'),
84
+ }, async ({ table_id, folder_id }) => {
85
+ const res = await client.post(`/tables/${table_id}/move-to-folder`, {
86
+ folder_id: folder_id ?? null,
87
+ });
88
+ if (res.error)
89
+ return mcpError(res.error.message);
90
+ return mcpResult(res.data);
91
+ });
92
+ // ─────────────────────────── DATABASE FOLDERS ────────────────────────────
93
+ // ── list_database_folders ──
94
+ server.tool('list_database_folders', 'List the folders that organise databases inside your workspace(s). Returns folder ids, names, icons, colors. Use move_database_to_folder to place a database in one.', {}, async () => {
95
+ const res = await client.get('/database-folders');
96
+ if (res.error)
97
+ return mcpError(res.error.message);
98
+ return mcpResult(res.data);
99
+ });
100
+ // ── create_database_folder ──
101
+ server.tool('create_database_folder', 'Create a folder in the workspace to group databases. After creating, use move_database_to_folder to put databases in it.', {
102
+ name: z.string().min(1).describe('Folder name'),
103
+ icon: z.string().optional().describe('Optional icon name'),
104
+ color: z.string().optional().describe('Optional color'),
105
+ }, async ({ name, icon, color }) => {
106
+ const body = { name };
107
+ if (icon)
108
+ body.icon = icon;
109
+ if (color)
110
+ body.color = color;
111
+ const res = await client.post('/database-folders', body);
112
+ if (res.error)
113
+ return mcpError(res.error.message);
114
+ return mcpResult(res.data);
115
+ });
116
+ // ── update_database_folder ──
117
+ server.tool('update_database_folder', 'Rename a database folder or change its icon/color. Only the fields you pass are changed.', {
118
+ folder_id: z.string().uuid().describe('The database folder to update'),
119
+ name: z.string().min(1).optional().describe('New folder name'),
120
+ icon: z.string().optional().describe('New icon name'),
121
+ color: z.string().optional().describe('New color'),
122
+ }, async ({ folder_id, name, icon, color }) => {
123
+ const body = {};
124
+ if (name !== undefined)
125
+ body.name = name;
126
+ if (icon !== undefined)
127
+ body.icon = icon;
128
+ if (color !== undefined)
129
+ body.color = color;
130
+ if (Object.keys(body).length === 0) {
131
+ return mcpError('Nothing to update — provide name, icon, or color');
132
+ }
133
+ const res = await client.patch(`/database-folders/${folder_id}`, body);
134
+ if (res.error)
135
+ return mcpError(res.error.message);
136
+ return mcpResult(res.data);
137
+ });
138
+ // ── delete_database_folder ──
139
+ server.tool('delete_database_folder', 'Delete a database folder. The databases inside are NOT deleted — they move back to the workspace root. This only removes the folder grouping.', {
140
+ folder_id: z.string().uuid().describe('The database folder to delete'),
141
+ }, async ({ folder_id }) => {
142
+ const res = await client.delete(`/database-folders/${folder_id}`);
143
+ if (res.error)
144
+ return mcpError(res.error.message);
145
+ return mcpResult({ message: 'Database folder deleted' });
146
+ });
147
+ // ── move_database_to_folder ──
148
+ server.tool('move_database_to_folder', 'Move a database into a database folder, or pass folder_id = null to move it back to the workspace root.', {
149
+ database_id: z.string().uuid().describe('The database to move'),
150
+ folder_id: z
151
+ .string()
152
+ .uuid()
153
+ .nullable()
154
+ .describe('Destination database folder id, or null to move the database to the workspace root'),
155
+ }, async ({ database_id, folder_id }) => {
156
+ const res = await client.post(`/databases/${database_id}/move-to-folder`, {
157
+ folder_id: folder_id ?? null,
158
+ });
159
+ if (res.error)
160
+ return mcpError(res.error.message);
161
+ return mcpResult(res.data);
162
+ });
163
+ }
164
+ //# sourceMappingURL=folders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/tools/folders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { AiTablesClient } from '../api-client.js';
3
+ export declare function registerHistoryTools(server: McpServer, client: AiTablesClient): void;
4
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/tools/history.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QAiD7E"}
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import { mcpError, mcpResult } from '../helpers/errors.js';
3
+ // Read-only edit history. Every cell change is logged to ai_edit_history with
4
+ // the old/new value, the column, and the editor. Entries come back newest-first
5
+ // and are enriched with the editor's name + email.
6
+ export function registerHistoryTools(server, client) {
7
+ // ── get_row_history ──
8
+ server.tool('get_row_history', 'Get the edit history for a single row — every cell change with its old value, new value, column, editor, and timestamp, newest first.', {
9
+ table_id: z.string().uuid().describe('The table the row belongs to'),
10
+ row_id: z.string().uuid().describe('The row whose history you want'),
11
+ limit: z
12
+ .number()
13
+ .int()
14
+ .min(1)
15
+ .max(500)
16
+ .optional()
17
+ .describe('Max entries to return (default 100, max 500)'),
18
+ }, async ({ table_id, row_id, limit }) => {
19
+ const params = {};
20
+ if (limit !== undefined)
21
+ params.limit = String(limit);
22
+ const res = await client.get(`/tables/${table_id}/rows/${row_id}/history`, params);
23
+ if (res.error)
24
+ return mcpError(res.error.message);
25
+ return mcpResult(res.data);
26
+ });
27
+ // ── get_table_history ──
28
+ server.tool('get_table_history', 'Get the edit history across an entire table — every cell change on any row, newest first, paginated. Useful for auditing recent activity. Returns entries plus a pagination block.', {
29
+ table_id: z.string().uuid().describe('The table whose history you want'),
30
+ page: z.number().int().min(1).optional().describe('Page number (default 1)'),
31
+ page_size: z
32
+ .number()
33
+ .int()
34
+ .min(1)
35
+ .max(200)
36
+ .optional()
37
+ .describe('Entries per page (default 50, max 200)'),
38
+ }, async ({ table_id, page, page_size }) => {
39
+ const params = {};
40
+ if (page !== undefined)
41
+ params.page = String(page);
42
+ if (page_size !== undefined)
43
+ params.page_size = String(page_size);
44
+ const res = await client.get(`/tables/${table_id}/history`, params);
45
+ if (res.error)
46
+ return mcpError(res.error.message);
47
+ return mcpResult(res.data);
48
+ });
49
+ }
50
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/tools/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8EAA8E;AAC9E,gFAAgF;AAChF,mDAAmD;AACnD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAsB;IAC5E,wBAAwB;IACxB,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,uIAAuI,EACvI;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACpE,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;KAC5D,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,QAAQ,SAAS,MAAM,UAAU,EAAE,MAAM,CAAC,CAAC;QACnF,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CACF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,oLAAoL,EACpL;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC5E,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wCAAwC,CAAC;KACtD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;QACtC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,QAAQ,UAAU,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { AiTablesClient } from '../api-client.js';
3
+ export declare function registerRowTools(server: McpServer, client: AiTablesClient): void;
4
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/tools/rows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,QA4RzE"}