@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
JavaScript
/**
* 老張 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);