setupExia
Initialize the scenario generator to create 'Kotonoha Sisters Explainer' style scenarios for the exia novel game engine.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/server.ts:59-84 (handler)The handler function for the 'setupExia' tool. It calls exiaManager.setup() and returns a success or error message.server.tool("setupExia", {}, async () => { try { // exiaのセットアップ await exiaManager.setup(); return { content: [ { type: "text", text: "exiaのセットアップが完了しました。", }, ], }; } catch (error) { console.error("Error setting up exia:", error); return { content: [ { type: "text", text: `exiaのセットアップに失敗しました: ${error}`, }, ], isError: true, }; } });
- src/server.ts:59-84 (registration)Registration of the 'setupExia' tool on the MCP server with empty input schema and inline handler.server.tool("setupExia", {}, async () => { try { // exiaのセットアップ await exiaManager.setup(); return { content: [ { type: "text", text: "exiaのセットアップが完了しました。", }, ], }; } catch (error) { console.error("Error setting up exia:", error); return { content: [ { type: "text", text: `exiaのセットアップに失敗しました: ${error}`, }, ], isError: true, }; } });
- src/exia.ts:41-63 (helper)The core setup logic in ExiaManager: checks if already setup, clones the exia repo from GitHub, and runs npm install.async setup(): Promise<void> { if (await this.checkSetup()) { console.error("exia is already set up."); this.isSetup = true; return; } console.error("Setting up exia..."); try { // GitHubからexiaをクローン await execAsync(`git clone https://github.com/kokushin/exia.git ${this.exiaPath}`); // 必要なパッケージをインストール await execAsync("npm install", { cwd: this.exiaPath }); this.isSetup = true; console.error("exia setup completed."); } catch (error) { console.error("Error setting up exia:", error); throw new Error("Failed to set up exia"); } }
- src/exia.ts:29-36 (helper)Helper method to check if exia is already set up by verifying directory and package.json existence.async checkSetup(): Promise<boolean> { try { return fs.existsSync(this.exiaPath) && fs.existsSync(path.join(this.exiaPath, "package.json")); } catch (error) { console.error("Error checking exia setup:", error); return false; } }