nebula-notebook-mcp 0.1.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/README.md +314 -0
- package/bin/nebula-mcp.js +10 -0
- package/dist/circuit-breaker.d.ts +157 -0
- package/dist/circuit-breaker.d.ts.map +1 -0
- package/dist/circuit-breaker.js +237 -0
- package/dist/circuit-breaker.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +314 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +8 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +13 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +31 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +237 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/notebook/client.d.ts +643 -0
- package/dist/notebook/client.d.ts.map +1 -0
- package/dist/notebook/client.js +1720 -0
- package/dist/notebook/client.js.map +1 -0
- package/dist/notebook/index.d.ts +6 -0
- package/dist/notebook/index.d.ts.map +1 -0
- package/dist/notebook/index.js +6 -0
- package/dist/notebook/index.js.map +1 -0
- package/dist/notebook/tools.d.ts +244 -0
- package/dist/notebook/tools.d.ts.map +1 -0
- package/dist/notebook/tools.js +279 -0
- package/dist/notebook/tools.js.map +1 -0
- package/dist/tools/execution.d.ts +38 -0
- package/dist/tools/execution.d.ts.map +1 -0
- package/dist/tools/execution.js +116 -0
- package/dist/tools/execution.js.map +1 -0
- package/dist/tools/files.d.ts +70 -0
- package/dist/tools/files.d.ts.map +1 -0
- package/dist/tools/files.js +286 -0
- package/dist/tools/files.js.map +1 -0
- package/dist/tools/index.d.ts +74 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +217 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/kernel.d.ts +36 -0
- package/dist/tools/kernel.d.ts.map +1 -0
- package/dist/tools/kernel.js +182 -0
- package/dist/tools/kernel.js.map +1 -0
- package/dist/tools/notebook.d.ts +252 -0
- package/dist/tools/notebook.d.ts.map +1 -0
- package/dist/tools/notebook.js +1089 -0
- package/dist/tools/notebook.js.map +1 -0
- package/dist/tools/types.d.ts +78 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +8 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types.d.ts +473 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/imageResize.d.ts +24 -0
- package/dist/utils/imageResize.d.ts.map +1 -0
- package/dist/utils/imageResize.js +67 -0
- package/dist/utils/imageResize.js.map +1 -0
- package/dist/utils/polling.d.ts +40 -0
- package/dist/utils/polling.d.ts.map +1 -0
- package/dist/utils/polling.js +49 -0
- package/dist/utils/polling.js.map +1 -0
- package/package.json +61 -0
- package/setup-mcp.js +468 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/notebook/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for executing code in kernel sessions with streaming output.
|
|
5
|
+
*
|
|
6
|
+
* Truncation is handled by the backend (Python) for consistency with
|
|
7
|
+
* read_notebook and read_output tools. After execution, outputs are
|
|
8
|
+
* read back via readCellOutputOp which applies backend truncation.
|
|
9
|
+
*/
|
|
10
|
+
import type { Tool } from './types.js';
|
|
11
|
+
import type { CellOutput } from '../types.js';
|
|
12
|
+
interface TruncatedOutput extends CellOutput {
|
|
13
|
+
truncated?: boolean;
|
|
14
|
+
truncation_reason?: string | null;
|
|
15
|
+
total_lines?: number;
|
|
16
|
+
total_chars?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface ExecuteCellParams {
|
|
19
|
+
path: string;
|
|
20
|
+
cell_index?: number;
|
|
21
|
+
cell_id?: string;
|
|
22
|
+
session_id?: string;
|
|
23
|
+
max_wait?: number;
|
|
24
|
+
save_outputs?: boolean;
|
|
25
|
+
max_lines?: number;
|
|
26
|
+
max_chars?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface ExecuteCellResult {
|
|
29
|
+
cellId: string;
|
|
30
|
+
outputs: TruncatedOutput[];
|
|
31
|
+
elapsed: number;
|
|
32
|
+
saved: boolean;
|
|
33
|
+
status?: 'idle' | 'busy' | 'error';
|
|
34
|
+
}
|
|
35
|
+
export declare const executeCellTool: Tool<ExecuteCellParams, ExecuteCellResult>;
|
|
36
|
+
export declare const executionTools: Tool<ExecuteCellParams, ExecuteCellResult>[];
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/tools/execution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAA0B,MAAM,YAAY,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9C,UAAU,eAAgB,SAAQ,UAAU;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4BD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACpC;AAED,eAAO,MAAM,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAyFtE,CAAC;AAMF,eAAO,MAAM,cAAc,8CAE1B,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for executing code in kernel sessions with streaming output.
|
|
5
|
+
*
|
|
6
|
+
* Truncation is handled by the backend (Python) for consistency with
|
|
7
|
+
* read_notebook and read_output tools. After execution, outputs are
|
|
8
|
+
* read back via readCellOutputOp which applies backend truncation.
|
|
9
|
+
*/
|
|
10
|
+
import { resizeImageIfNeeded } from '../utils/imageResize.js';
|
|
11
|
+
async function formatOutputs(outputs) {
|
|
12
|
+
const results = [];
|
|
13
|
+
for (const o of outputs) {
|
|
14
|
+
if (o.type === 'image') {
|
|
15
|
+
// Resize images to fit Claude API limits (2000px max dimension)
|
|
16
|
+
const resizedData = await resizeImageIfNeeded(o.content);
|
|
17
|
+
results.push({ type: 'image', data: resizedData, mimeType: 'image/png' });
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
const prefix = o.type === 'error' ? '[ERROR] ' : '';
|
|
21
|
+
let text = prefix + o.content;
|
|
22
|
+
// Add truncation info if applicable
|
|
23
|
+
if (o.truncated) {
|
|
24
|
+
text += `\n--- [TRUNCATED: ${o.truncation_reason}] ${o.total_lines} total lines, ${o.total_chars} total chars ---`;
|
|
25
|
+
}
|
|
26
|
+
results.push({ type: 'text', text });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return results;
|
|
30
|
+
}
|
|
31
|
+
export const executeCellTool = {
|
|
32
|
+
definition: {
|
|
33
|
+
name: 'execute_cell',
|
|
34
|
+
description: `Execute a notebook cell and return its output. Outputs are truncated by default (100 lines, 10000 chars). Outputs are saved incrementally during execution. Requires an active kernel session.
|
|
35
|
+
|
|
36
|
+
For long-running cells: If execution exceeds max_wait, returns with status="busy" and partial output. Use read_output with max_wait to poll for more output. Set max_wait=0 for immediate "background" execution (returns right away, poll with read_output).`,
|
|
37
|
+
inputSchema: {
|
|
38
|
+
type: 'object',
|
|
39
|
+
properties: {
|
|
40
|
+
path: { type: 'string', description: 'Path to the notebook file' },
|
|
41
|
+
cell_index: { type: 'number', description: 'Cell index to execute (0-based). Use this OR cell_id.' },
|
|
42
|
+
cell_id: { type: 'string', description: 'Stable cell ID. Use this OR cell_index.' },
|
|
43
|
+
session_id: { type: 'string', description: 'Kernel session ID. If not provided, will try to get/create one.' },
|
|
44
|
+
max_wait: { type: 'number', description: 'Max seconds to wait for completion (default: 10). Use 0 for background execution.' },
|
|
45
|
+
save_outputs: { type: 'boolean', description: 'Save outputs back to the notebook (default: true)' },
|
|
46
|
+
max_lines: { type: 'number', description: 'Max lines per output (default: 100)' },
|
|
47
|
+
max_chars: { type: 'number', description: 'Max chars per output (default: 10000)' },
|
|
48
|
+
},
|
|
49
|
+
required: ['path'],
|
|
50
|
+
},
|
|
51
|
+
annotations: { destructiveHint: true },
|
|
52
|
+
},
|
|
53
|
+
async execute(params, client) {
|
|
54
|
+
if (params.cell_index === undefined && !params.cell_id) {
|
|
55
|
+
return { success: false, error: 'Must provide either cell_index or cell_id' };
|
|
56
|
+
}
|
|
57
|
+
const maxWait = params.max_wait ?? 10;
|
|
58
|
+
const saveOutputs = params.save_outputs ?? true;
|
|
59
|
+
// Execute via operation router (routes to UI if connected, else headless)
|
|
60
|
+
// This ensures UI shows running indicator when connected
|
|
61
|
+
const result = await client.executeCellOp(params.path, {
|
|
62
|
+
cellId: params.cell_id,
|
|
63
|
+
cellIndex: params.cell_index,
|
|
64
|
+
sessionId: params.session_id,
|
|
65
|
+
maxWait,
|
|
66
|
+
saveOutputs,
|
|
67
|
+
});
|
|
68
|
+
if (!result.success) {
|
|
69
|
+
return { success: false, error: result.error };
|
|
70
|
+
}
|
|
71
|
+
const { cellId, executionStatus, executionTime, outputs } = result.data;
|
|
72
|
+
const elapsed = (executionTime ?? 0) / 1000;
|
|
73
|
+
// Read outputs via backend with truncation applied
|
|
74
|
+
// This ensures truncation is consistent with read_notebook and read_output
|
|
75
|
+
const outputResult = await client.readCellOutputOp(params.path, {
|
|
76
|
+
cellId,
|
|
77
|
+
maxLines: params.max_lines,
|
|
78
|
+
maxChars: params.max_chars,
|
|
79
|
+
});
|
|
80
|
+
const truncatedOutputs = outputResult.success
|
|
81
|
+
? outputResult.data?.outputs ?? outputs
|
|
82
|
+
: outputs;
|
|
83
|
+
return {
|
|
84
|
+
success: true,
|
|
85
|
+
data: {
|
|
86
|
+
cellId,
|
|
87
|
+
outputs: truncatedOutputs,
|
|
88
|
+
elapsed,
|
|
89
|
+
saved: saveOutputs,
|
|
90
|
+
status: executionStatus,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
async formatForMCP(result) {
|
|
95
|
+
if (!result.success) {
|
|
96
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
97
|
+
}
|
|
98
|
+
const { cellId, outputs, elapsed, saved, status } = result.data;
|
|
99
|
+
const savedMsg = saved ? ' (outputs saved)' : '';
|
|
100
|
+
const statusMsg = status === 'busy' ? ' [still running - use read_output to poll]' : '';
|
|
101
|
+
if (outputs.length === 0) {
|
|
102
|
+
return [{ type: 'text', text: `Cell ${cellId} executed in ${elapsed.toFixed(1)}s${savedMsg}${statusMsg} (no output)` }];
|
|
103
|
+
}
|
|
104
|
+
return [
|
|
105
|
+
{ type: 'text', text: `Cell ${cellId} executed in ${elapsed.toFixed(1)}s${savedMsg}${statusMsg}:\n` },
|
|
106
|
+
...(await formatOutputs(outputs)),
|
|
107
|
+
];
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
// =============================================================================
|
|
111
|
+
// Export all execution tools
|
|
112
|
+
// =============================================================================
|
|
113
|
+
export const executionTools = [
|
|
114
|
+
executeCellTool,
|
|
115
|
+
];
|
|
116
|
+
//# sourceMappingURL=execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/tools/execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for file system operations on the Nebula server.
|
|
5
|
+
* These operate on the server's filesystem, not the local MCP client filesystem.
|
|
6
|
+
*/
|
|
7
|
+
import type { Tool } from './types.js';
|
|
8
|
+
export interface ReadFileParams {
|
|
9
|
+
path: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ReadFileResult {
|
|
12
|
+
path: string;
|
|
13
|
+
content: string;
|
|
14
|
+
type: 'text' | 'notebook';
|
|
15
|
+
}
|
|
16
|
+
export declare const readFileTool: Tool<ReadFileParams, ReadFileResult>;
|
|
17
|
+
export interface WriteFileParams {
|
|
18
|
+
path: string;
|
|
19
|
+
content: string;
|
|
20
|
+
}
|
|
21
|
+
export interface WriteFileResult {
|
|
22
|
+
path: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const writeFileTool: Tool<WriteFileParams, WriteFileResult>;
|
|
25
|
+
export interface ListDirectoryParams {
|
|
26
|
+
path?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ListDirectoryResult {
|
|
29
|
+
path: string;
|
|
30
|
+
entries: Array<{
|
|
31
|
+
name: string;
|
|
32
|
+
type: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export declare const listDirectoryTool: Tool<ListDirectoryParams, ListDirectoryResult>;
|
|
36
|
+
export interface DeleteFileParams {
|
|
37
|
+
path: string;
|
|
38
|
+
}
|
|
39
|
+
export declare const deleteFileTool: Tool<DeleteFileParams, void>;
|
|
40
|
+
export interface RenameFileParams {
|
|
41
|
+
old_path: string;
|
|
42
|
+
new_path: string;
|
|
43
|
+
}
|
|
44
|
+
export interface RenameFileResult {
|
|
45
|
+
oldPath: string;
|
|
46
|
+
newPath: string;
|
|
47
|
+
}
|
|
48
|
+
export declare const renameFileTool: Tool<RenameFileParams, RenameFileResult>;
|
|
49
|
+
export interface DownloadFileParams {
|
|
50
|
+
server_path: string;
|
|
51
|
+
local_path: string;
|
|
52
|
+
}
|
|
53
|
+
export interface DownloadFileResult {
|
|
54
|
+
serverPath: string;
|
|
55
|
+
localPath: string;
|
|
56
|
+
size: number;
|
|
57
|
+
}
|
|
58
|
+
export declare const downloadFileTool: Tool<DownloadFileParams, DownloadFileResult>;
|
|
59
|
+
export interface UploadFileParams {
|
|
60
|
+
local_path: string;
|
|
61
|
+
server_path: string;
|
|
62
|
+
}
|
|
63
|
+
export interface UploadFileResult {
|
|
64
|
+
localPath: string;
|
|
65
|
+
serverPath: string;
|
|
66
|
+
size: number;
|
|
67
|
+
}
|
|
68
|
+
export declare const uploadFileTool: Tool<UploadFileParams, UploadFileResult>;
|
|
69
|
+
export declare const fileTools: (Tool<ReadFileParams, ReadFileResult> | Tool<WriteFileParams, WriteFileResult> | Tool<ListDirectoryParams, ListDirectoryResult> | Tool<DeleteFileParams, void> | Tool<RenameFileParams, RenameFileResult> | Tool<DownloadFileParams, DownloadFileResult>)[];
|
|
70
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAA0B,MAAM,YAAY,CAAC;AAM/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAsC7D,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CA6BhE,CAAC;AAMF,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,eAAO,MAAM,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CA2C5E,CAAC;AAMF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAyBvD,CAAC;AAMF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAoCnE,CAAC;AAMF,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAyDzE,CAAC;AAMF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAoDnE,CAAC;AAMF,eAAO,MAAM,SAAS,6PAQrB,CAAC"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Tools
|
|
3
|
+
*
|
|
4
|
+
* Tools for file system operations on the Nebula server.
|
|
5
|
+
* These operate on the server's filesystem, not the local MCP client filesystem.
|
|
6
|
+
*/
|
|
7
|
+
export const readFileTool = {
|
|
8
|
+
definition: {
|
|
9
|
+
name: 'read_file',
|
|
10
|
+
description: 'Read the contents of a text file from the server. Returns file content as string. For notebooks (.ipynb), returns JSON string.',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
properties: {
|
|
14
|
+
path: { type: 'string', description: 'Path to the file on the server' },
|
|
15
|
+
},
|
|
16
|
+
required: ['path'],
|
|
17
|
+
},
|
|
18
|
+
annotations: { readOnlyHint: true },
|
|
19
|
+
},
|
|
20
|
+
async execute(params, client) {
|
|
21
|
+
const result = await client.readFile(params.path);
|
|
22
|
+
if (!result.success) {
|
|
23
|
+
return { success: false, error: result.error };
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
success: true,
|
|
27
|
+
data: {
|
|
28
|
+
path: params.path,
|
|
29
|
+
content: result.data.content,
|
|
30
|
+
type: 'text',
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
formatForMCP(result) {
|
|
35
|
+
if (!result.success) {
|
|
36
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
37
|
+
}
|
|
38
|
+
const { path, content } = result.data;
|
|
39
|
+
const lines = content.split('\n').length;
|
|
40
|
+
const chars = content.length;
|
|
41
|
+
return [{ type: 'text', text: `File: ${path} (${lines} lines, ${chars} chars)\n\n${content}` }];
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
export const writeFileTool = {
|
|
45
|
+
definition: {
|
|
46
|
+
name: 'write_file',
|
|
47
|
+
description: 'Write content to a file on the server. Creates the file and parent directories if they do not exist. Overwrites existing file.',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: 'object',
|
|
50
|
+
properties: {
|
|
51
|
+
path: { type: 'string', description: 'Path to the file on the server' },
|
|
52
|
+
content: { type: 'string', description: 'Content to write to the file' },
|
|
53
|
+
},
|
|
54
|
+
required: ['path', 'content'],
|
|
55
|
+
},
|
|
56
|
+
annotations: { destructiveHint: true },
|
|
57
|
+
},
|
|
58
|
+
async execute(params, client) {
|
|
59
|
+
const result = await client.writeFile(params.path, params.content);
|
|
60
|
+
if (!result.success) {
|
|
61
|
+
return { success: false, error: result.error };
|
|
62
|
+
}
|
|
63
|
+
return { success: true, data: { path: params.path } };
|
|
64
|
+
},
|
|
65
|
+
formatForMCP(result) {
|
|
66
|
+
if (!result.success) {
|
|
67
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
68
|
+
}
|
|
69
|
+
return [{ type: 'text', text: `File written: ${result.data.path}` }];
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
export const listDirectoryTool = {
|
|
73
|
+
definition: {
|
|
74
|
+
name: 'list_directory',
|
|
75
|
+
description: 'List contents of a directory on the server. Returns file and directory names with types.',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: 'object',
|
|
78
|
+
properties: {
|
|
79
|
+
path: { type: 'string', description: 'Path to the directory (defaults to home directory)' },
|
|
80
|
+
},
|
|
81
|
+
required: [],
|
|
82
|
+
},
|
|
83
|
+
annotations: { readOnlyHint: true },
|
|
84
|
+
},
|
|
85
|
+
async execute(params, client) {
|
|
86
|
+
const dirPath = params.path || '~';
|
|
87
|
+
const result = await client.listFiles(dirPath);
|
|
88
|
+
if (!result.success) {
|
|
89
|
+
return { success: false, error: result.error };
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
success: true,
|
|
93
|
+
data: {
|
|
94
|
+
path: dirPath,
|
|
95
|
+
entries: result.data || [],
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
formatForMCP(result) {
|
|
100
|
+
if (!result.success) {
|
|
101
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
102
|
+
}
|
|
103
|
+
const { path, entries } = result.data;
|
|
104
|
+
if (entries.length === 0) {
|
|
105
|
+
return [{ type: 'text', text: `Directory: ${path}\n(empty)` }];
|
|
106
|
+
}
|
|
107
|
+
const lines = entries.map(e => {
|
|
108
|
+
const icon = e.type === 'directory' ? '📁' : '📄';
|
|
109
|
+
return ` ${icon} ${e.name}`;
|
|
110
|
+
});
|
|
111
|
+
return [{ type: 'text', text: `Directory: ${path} (${entries.length} items)\n${lines.join('\n')}` }];
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
export const deleteFileTool = {
|
|
115
|
+
definition: {
|
|
116
|
+
name: 'delete_file',
|
|
117
|
+
description: 'Delete a file or directory from the server. Directories are deleted recursively.',
|
|
118
|
+
inputSchema: {
|
|
119
|
+
type: 'object',
|
|
120
|
+
properties: {
|
|
121
|
+
path: { type: 'string', description: 'Path to the file or directory to delete' },
|
|
122
|
+
},
|
|
123
|
+
required: ['path'],
|
|
124
|
+
},
|
|
125
|
+
annotations: { destructiveHint: true },
|
|
126
|
+
},
|
|
127
|
+
async execute(params, client) {
|
|
128
|
+
const result = await client.deleteFile(params.path);
|
|
129
|
+
return result.success ? { success: true } : { success: false, error: result.error };
|
|
130
|
+
},
|
|
131
|
+
formatForMCP(result) {
|
|
132
|
+
if (!result.success) {
|
|
133
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
134
|
+
}
|
|
135
|
+
return [{ type: 'text', text: 'File deleted' }];
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
export const renameFileTool = {
|
|
139
|
+
definition: {
|
|
140
|
+
name: 'rename_file',
|
|
141
|
+
description: 'Rename or move a file or directory on the server.',
|
|
142
|
+
inputSchema: {
|
|
143
|
+
type: 'object',
|
|
144
|
+
properties: {
|
|
145
|
+
old_path: { type: 'string', description: 'Current path of the file or directory' },
|
|
146
|
+
new_path: { type: 'string', description: 'New path for the file or directory' },
|
|
147
|
+
},
|
|
148
|
+
required: ['old_path', 'new_path'],
|
|
149
|
+
},
|
|
150
|
+
annotations: { destructiveHint: true },
|
|
151
|
+
},
|
|
152
|
+
async execute(params, client) {
|
|
153
|
+
const result = await client.renameFile(params.old_path, params.new_path);
|
|
154
|
+
if (!result.success) {
|
|
155
|
+
return { success: false, error: result.error };
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
success: true,
|
|
159
|
+
data: {
|
|
160
|
+
oldPath: params.old_path,
|
|
161
|
+
newPath: params.new_path,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
formatForMCP(result) {
|
|
166
|
+
if (!result.success) {
|
|
167
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
168
|
+
}
|
|
169
|
+
const { oldPath, newPath } = result.data;
|
|
170
|
+
return [{ type: 'text', text: `Renamed: ${oldPath} → ${newPath}` }];
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
export const downloadFileTool = {
|
|
174
|
+
definition: {
|
|
175
|
+
name: 'download_file',
|
|
176
|
+
description: 'Download a file from the server to a local path. Supports both text and binary files.',
|
|
177
|
+
inputSchema: {
|
|
178
|
+
type: 'object',
|
|
179
|
+
properties: {
|
|
180
|
+
server_path: { type: 'string', description: 'Path to the file on the server' },
|
|
181
|
+
local_path: { type: 'string', description: 'Local path to save the file' },
|
|
182
|
+
},
|
|
183
|
+
required: ['server_path', 'local_path'],
|
|
184
|
+
},
|
|
185
|
+
annotations: { readOnlyHint: true },
|
|
186
|
+
},
|
|
187
|
+
async execute(params, client) {
|
|
188
|
+
// Fetch from server (returns Buffer)
|
|
189
|
+
const result = await client.downloadFile(params.server_path);
|
|
190
|
+
if (!result.success) {
|
|
191
|
+
return { success: false, error: result.error };
|
|
192
|
+
}
|
|
193
|
+
// Write to local filesystem (MCP server runs locally)
|
|
194
|
+
try {
|
|
195
|
+
const fs = await import('node:fs/promises');
|
|
196
|
+
const path = await import('node:path');
|
|
197
|
+
// Create parent directories if needed
|
|
198
|
+
const parentDir = path.dirname(params.local_path);
|
|
199
|
+
await fs.mkdir(parentDir, { recursive: true });
|
|
200
|
+
// Write content as binary Buffer
|
|
201
|
+
await fs.writeFile(params.local_path, result.data.content);
|
|
202
|
+
const stats = await fs.stat(params.local_path);
|
|
203
|
+
return {
|
|
204
|
+
success: true,
|
|
205
|
+
data: {
|
|
206
|
+
serverPath: params.server_path,
|
|
207
|
+
localPath: params.local_path,
|
|
208
|
+
size: stats.size,
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
catch (e) {
|
|
213
|
+
const error = e instanceof Error ? e.message : String(e);
|
|
214
|
+
return { success: false, error: `Failed to write local file: ${error}` };
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
formatForMCP(result) {
|
|
218
|
+
if (!result.success) {
|
|
219
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
220
|
+
}
|
|
221
|
+
const { serverPath, localPath, size } = result.data;
|
|
222
|
+
return [{ type: 'text', text: `Downloaded: ${serverPath} → ${localPath} (${size} bytes)` }];
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
export const uploadFileTool = {
|
|
226
|
+
definition: {
|
|
227
|
+
name: 'upload_file',
|
|
228
|
+
description: 'Upload a local file to the server. Supports both text and binary files.',
|
|
229
|
+
inputSchema: {
|
|
230
|
+
type: 'object',
|
|
231
|
+
properties: {
|
|
232
|
+
local_path: { type: 'string', description: 'Local path of the file to upload' },
|
|
233
|
+
server_path: { type: 'string', description: 'Destination path on the server' },
|
|
234
|
+
},
|
|
235
|
+
required: ['local_path', 'server_path'],
|
|
236
|
+
},
|
|
237
|
+
annotations: { destructiveHint: true },
|
|
238
|
+
},
|
|
239
|
+
async execute(params, client) {
|
|
240
|
+
// Read from local filesystem and upload via multipart
|
|
241
|
+
try {
|
|
242
|
+
const fs = await import('node:fs/promises');
|
|
243
|
+
const pathModule = await import('node:path');
|
|
244
|
+
const content = await fs.readFile(params.local_path);
|
|
245
|
+
const stats = await fs.stat(params.local_path);
|
|
246
|
+
const filename = pathModule.basename(params.local_path);
|
|
247
|
+
// Upload to server using multipart form
|
|
248
|
+
const result = await client.uploadFile(params.server_path, content, filename);
|
|
249
|
+
if (!result.success) {
|
|
250
|
+
return { success: false, error: result.error };
|
|
251
|
+
}
|
|
252
|
+
return {
|
|
253
|
+
success: true,
|
|
254
|
+
data: {
|
|
255
|
+
localPath: params.local_path,
|
|
256
|
+
serverPath: params.server_path,
|
|
257
|
+
size: stats.size,
|
|
258
|
+
},
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
catch (e) {
|
|
262
|
+
const error = e instanceof Error ? e.message : String(e);
|
|
263
|
+
return { success: false, error: `Failed to upload file: ${error}` };
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
formatForMCP(result) {
|
|
267
|
+
if (!result.success) {
|
|
268
|
+
return [{ type: 'text', text: `Error: ${result.error}` }];
|
|
269
|
+
}
|
|
270
|
+
const { localPath, serverPath, size } = result.data;
|
|
271
|
+
return [{ type: 'text', text: `Uploaded: ${localPath} → ${serverPath} (${size} bytes)` }];
|
|
272
|
+
},
|
|
273
|
+
};
|
|
274
|
+
// =============================================================================
|
|
275
|
+
// Export all file tools
|
|
276
|
+
// =============================================================================
|
|
277
|
+
export const fileTools = [
|
|
278
|
+
readFileTool,
|
|
279
|
+
writeFileTool,
|
|
280
|
+
listDirectoryTool,
|
|
281
|
+
deleteFileTool,
|
|
282
|
+
renameFileTool,
|
|
283
|
+
downloadFileTool,
|
|
284
|
+
uploadFileTool,
|
|
285
|
+
];
|
|
286
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,MAAM,CAAC,MAAM,YAAY,GAAyC;IAChE,UAAU,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gIAAgI;QAC7I,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;aACxE;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,IAAK,CAAC,OAAO;gBAC7B,IAAI,EAAE,MAAM;aACb;SACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAK,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,IAAI,KAAK,KAAK,WAAW,KAAK,cAAc,OAAO,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;CACF,CAAC;AAeF,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,gIAAgI;QAC7I,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACvE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;aACzE;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC9B;QACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACvC;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,MAAM,CAAC,IAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;CACF,CAAC;AAeF,MAAM,CAAC,MAAM,iBAAiB,GAAmD;IAC/E,UAAU,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,0FAA0F;QACvG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oDAAoD,EAAE;aAC5F;YACD,QAAQ,EAAE,EAAE;SACb;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;aAC3B;SACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAK,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,IAAI,WAAW,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,IAAI,KAAK,OAAO,CAAC,MAAM,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACvG,CAAC;CACF,CAAC;AAUF,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,kFAAkF;QAC/F,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;aACjF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACvC;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACtF,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAC;AAgBF,MAAM,CAAC,MAAM,cAAc,GAA6C;IACtE,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAClF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;aAChF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;SACnC;QACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACvC;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,OAAO,EAAE,MAAM,CAAC,QAAQ;aACzB;SACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAK,CAAC;QAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,OAAO,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;CACF,CAAC;AAiBF,MAAM,CAAC,MAAM,gBAAgB,GAAiD;IAC5E,UAAU,EAAE;QACV,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,uFAAuF;QACpG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBAC9E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;aAC3E;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;SACxC;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,qCAAqC;QACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAEvC,sCAAsC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/C,iCAAiC;YACjC,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAK,CAAC,OAAO,CAAC,CAAC;YAE5D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAE/C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,UAAU,EAAE,MAAM,CAAC,WAAW;oBAC9B,SAAS,EAAE,MAAM,CAAC,UAAU;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,KAAK,EAAE,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAK,CAAC;QACrD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,UAAU,MAAM,SAAS,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF,CAAC;AAiBF,MAAM,CAAC,MAAM,cAAc,GAA6C;IACtE,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBAC/E,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;aAC/E;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;SACxC;QACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACvC;IAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;QAC1B,sDAAsD;QACtD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAE7C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAExD,wCAAwC;YACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACjD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAM,CAAC,UAAU;oBAC5B,UAAU,EAAE,MAAM,CAAC,WAAW;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAM;QACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAK,CAAC;QACrD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,SAAS,MAAM,UAAU,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC;CACF,CAAC;AAEF,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,cAAc;CACf,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools Index
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for all tool definitions.
|
|
5
|
+
* MCP server and other clients use these tools directly.
|
|
6
|
+
*/
|
|
7
|
+
import type { NebulaClient } from '../notebook/client.js';
|
|
8
|
+
import type { Tool, ToolDefinition, ToolResult, MCPContent } from './types.js';
|
|
9
|
+
export type { Tool, ToolDefinition, ToolResult, MCPContent } from './types.js';
|
|
10
|
+
export { notebookTools } from './notebook.js';
|
|
11
|
+
export { kernelTools } from './kernel.js';
|
|
12
|
+
export { executionTools } from './execution.js';
|
|
13
|
+
export { fileTools } from './files.js';
|
|
14
|
+
export * from './notebook.js';
|
|
15
|
+
export * from './kernel.js';
|
|
16
|
+
export * from './execution.js';
|
|
17
|
+
export * from './files.js';
|
|
18
|
+
/**
|
|
19
|
+
* All tools combined in a single array
|
|
20
|
+
*/
|
|
21
|
+
export declare const allTools: Tool<any, any>[];
|
|
22
|
+
/**
|
|
23
|
+
* Map of tool name to tool object for quick lookup
|
|
24
|
+
*/
|
|
25
|
+
export declare const toolsByName: Map<string, Tool<any, any>>;
|
|
26
|
+
/**
|
|
27
|
+
* Get all tool definitions (MCP-compatible format)
|
|
28
|
+
*/
|
|
29
|
+
export declare function getToolDefinitions(): ToolDefinition[];
|
|
30
|
+
/**
|
|
31
|
+
* Execute a tool by name with given parameters
|
|
32
|
+
*
|
|
33
|
+
* @param name - Tool name
|
|
34
|
+
* @param params - Tool parameters
|
|
35
|
+
* @param client - NebulaClient instance
|
|
36
|
+
* @returns Tool result
|
|
37
|
+
*/
|
|
38
|
+
export declare function executeToolByName(name: string, params: Record<string, unknown>, client: NebulaClient): Promise<ToolResult<unknown>>;
|
|
39
|
+
/**
|
|
40
|
+
* Execute a tool and format result for MCP display
|
|
41
|
+
*
|
|
42
|
+
* Automatically includes user changes since the last tool call for notebook operations.
|
|
43
|
+
*
|
|
44
|
+
* @param name - Tool name
|
|
45
|
+
* @param params - Tool parameters
|
|
46
|
+
* @param client - NebulaClient instance
|
|
47
|
+
* @returns MCP-formatted content
|
|
48
|
+
*/
|
|
49
|
+
export declare function executeToolForMCP(name: string, params: Record<string, unknown>, client: NebulaClient): Promise<{
|
|
50
|
+
content: MCPContent;
|
|
51
|
+
isError?: boolean;
|
|
52
|
+
}>;
|
|
53
|
+
/**
|
|
54
|
+
* Get tool by name
|
|
55
|
+
*/
|
|
56
|
+
export declare function getTool(name: string): Tool<any, any> | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Check if a tool exists
|
|
59
|
+
*/
|
|
60
|
+
export declare function hasTool(name: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Tool categories for organized access
|
|
63
|
+
*/
|
|
64
|
+
export declare const toolCategories: {
|
|
65
|
+
readonly notebook: (Tool<import("./notebook.js").ReadNotebookParams, import("./notebook.js").ReadNotebookResult> | Tool<import("./notebook.js").ReadCellParams, import("./notebook.js").ReadCellResult> | Tool<import("./notebook.js").ReadOutputParams, import("./notebook.js").ReadOutputResult> | Tool<import("./notebook.js").InsertCellParams, import("./notebook.js").InsertCellResult> | Tool<import("./notebook.js").UpdateCellParams, import("./notebook.js").UpdateCellResult> | Tool<import("./notebook.js").DeleteCellParams, void> | Tool<import("./notebook.js").CreateNotebookParams, import("./notebook.js").CreateNotebookResult> | Tool<import("./notebook.js").MoveCellParams, import("./notebook.js").MoveCellResult> | Tool<import("./notebook.js").DuplicateCellParams, import("./notebook.js").DuplicateCellResult> | Tool<import("./notebook.js").SearchCellsParams, import("./notebook.js").SearchCellsResult> | Tool<import("./notebook.js").UpdateMetadataParams, import("./notebook.js").UpdateMetadataResult> | Tool<import("./notebook.js").ConnectServerParams, import("./notebook.js").ConnectServerResult> | Tool<import("./notebook.js").StartAgentSessionParams, import("./notebook.js").StartAgentSessionResult> | Tool<import("./notebook.js").EndAgentSessionParams, import("./notebook.js").EndAgentSessionResult> | Tool<import("./notebook.js").DeleteCellsParams, import("./notebook.js").DeleteCellsResult> | Tool<import("./notebook.js").InsertCellsParams, import("./notebook.js").InsertCellsResult> | Tool<import("./notebook.js").ClearNotebookParams, import("./notebook.js").ClearNotebookResult> | Tool<import("./notebook.js").ClearOutputsParams, import("./notebook.js").ClearOutputsResult>)[];
|
|
66
|
+
readonly kernel: (Tool<import("./kernel.js").ListKernelsParams, import("./kernel.js").ListKernelsResult> | Tool<import("./kernel.js").KernelStartParams, import("./kernel.js").KernelStartResult> | Tool<import("./kernel.js").KernelStopParams, void>)[];
|
|
67
|
+
readonly execution: Tool<import("./execution.js").ExecuteCellParams, import("./execution.js").ExecuteCellResult>[];
|
|
68
|
+
readonly files: (Tool<import("./files.js").ReadFileParams, import("./files.js").ReadFileResult> | Tool<import("./files.js").WriteFileParams, import("./files.js").WriteFileResult> | Tool<import("./files.js").ListDirectoryParams, import("./files.js").ListDirectoryResult> | Tool<import("./files.js").DeleteFileParams, void> | Tool<import("./files.js").RenameFileParams, import("./files.js").RenameFileResult> | Tool<import("./files.js").DownloadFileParams, import("./files.js").DownloadFileResult>)[];
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Get tool names by category
|
|
72
|
+
*/
|
|
73
|
+
export declare function getToolNamesByCategory(): Record<string, string[]>;
|
|
74
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG/E,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS/E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAKpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAEnD,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAY9B;AAYD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAkHrD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAOjE"}
|