@tacitai/mcp-server 0.1.1 → 0.3.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.
- package/dist/auth.d.ts +32 -0
- package/dist/auth.js +64 -0
- package/dist/client.d.ts +60 -5
- package/dist/client.js +234 -53
- package/dist/index.js +130 -106
- package/dist/oauth.d.ts +115 -0
- package/dist/oauth.js +619 -0
- package/dist/prompts.d.ts +2 -0
- package/dist/prompts.js +12 -0
- package/dist/setup.d.ts +28 -5
- package/dist/setup.js +266 -59
- package/dist/tools/agents.d.ts +277 -0
- package/dist/tools/agents.js +335 -0
- package/dist/tools/annotations.d.ts +117 -0
- package/dist/tools/annotations.js +130 -0
- package/dist/tools/artifacts.d.ts +178 -8
- package/dist/tools/artifacts.js +372 -81
- package/dist/tools/chronicle.d.ts +3 -0
- package/dist/tools/chronicle.js +165 -0
- package/dist/tools/connector_write_back.d.ts +3 -0
- package/dist/tools/connector_write_back.js +27 -0
- package/dist/tools/converse.d.ts +10 -0
- package/dist/tools/converse.js +88 -0
- package/dist/tools/crews.d.ts +3 -0
- package/dist/tools/crews.js +115 -0
- package/dist/tools/drafts.d.ts +83 -0
- package/dist/tools/drafts.js +86 -0
- package/dist/tools/errors.d.ts +15 -0
- package/dist/tools/errors.js +21 -0
- package/dist/tools/export.d.ts +54 -0
- package/dist/tools/export.js +55 -0
- package/dist/tools/gm.d.ts +214 -0
- package/dist/tools/gm.js +198 -0
- package/dist/tools/ingest.d.ts +58 -4
- package/dist/tools/ingest.js +109 -76
- package/dist/tools/kb.d.ts +544 -0
- package/dist/tools/kb.js +687 -0
- package/dist/tools/lake-structure.d.ts +3 -0
- package/dist/tools/lake-structure.js +126 -0
- package/dist/tools/lake.d.ts +932 -0
- package/dist/tools/lake.js +1017 -0
- package/dist/tools/move.d.ts +200 -0
- package/dist/tools/move.js +96 -0
- package/dist/tools/outbox.d.ts +274 -0
- package/dist/tools/outbox.js +223 -0
- package/dist/tools/people.d.ts +3 -0
- package/dist/tools/people.js +59 -0
- package/dist/tools/pyramid.d.ts +554 -0
- package/dist/tools/pyramid.js +758 -0
- package/dist/tools/recall.d.ts +2 -0
- package/dist/tools/recall.js +28 -17
- package/dist/tools/registry.d.ts +17 -0
- package/dist/tools/registry.js +199 -0
- package/dist/tools/research.d.ts +47 -0
- package/dist/tools/research.js +575 -0
- package/dist/tools/search.d.ts +9 -0
- package/dist/tools/search.js +86 -25
- package/dist/tools/sharing.d.ts +63 -0
- package/dist/tools/sharing.js +157 -0
- package/dist/tools/skills.d.ts +9 -0
- package/dist/tools/skills.js +98 -0
- package/dist/tools/synthesize.d.ts +54 -2
- package/dist/tools/synthesize.js +80 -23
- package/dist/tools/web-url.d.ts +57 -0
- package/dist/tools/web-url.js +74 -0
- package/dist/tools/workspaces.d.ts +3 -0
- package/dist/tools/workspaces.js +47 -0
- package/dist/transport.d.ts +9 -0
- package/dist/transport.js +209 -0
- package/package.json +5 -4
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { TacitApiError } from '../client.js';
|
|
3
|
+
import { success, error } from './errors.js';
|
|
4
|
+
export function registerLakeStructureTools(server, getClient) {
|
|
5
|
+
server.tool('tacit_lake_propose_structure', 'Generate a v7 structure proposal for a registered source. Does NOT modify the repo.', {
|
|
6
|
+
source_id: z.string().uuid().describe('Source ID to generate proposal for'),
|
|
7
|
+
}, async (args) => {
|
|
8
|
+
try {
|
|
9
|
+
const client = await getClient();
|
|
10
|
+
const data = await client.request('POST', `/api/v1/org/lake/sources/${args.source_id}/propose-structure`);
|
|
11
|
+
return success(data);
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
if (e instanceof TacitApiError)
|
|
15
|
+
return error(e.message);
|
|
16
|
+
return error(`Unexpected error: ${e instanceof Error ? e.message : String(e)}`);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
server.tool('tacit_lake_apply_structure', 'Apply a previously proposed v7 structure via atomic git commit. Idempotent: re-applying returns 409.', {
|
|
20
|
+
source_id: z.string().uuid().describe('Source ID the proposal belongs to'),
|
|
21
|
+
proposal_id: z.string().uuid().describe('Proposal ID to apply'),
|
|
22
|
+
excluded_moves: z.array(z.string().uuid()).optional().describe('Catalog IDs to exclude from restructuring'),
|
|
23
|
+
reassignments: z.record(z.string(), z.string()).optional().describe('Map of catalog_id → target_folder for reassignments'),
|
|
24
|
+
}, async (args) => {
|
|
25
|
+
try {
|
|
26
|
+
const client = await getClient();
|
|
27
|
+
const body = { proposal_id: args.proposal_id };
|
|
28
|
+
if (args.excluded_moves && args.excluded_moves.length > 0)
|
|
29
|
+
body.excluded_moves = args.excluded_moves;
|
|
30
|
+
if (args.reassignments && Object.keys(args.reassignments).length > 0)
|
|
31
|
+
body.reassignments = args.reassignments;
|
|
32
|
+
const data = await client.request('POST', `/api/v1/org/lake/sources/${args.source_id}/apply-structure`, body);
|
|
33
|
+
return success(data);
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
if (e instanceof TacitApiError)
|
|
37
|
+
return error(e.message);
|
|
38
|
+
return error(`Unexpected error: ${e instanceof Error ? e.message : String(e)}`);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
server.tool('tacit_lake_folder_list', 'List the folder schema for a data lake source.', {
|
|
42
|
+
source_id: z.string().uuid().describe('Source ID to list folder schema for'),
|
|
43
|
+
}, async (args) => {
|
|
44
|
+
try {
|
|
45
|
+
const client = await getClient();
|
|
46
|
+
const data = await client.request('GET', `/api/v1/org/lake/sources/${args.source_id}/folders`);
|
|
47
|
+
return success(data);
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
if (e instanceof TacitApiError)
|
|
51
|
+
return error(e.message);
|
|
52
|
+
return error(`Unexpected error: ${e instanceof Error ? e.message : String(e)}`);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
server.tool('tacit_lake_folder_add', "Add a custom folder to a source's schema.", {
|
|
56
|
+
source_id: z.string().uuid().describe('Source ID to add folder to'),
|
|
57
|
+
name: z.string().describe("New folder's name"),
|
|
58
|
+
subject_prefixes: z.array(z.string()).describe('Subject prefixes that route files into this folder'),
|
|
59
|
+
description: z.string().optional().describe('Folder description'),
|
|
60
|
+
}, async (args) => {
|
|
61
|
+
try {
|
|
62
|
+
const client = await getClient();
|
|
63
|
+
const body = {
|
|
64
|
+
name: args.name,
|
|
65
|
+
subject_prefixes: args.subject_prefixes,
|
|
66
|
+
};
|
|
67
|
+
if (args.description !== undefined)
|
|
68
|
+
body.description = args.description;
|
|
69
|
+
const data = await client.request('POST', `/api/v1/org/lake/sources/${args.source_id}/folders`, body);
|
|
70
|
+
return success(data);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
if (e instanceof TacitApiError)
|
|
74
|
+
return error(e.message);
|
|
75
|
+
return error(`Unexpected error: ${e instanceof Error ? e.message : String(e)}`);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
server.tool('tacit_lake_folder_remove', 'Remove a folder and redistribute contents to another folder.', {
|
|
79
|
+
source_id: z.string().uuid().describe('Source ID'),
|
|
80
|
+
folder_name: z.string().describe('Folder name to remove'),
|
|
81
|
+
redistribute_to: z.string().describe('Folder to receive removed contents'),
|
|
82
|
+
}, async (args) => {
|
|
83
|
+
try {
|
|
84
|
+
const client = await getClient();
|
|
85
|
+
const data = await client.request('DELETE', `/api/v1/org/lake/sources/${args.source_id}/folders/${args.folder_name}`, { redistribute_to: args.redistribute_to });
|
|
86
|
+
return success(data);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
if (e instanceof TacitApiError)
|
|
90
|
+
return error(e.message);
|
|
91
|
+
return error(`Unexpected error: ${e instanceof Error ? e.message : String(e)}`);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
server.tool('tacit_lake_folder_rename', "Rename a folder in a source's schema.", {
|
|
95
|
+
source_id: z.string().uuid().describe('Source ID'),
|
|
96
|
+
folder_name: z.string().describe('Current folder name'),
|
|
97
|
+
new_name: z.string().describe('New folder name'),
|
|
98
|
+
}, async (args) => {
|
|
99
|
+
try {
|
|
100
|
+
const client = await getClient();
|
|
101
|
+
const data = await client.request('PUT', `/api/v1/org/lake/sources/${args.source_id}/folders/${args.folder_name}`, { new_name: args.new_name });
|
|
102
|
+
return success(data);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
if (e instanceof TacitApiError)
|
|
106
|
+
return error(e.message);
|
|
107
|
+
return error(`Unexpected error: ${e instanceof Error ? e.message : String(e)}`);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
server.tool('tacit_lake_folder_merge', 'Merge one folder into another — combines subject prefixes and moves contents.', {
|
|
111
|
+
source_id: z.string().uuid().describe('Source ID'),
|
|
112
|
+
source_folder: z.string().describe('Folder to merge from'),
|
|
113
|
+
target_folder: z.string().describe('Folder to merge into'),
|
|
114
|
+
}, async (args) => {
|
|
115
|
+
try {
|
|
116
|
+
const client = await getClient();
|
|
117
|
+
const data = await client.request('POST', `/api/v1/org/lake/sources/${args.source_id}/folders/merge`, { source_folder: args.source_folder, target_folder: args.target_folder });
|
|
118
|
+
return success(data);
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
if (e instanceof TacitApiError)
|
|
122
|
+
return error(e.message);
|
|
123
|
+
return error(`Unexpected error: ${e instanceof Error ? e.message : String(e)}`);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|