Skip to main content
Glama

Snowfort Circuit MCP

Official
by snowfort-ai
test-web-mcp.js3.23 kB
#!/usr/bin/env node const { spawn } = require('child_process'); const path = require('path'); console.log('\x1b[34m🧪 Circuit Web MCP Local Test\x1b[0m'); console.log('\x1b[34m============================\x1b[0m'); const mcpPath = path.resolve(__dirname, 'packages/web/dist/esm/cli.js'); console.log(`\x1b[33m\n📍 MCP Path: ${mcpPath}\x1b[0m`); console.log('\x1b[32m\n🚀 Starting MCP server...\x1b[0m'); const mcp = spawn('node', [mcpPath], { stdio: ['pipe', 'pipe', 'pipe'], env: { ...process.env } }); let responseBuffer = ''; mcp.stdout.on('data', (data) => { const text = data.toString(); responseBuffer += text; }); mcp.stderr.on('data', (data) => { console.log('\x1b[35m[MCP] ' + data.toString().trim() + '\x1b[0m'); }); mcp.on('error', (error) => { console.error('\x1b[31m\n❌ Failed to start MCP:\x1b[0m', error); process.exit(1); }); // Send test initialization console.log('\x1b[33m\n📝 Sending test initialization...\x1b[0m'); const initRequest = { jsonrpc: "2.0", method: "initialize", params: { protocolVersion: "2024-11-05", capabilities: {}, clientInfo: { name: "test-client", version: "1.0.0" } }, id: 1 }; mcp.stdin.write(JSON.stringify(initRequest) + '\n'); // Give it time to respond setTimeout(() => { // Parse response const lines = responseBuffer.split('\n'); for (const line of lines) { if (line.trim() && line.includes('jsonrpc')) { try { const response = JSON.parse(line); console.log('\x1b[32m\n📨 Response:\x1b[0m', JSON.stringify(response, null, 2)); if (response.result && response.result.serverInfo) { console.log('\x1b[33m\n🔧 Listing available tools...\x1b[0m'); const listRequest = { jsonrpc: "2.0", method: "tools/list", params: {}, id: 2 }; responseBuffer = ''; mcp.stdin.write(JSON.stringify(listRequest) + '\n'); setTimeout(() => { const lines2 = responseBuffer.split('\n'); for (const line2 of lines2) { if (line2.trim() && line2.includes('jsonrpc')) { try { const toolsResponse = JSON.parse(line2); console.log('\x1b[32m\n📨 Response:\x1b[0m', JSON.stringify(toolsResponse, null, 2)); if (toolsResponse.result && toolsResponse.result.tools) { console.log('\x1b[32m\n✅ MCP is working correctly!\x1b[0m'); console.log(`\x1b[34m\n📋 Available tools: ${toolsResponse.result.tools.length}\x1b[0m`); toolsResponse.result.tools.forEach(tool => { console.log(`\x1b[34m - ${tool.name}: ${tool.description}\x1b[0m`); }); } } catch (e) {} } } // Clean exit mcp.kill(); process.exit(0); }, 1000); } } catch (e) {} } } }, 1000); // Timeout setTimeout(() => { console.error('\x1b[31m\n❌ Test timed out\x1b[0m'); mcp.kill(); process.exit(1); }, 5000);

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/snowfort-ai/circuit-mcp'

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