Skip to main content
Glama
test-mcp-protocol.js2.62 kB
const { spawn } = require('child_process'); // Test MCP JSON-RPC protocol async function testMCPProtocol() { console.log('🧪 Testing MCP JSON-RPC Protocol...'); const server = spawn('node', ['./bin/agentic-control-framework-mcp', '--workspaceRoot', process.cwd()]); let responseData = ''; let initReceived = false; server.stdout.on('data', (data) => { responseData += data.toString(); // Look for JSON-RPC responses const lines = responseData.split('\n'); for (const line of lines) { if (line.trim() && line.startsWith('{')) { try { const response = JSON.parse(line); if (response.result && response.result.capabilities) { console.log('✅ MCP initialization response received'); console.log('✅ Server capabilities:', Object.keys(response.result.capabilities)); initReceived = true; } if (response.result && response.result.tools) { console.log('✅ Tools list received:', response.result.tools.length, 'tools'); server.kill('SIGTERM'); return; } } catch (e) { // Not JSON, ignore } } } }); server.stderr.on('data', (data) => { // Server logs go to stderr, this is normal }); // Wait for server to start setTimeout(() => { // Send initialize request const initRequest = { jsonrpc: "2.0", id: 1, method: "initialize", params: { protocolVersion: "2024-11-05", capabilities: {}, clientInfo: { name: "test-client", version: "1.0.0" } } }; server.stdin.write(JSON.stringify(initRequest) + '\n'); // Send tools/list request after a delay setTimeout(() => { const toolsRequest = { jsonrpc: "2.0", id: 2, method: "tools/list", params: {} }; server.stdin.write(JSON.stringify(toolsRequest) + '\n'); }, 1000); }, 1000); // Timeout after 10 seconds setTimeout(() => { if (!initReceived) { console.log('❌ MCP protocol test timed out'); } server.kill('SIGTERM'); }, 10000); } testMCPProtocol().catch(console.error);

Latest Blog Posts

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/FutureAtoms/agentic-control-framework'

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