Skip to main content
Glama
pshempel

MCP Time Server Node

by pshempel
test_hammer_server.py3.85 kB
#!/usr/bin/env python3 """ TDD Test for actually hammering the MCP server """ import unittest import json try: from stress_test import SimpleStressTester except ImportError: SimpleStressTester = None class TestHammerServer(unittest.TestCase): """Test our ability to hammer the server with requests""" def test_hammer_server_exists(self): """Test that hammer_server method exists""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") # Use absolute path to dist/index.js import os project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) server_path = os.path.join(project_root, 'dist', 'index.js') tester = SimpleStressTester(['node', server_path]) self.assertTrue(hasattr(tester, 'hammer_server'), "hammer_server method should exist") def test_can_send_mcp_request(self): """Test that we can send a single MCP request""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") import os project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) server_path = os.path.join(project_root, 'dist', 'index.js') tester = SimpleStressTester(['node', server_path]) tester.start_server() # Send a single request response = tester.send_request({ "jsonrpc": "2.0", "method": "tools/list", "id": 1, "params": {} }) # Should get a valid response self.assertIsNotNone(response) self.assertIn('result', response) self.assertIn('tools', response['result']) tester.stop_server() def test_hammer_server_makes_requests(self): """Test that hammer_server actually makes many requests""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") import os project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) server_path = os.path.join(project_root, 'dist', 'index.js') tester = SimpleStressTester(['node', server_path]) tester.start_server() # Hammer for just 5 seconds results = tester.hammer_server(seconds=5) # Should have made some requests self.assertIsNotNone(results) self.assertIn('total_requests', results) self.assertIn('errors', results) self.assertIn('duration', results) self.assertGreater(results['total_requests'], 0) tester.stop_server() def test_memory_leak_detection_with_hammering(self): """Test memory leak detection while hammering""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") import os project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) server_path = os.path.join(project_root, 'dist', 'index.js') tester = SimpleStressTester(['node', server_path]) tester.start_server() # Get initial memory initial_memory = tester.check_memory() # Hammer for 10 seconds results = tester.hammer_server(seconds=10) # Get final memory final_memory = tester.check_memory() # Check results self.assertIn('memory_start', results) self.assertIn('memory_end', results) self.assertIn('memory_leak_detected', results) # Memory should be tracked self.assertAlmostEqual(results['memory_start'], initial_memory, delta=5) self.assertAlmostEqual(results['memory_end'], final_memory, delta=5) tester.stop_server() if __name__ == '__main__': unittest.main(verbosity=1)

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/pshempel/mcp-time-server-node'

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