openmcp-client/service/src/mcp/connect.controller.ts
2025-06-03 21:51:26 +08:00

59 lines
1.8 KiB
TypeScript

import { Controller } from '../common/index.js';
import { PostMessageble } from '../hook/adapter.js';
import { RequestData } from '../common/index.dto.js';
import { connectService, getClient } from './connect.service.js';
export class ConnectController {
@Controller('connect')
async connect(data: any, webview: PostMessageble) {
const res = await connectService(data, webview);
return res;
}
@Controller('lookup-env-var')
async lookupEnvVar(data: RequestData, webview: PostMessageble) {
const { keys } = data;
const values = keys.map((key: string) => {
if (process.platform === 'win32') {
switch (key) {
case 'USER':
return process.env.USERNAME || '';
case 'HOME':
return process.env.USERPROFILE || process.env.HOME;
case 'LOGNAME':
return process.env.USERNAME || '';
case 'SHELL':
return process.env.SHELL || process.env.COMSPEC;
case 'TERM':
return process.env.TERM || '未设置 (Windows 默认终端)';
}
}
return process.env[key] || '';
});
return {
code: 200,
msg: values
}
}
@Controller('ping')
async ping(data: RequestData, webview: PostMessageble) {
const client = getClient(data.clientId);
if (!client) {
const connectResult = {
code: 501,
msg:'mcp client 尚未连接'
};
return connectResult;
}
return {
code: 200,
msg: {}
}
}
}