-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathtools.ts
More file actions
59 lines (57 loc) · 1.48 KB
/
tools.ts
File metadata and controls
59 lines (57 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import { McpContext } from "./context.js";
import { deployTool, listDeploysTool } from "./tools/deploys.js";
import { searchDocsTool } from "./tools/docs.js";
import {
createProjectInOrgTool,
initializeProjectTool,
listOrgsTool,
listProjectsTool,
} from "./tools/orgs.js";
import { listPreviewBranchesTool } from "./tools/previewBranches.js";
import {
cancelRunTool,
getRunDetailsTool,
listRunsTool,
waitForRunToCompleteTool,
} from "./tools/runs.js";
import { getCurrentWorker, triggerTaskTool } from "./tools/tasks.js";
import { respondWithError } from "./utils.js";
export function registerTools(context: McpContext) {
const tools = [
searchDocsTool,
listOrgsTool,
listProjectsTool,
createProjectInOrgTool,
initializeProjectTool,
getCurrentWorker,
triggerTaskTool,
listRunsTool,
getRunDetailsTool,
waitForRunToCompleteTool,
cancelRunTool,
deployTool,
listDeploysTool,
listPreviewBranchesTool,
];
for (const tool of tools) {
context.server.registerTool(
tool.name,
{
annotations: {
title: tool.title,
readOnlyHint: tool.readOnlyHint,
destructiveHint: tool.destructiveHint,
},
description: tool.description,
inputSchema: tool.inputSchema,
},
async (input, extra) => {
try {
return tool.handler(input, { ...extra, ctx: context });
} catch (error) {
return respondWithError(error);
}
}
);
}
}