Skip to main content
Glama

Kagi MCP

by yuki-yano
test-server.js2.41 kB
import { spawn } from 'child_process'; import { createInterface } from 'readline'; // Test the MCP server async function testServer() { console.log('Starting Kagi MCP server test...\n'); // Check for API key if (!process.env.KAGI_API_KEY) { console.error('Error: KAGI_API_KEY environment variable is not set'); process.exit(1); } // Spawn the server const server = spawn('node', ['dist/index.js'], { stdio: ['pipe', 'pipe', 'pipe'], env: { ...process.env }, }); const rl = createInterface({ input: server.stdout, crlfDelay: Infinity, }); server.stderr.on('data', (data) => { console.error('Server error:', data.toString()); }); // Send initialize request const initRequest = { jsonrpc: '2.0', method: 'initialize', params: { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'test-client', version: '1.0.0', }, }, id: 1, }; console.log('Sending initialize request...'); server.stdin.write(JSON.stringify(initRequest) + '\n'); // Wait for response let initialized = false; rl.on('line', (line) => { try { const response = JSON.parse(line); console.log('Received:', JSON.stringify(response, null, 2)); if (response.id === 1 && !initialized) { initialized = true; console.log('\nServer initialized successfully!'); // List tools const listToolsRequest = { jsonrpc: '2.0', method: 'tools/list', params: {}, id: 2, }; console.log('\nListing available tools...'); server.stdin.write(JSON.stringify(listToolsRequest) + '\n'); } else if (response.id === 2) { console.log('\nAvailable tools:'); response.result.tools.forEach((tool) => { console.log(`- ${tool.name}: ${tool.description.substring(0, 60)}...`); }); console.log('\nTest completed successfully!'); server.kill(); process.exit(0); } } catch (error) { console.error('Error parsing response:', error); } }); // Handle server exit server.on('exit', (code) => { console.log(`Server exited with code ${code}`); process.exit(code || 0); }); } testServer().catch((error) => { console.error('Test failed:', error); process.exit(1); });

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/yuki-yano/kagi-mcp'

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