初次提交
This commit is contained in:
119
source/main.ts
Executable file
119
source/main.ts
Executable file
@@ -0,0 +1,119 @@
|
||||
import { MCPServer } from './mcp-server';
|
||||
import { readSettings, saveSettings } from './settings';
|
||||
import { MCPServerSettings } from './types';
|
||||
|
||||
let mcpServer: MCPServer | null = null;
|
||||
|
||||
/**
|
||||
* @en Registration method for the main process of Extension
|
||||
* @zh 为扩展的主进程的注册方法
|
||||
*/
|
||||
export const methods: { [key: string]: (...any: any) => any } = {
|
||||
/**
|
||||
* @en Open the MCP server panel
|
||||
* @zh 打开 MCP 服务器面板
|
||||
*/
|
||||
openPanel() {
|
||||
Editor.Panel.open('cocos-mcp-server');
|
||||
},
|
||||
|
||||
/**
|
||||
* @en Start the MCP server
|
||||
* @zh 启动 MCP 服务器
|
||||
*/
|
||||
async startServer() {
|
||||
if (mcpServer) {
|
||||
await mcpServer.start();
|
||||
} else {
|
||||
console.warn('[MCP插件] mcpServer 未初始化');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @en Stop the MCP server
|
||||
* @zh 停止 MCP 服务器
|
||||
*/
|
||||
async stopServer() {
|
||||
if (mcpServer) {
|
||||
mcpServer.stop();
|
||||
} else {
|
||||
console.warn('[MCP插件] mcpServer 未初始化');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @en Get server status
|
||||
* @zh 获取服务器状态
|
||||
*/
|
||||
getServerStatus() {
|
||||
return mcpServer ? mcpServer.getStatus() : { running: false, port: 0, clients: 0 };
|
||||
},
|
||||
|
||||
/**
|
||||
* @en Update server settings
|
||||
* @zh 更新服务器设置
|
||||
*/
|
||||
updateSettings(settings: MCPServerSettings) {
|
||||
saveSettings(settings);
|
||||
if (mcpServer) {
|
||||
mcpServer.stop();
|
||||
mcpServer = new MCPServer(settings);
|
||||
mcpServer.start();
|
||||
} else {
|
||||
mcpServer = new MCPServer(settings);
|
||||
mcpServer.start();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @en Get tools list
|
||||
* @zh 获取工具列表
|
||||
*/
|
||||
getToolsList() {
|
||||
return mcpServer ? mcpServer.getAvailableTools() : [];
|
||||
},
|
||||
/**
|
||||
* @en Get server settings
|
||||
* @zh 获取服务器设置
|
||||
*/
|
||||
getServerSettings() {
|
||||
return mcpServer ? mcpServer.getSettings() : readSettings();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @en Method Triggered on Extension Startup
|
||||
* @zh 扩展启动时触发的方法
|
||||
*/
|
||||
export function load() {
|
||||
console.log('[MCP Plugin] Loading MCP server plugin...');
|
||||
try {
|
||||
const settings = readSettings();
|
||||
console.log('[MCP Plugin] Settings loaded:', settings);
|
||||
mcpServer = new MCPServer(settings);
|
||||
|
||||
// 如果设置了自动启动,则启动服务器
|
||||
if (settings.autoStart) {
|
||||
console.log('[MCP Plugin] Auto-starting MCP server...');
|
||||
mcpServer.start().catch(error => {
|
||||
console.error('[MCP Plugin] Failed to auto-start server:', error);
|
||||
});
|
||||
} else {
|
||||
console.log('[MCP Plugin] MCP server created but not started (autoStart=false)');
|
||||
console.log('[MCP Plugin] Use the MCP panel or call startServer() to start the server');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('[MCP Plugin] Failed to load MCP server:', error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @en Method triggered when uninstalling the extension
|
||||
* @zh 卸载扩展时触发的方法
|
||||
*/
|
||||
export function unload() {
|
||||
if (mcpServer) {
|
||||
mcpServer.stop();
|
||||
mcpServer = null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user