Skip to content

Commit a9b4ced

Browse files
mcp added
1 parent cc6d322 commit a9b4ced

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import tokenizer from './modules/tokenizer'
2323
import WebSocket from 'ws';
2424
import { EventEmitter } from 'events';
2525
import {chatSummary} from './modules/history'
26+
import codeboltMCP from './modules/mcp';
2627

2728

2829
/**
@@ -90,7 +91,8 @@ class Codebolt { // Extend EventEmitter
9091
vectordb = vectorDB;
9192
debug = debug;
9293
tokenizer = tokenizer;
93-
chatSummary=chatSummary
94+
chatSummary=chatSummary;
95+
codeboltMCP = codeboltMCP;
9496
}
9597

9698
export default new Codebolt();

src/modules/mcp.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import cbws from './websocket';
2+
const codeboltMCP = {
3+
getMcpList: (): Promise<any> => {
4+
return new Promise((resolve, reject) => {
5+
cbws.getWebsocket.send(JSON.stringify({
6+
"type": "mcpEvent",
7+
"action": "getMcpList"
8+
}));
9+
cbws.getWebsocket.on('message', (data: string) => {
10+
try {
11+
const response = JSON.parse(data);
12+
if (response.type === "getMcpListResponse") {
13+
resolve(response.data);
14+
} else {
15+
reject(new Error("Unexpected response type"));
16+
}
17+
} catch (error) {
18+
reject(new Error("Failed to parse response"));
19+
}
20+
});
21+
cbws.getWebsocket.on('error', (error: Error) => {
22+
reject(error);
23+
});
24+
});
25+
},
26+
executeTool: (mcpServer: string, toolName: string, params: any): Promise<any> => {
27+
return new Promise((resolve, reject) => {
28+
cbws.getWebsocket.send(JSON.stringify({
29+
"type": "mcpEvent",
30+
"action": "executeTool",
31+
"mcpServer": mcpServer,
32+
"toolName": toolName,
33+
"params": params
34+
}));
35+
cbws.getWebsocket.on('message', (data: string) => {
36+
try {
37+
const response = JSON.parse(data);
38+
if (response.type === "executeToolResponse" && response.toolName === toolName) {
39+
resolve(response.data);
40+
} else {
41+
reject(new Error("Unexpected response type"));
42+
}
43+
} catch (error) {
44+
reject(new Error("Failed to parse response"));
45+
}
46+
});
47+
cbws.getWebsocket.on('error', (error: Error) => {
48+
reject(error);
49+
});
50+
});
51+
}
52+
}
53+
54+
export default codeboltMCP;

0 commit comments

Comments
 (0)