Skip to main content
Glama

Worksona MCP Server

Official
by worksona
test-final.jsโ€ข6.79 kB
#!/usr/bin/env node const { spawn } = require('child_process'); console.log('๐Ÿงช Running Final MCP Server Tests...\n'); // Test 1: Server initialization and tools list function testToolsList() { return new Promise((resolve, reject) => { console.log('๐Ÿ“‹ Test 1: Tools List'); const server = spawn('worksona-mcp-server', [], { stdio: ['pipe', 'pipe', 'pipe'] }); let stdout = ''; let stderr = ''; server.stdout.on('data', (data) => { stdout += data.toString(); }); server.stderr.on('data', (data) => { stderr += data.toString(); }); // Send tools/list request const request = JSON.stringify({ jsonrpc: "2.0", id: 1, method: "tools/list", params: {} }) + '\n'; server.stdin.write(request); server.stdin.end(); server.on('close', (code) => { try { // Verify JSON response const response = JSON.parse(stdout.trim()); if (response.jsonrpc === "2.0" && response.id === 1 && response.result && response.result.tools) { const toolCount = response.result.tools.length; console.log(` โœ… Server responded with ${toolCount} tools`); console.log(` โœ… Clean JSON output (no console interference)`); resolve(true); } else { console.log(` โŒ Invalid response structure`); reject(new Error('Invalid response structure')); } } catch (error) { console.log(` โŒ JSON parsing failed: ${error.message}`); console.log(` ๐Ÿ“ Raw stdout: ${stdout}`); console.log(` ๐Ÿ“ Raw stderr: ${stderr}`); reject(error); } }); // Timeout after 10 seconds setTimeout(() => { server.kill(); reject(new Error('Test timeout')); }, 10000); }); } // Test 2: Agent activation function testAgentActivation() { return new Promise((resolve, reject) => { console.log('\n๐ŸŽฏ Test 2: Agent Activation'); const server = spawn('worksona-mcp-server', [], { stdio: ['pipe', 'pipe', 'pipe'] }); let stdout = ''; let stderr = ''; server.stdout.on('data', (data) => { stdout += data.toString(); }); server.stderr.on('data', (data) => { stderr += data.toString(); }); // Send agent activation request const request = JSON.stringify({ jsonrpc: "2.0", id: 2, method: "tools/call", params: { name: "activate_agent", arguments: { agent_name: "frontend-developer", request: "Create a simple React component" } } }) + '\n'; server.stdin.write(request); server.stdin.end(); server.on('close', (code) => { try { // Verify JSON response const response = JSON.parse(stdout.trim()); if (response.jsonrpc === "2.0" && response.id === 2 && response.result && response.result.content) { console.log(` โœ… Agent activated successfully`); console.log(` โœ… Response contains content`); console.log(` โœ… Clean JSON output (no console interference)`); resolve(true); } else { console.log(` โŒ Invalid agent response structure`); reject(new Error('Invalid agent response structure')); } } catch (error) { console.log(` โŒ JSON parsing failed: ${error.message}`); console.log(` ๐Ÿ“ Raw stdout: ${stdout}`); console.log(` ๐Ÿ“ Raw stderr: ${stderr}`); reject(error); } }); // Timeout after 10 seconds setTimeout(() => { server.kill(); reject(new Error('Test timeout')); }, 10000); }); } // Test 3: List agents function testListAgents() { return new Promise((resolve, reject) => { console.log('\n๐Ÿ“‹ Test 3: List Agents'); const server = spawn('worksona-mcp-server', [], { stdio: ['pipe', 'pipe', 'pipe'] }); let stdout = ''; let stderr = ''; server.stdout.on('data', (data) => { stdout += data.toString(); }); server.stderr.on('data', (data) => { stderr += data.toString(); }); // Send list agents request const request = JSON.stringify({ jsonrpc: "2.0", id: 3, method: "tools/call", params: { name: "list_agents", arguments: {} } }) + '\n'; server.stdin.write(request); server.stdin.end(); server.on('close', (code) => { try { // Verify JSON response const response = JSON.parse(stdout.trim()); if (response.jsonrpc === "2.0" && response.id === 3 && response.result && response.result.content) { const content = response.result.content[0].text; const agentCount = (content.match(/- \*\*/g) || []).length; console.log(` โœ… Listed ${agentCount} agents successfully`); console.log(` โœ… Response contains formatted agent list`); console.log(` โœ… Clean JSON output (no console interference)`); resolve(true); } else { console.log(` โŒ Invalid list agents response structure`); reject(new Error('Invalid list agents response structure')); } } catch (error) { console.log(` โŒ JSON parsing failed: ${error.message}`); console.log(` ๐Ÿ“ Raw stdout: ${stdout}`); console.log(` ๐Ÿ“ Raw stderr: ${stderr}`); reject(error); } }); // Timeout after 10 seconds setTimeout(() => { server.kill(); reject(new Error('Test timeout')); }, 10000); }); } // Run all tests async function runTests() { try { await testToolsList(); await testAgentActivation(); await testListAgents(); console.log('\n๐ŸŽ‰ All tests passed! MCP Server is working correctly.'); console.log('\n๐Ÿ“ฆ Package Details:'); console.log(' โ€ข Package: worksona-mcp-server@1.1.2'); console.log(' โ€ข 86 bundled agents across 18+ categories'); console.log(' โ€ข Clean JSON-RPC protocol (no stdout interference)'); console.log(' โ€ข Ready for Claude Desktop integration'); console.log('\n๐Ÿš€ Installation Instructions:'); console.log(' 1. npm install -g worksona-mcp-server'); console.log(' 2. Add to Claude Desktop config:'); console.log(' {'); console.log(' "mcpServers": {'); console.log(' "worksona-agents": {'); console.log(' "command": "worksona-mcp-server"'); console.log(' }'); console.log(' }'); console.log(' }'); console.log(' 3. Restart Claude Desktop'); } catch (error) { console.log(`\nโŒ Test failed: ${error.message}`); process.exit(1); } } runTests();

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/worksona/-worksona-mcp-server'

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