UNPKG

@bashcat/ai-image-chat-mcp

Version:

MCP server for AI image generation, video generation and chat completion with support for multiple AI providers including Tongyi Wanxiang

120 lines (119 loc) 3.9 kB
#!/usr/bin/env node /** * 老張 MCP 工具使用範例 * * 這個文件展示如何與老張 MCP 工具進行交互 */ import { spawn } from 'child_process'; // 模擬 MCP 客戶端 class MCPClient { serverProcess; async start() { console.log('🚀 啟動老張 MCP 服務器...'); // 啟動 MCP 服務器 this.serverProcess = spawn('node', ['dist/index.js'], { stdio: ['pipe', 'pipe', 'inherit'], cwd: process.cwd() }); // 等待服務器初始化 await new Promise(resolve => setTimeout(resolve, 1000)); console.log('✅ 服務器已啟動\n'); // 發送初始化請求 await this.sendRequest({ jsonrpc: "2.0", id: 1, method: "initialize", params: { protocolVersion: "2024-11-05", capabilities: {}, clientInfo: { name: "example-client", version: "1.0.0" } } }); // 列出可用工具 await this.listTools(); // 示例:生成圖片 await this.generateImage(); // 示例:對話完成 await this.chatCompletion(); this.stop(); } async sendRequest(request) { return new Promise((resolve, reject) => { const requestStr = JSON.stringify(request) + '\n'; this.serverProcess.stdin.write(requestStr); // 監聽響應 this.serverProcess.stdout.once('data', (data) => { try { const response = JSON.parse(data.toString().trim()); resolve(response); } catch (error) { reject(error); } }); }); } async listTools() { console.log('📋 獲取可用工具列表...'); const response = await this.sendRequest({ jsonrpc: "2.0", id: 2, method: "tools/list" }); console.log('可用工具:'); response.result.tools.forEach((tool) => { console.log(` - ${tool.name}: ${tool.description}`); }); console.log(''); } async generateImage() { console.log('🖼️ 生成圖片示例...'); const response = await this.sendRequest({ jsonrpc: "2.0", id: 3, method: "tools/call", params: { name: "generate_image", arguments: { prompt: "生成一張卡通風格的熊貓宇航員圖片,背景是星空", system_prompt: "You are a creative image generator that creates beautiful and detailed images.", model: "gpt-image-1" } } }); console.log('圖片生成結果:'); console.log(response.result.content[0].text); console.log(''); } async chatCompletion() { console.log('💬 對話完成示例...'); const response = await this.sendRequest({ jsonrpc: "2.0", id: 4, method: "tools/call", params: { name: "chat_completion", arguments: { message: "請幫我寫一首關於春天的詩", system_prompt: "You are a professional poet who writes beautiful Chinese poetry.", model: "gpt-4" } } }); console.log('對話回覆:'); console.log(response.result.content[0].text); console.log(''); } stop() { console.log('🛑 停止服務器...'); if (this.serverProcess) { this.serverProcess.kill(); } } } // 運行示例 const client = new MCPClient(); client.start().catch(console.error);