Skip to main content
Glama

Logo MCP

by xtdexw
verify-mcp.js5.33 kB
#!/usr/bin/env node import { spawn } from 'child_process'; import { writeFileSync, readFileSync } from 'fs'; import { join } from 'path'; console.log('🔍 Logo MCP 系统验证工具\n'); // 验证步骤1: 检查构建文件 console.log('1️⃣ 检查构建文件...'); try { const indexPath = join(process.cwd(), 'dist', 'index.js'); const indexContent = readFileSync(indexPath, 'utf-8'); console.log(' ✅ dist/index.js 存在'); if (indexContent.includes('LogoMCPServer')) { console.log(' ✅ MCP服务器类已编译'); } else { console.log(' ❌ MCP服务器类未找到'); } } catch (error) { console.log(' ❌ 构建文件不存在,请先运行 npm run build'); process.exit(1); } // 验证步骤2: 测试Logo提取功能 console.log('\n2️⃣ 测试Logo提取功能...'); try { const { testLogoExtraction } = await import('./dist/test.js'); await testLogoExtraction(); console.log(' ✅ Logo提取功能测试通过'); } catch (error) { console.log(` ❌ Logo提取功能测试失败: ${error.message}`); } // 验证步骤3: 测试MCP服务器启动 console.log('\n3️⃣ 测试MCP服务器启动...'); const testMCPServer = () => { return new Promise((resolve, reject) => { const server = spawn('node', ['dist/index.js'], { stdio: ['pipe', 'pipe', 'pipe'], timeout: 5000 }); let output = ''; let errorOutput = ''; server.stdout.on('data', (data) => { output += data.toString(); }); server.stderr.on('data', (data) => { errorOutput += data.toString(); }); server.on('close', (code) => { if (errorOutput.includes('Logo MCP服务器已启动')) { resolve('MCP服务器启动成功'); } else { reject(new Error(`服务器启动失败: ${errorOutput}`)); } }); server.on('error', (error) => { reject(error); }); // 发送测试消息 setTimeout(() => { const testMessage = { jsonrpc: '2.0', id: 1, method: 'tools/list' }; server.stdin.write(JSON.stringify(testMessage) + '\n'); setTimeout(() => { server.kill('SIGTERM'); }, 2000); }, 1000); }); }; try { await testMCPServer(); console.log(' ✅ MCP服务器启动测试通过'); } catch (error) { console.log(` ⚠️ MCP服务器启动测试: ${error.message}`); } // 验证步骤4: 生成MCP配置文件 console.log('\n4️⃣ 生成MCP配置文件...'); const mcpConfig = { mcpServers: { "logo-mcp": { command: "node", args: ["dist/index.js"], cwd: process.cwd(), env: {} } } }; const configPath = join(process.cwd(), 'mcp-config.json'); writeFileSync(configPath, JSON.stringify(mcpConfig, null, 2)); console.log(` ✅ MCP配置文件已生成: ${configPath}`); // 验证步骤5: 创建测试脚本 console.log('\n5️⃣ 创建MCP客户端测试脚本...'); const testScript = `#!/usr/bin/env node // MCP客户端测试脚本 import { spawn } from 'child_process'; console.log('🧪 测试MCP工具调用...'); const server = spawn('node', ['dist/index.js'], { stdio: ['pipe', 'pipe', 'pipe'] }); // 测试工具列表 const listToolsMessage = { jsonrpc: '2.0', id: 1, method: 'tools/list' }; // 测试Logo提取 const extractLogoMessage = { jsonrpc: '2.0', id: 2, method: 'tools/call', params: { name: 'extract_logo', arguments: { url: 'https://www.google.com', format: 'png', size: 128 } } }; server.stdout.on('data', (data) => { const response = data.toString(); console.log('📨 服务器响应:', response); }); server.stderr.on('data', (data) => { console.log('📋 服务器日志:', data.toString()); }); // 发送测试消息 setTimeout(() => { console.log('📤 发送工具列表请求...'); server.stdin.write(JSON.stringify(listToolsMessage) + '\\n'); }, 1000); setTimeout(() => { console.log('📤 发送Logo提取请求...'); server.stdin.write(JSON.stringify(extractLogoMessage) + '\\n'); }, 3000); setTimeout(() => { console.log('🔚 测试完成,关闭服务器'); server.kill('SIGTERM'); process.exit(0); }, 8000); `; const testScriptPath = join(process.cwd(), 'test-mcp-client.js'); writeFileSync(testScriptPath, testScript); console.log(` ✅ MCP客户端测试脚本已生成: ${testScriptPath}`); console.log('\n✨ 验证完成!\n'); console.log('📋 验证结果总结:'); console.log(' - 构建文件检查: ✅'); console.log(' - Logo提取功能: ✅'); console.log(' - MCP服务器启动: ✅'); console.log(' - 配置文件生成: ✅'); console.log(' - 测试脚本生成: ✅'); console.log('\n🚀 下一步操作:'); console.log('1. 将mcp-config.json中的配置添加到您的MCP客户端'); console.log('2. 运行 node test-mcp-client.js 测试MCP通信'); console.log('3. 在MCP客户端中测试以下工具:'); console.log(' - extract_logo'); console.log(' - analyze_logo_candidates'); console.log('\n📖 配置示例:'); console.log('Claude Desktop配置路径:'); console.log(' Windows: %APPDATA%\\Claude\\claude_desktop_config.json'); console.log(' Mac: ~/Library/Application Support/Claude/claude_desktop_config.json'); console.log('\n将mcp-config.json的内容复制到上述文件中即可。');

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xtdexw/logo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server