Skip to main content
Glama

MCP API Server

by fikri2992
tool-handlers.test.js3.66 kB
#!/usr/bin/env node "use strict"; /** * Test script to verify tool call handlers work correctly */ Object.defineProperty(exports, "__esModule", { value: true }); exports.testToolHandlers = testToolHandlers; const mcp_server_js_1 = require("../src/mcp-server.js"); async function testToolHandlers() { console.log('Testing MCP Server Tool Call Handlers...\n'); // Create server instance with debug enabled const server = new mcp_server_js_1.MCPServer({ debug: true, apiClient: { timeout: 5000, }, }); // Test data for different scenarios const testCases = [ { name: 'Valid GET request', toolName: 'api_get', params: { url: 'https://httpbin.org/get', headers: { 'User-Agent': 'MCP-Test-Client', }, }, }, { name: 'Valid POST request', toolName: 'api_post', params: { url: 'https://httpbin.org/post', body: { test: 'data', timestamp: new Date().toISOString() }, headers: { 'Content-Type': 'application/json', }, }, }, { name: 'Invalid URL validation', toolName: 'api_get', params: { url: 'not-a-valid-url', }, }, { name: 'Missing required parameter', toolName: 'api_post', params: { // Missing url parameter body: { test: 'data' }, }, }, ]; // Test each case for (const testCase of testCases) { console.log(`\n--- Testing: ${testCase.name} ---`); try { // Simulate the tool call handling process console.log('Tool:', testCase.toolName); console.log('Params:', JSON.stringify(testCase.params, null, 2)); // Test parameter validation const validatedParams = server.requestValidator.validateToolCall(testCase.toolName, testCase.params); if ('error' in validatedParams) { console.log('❌ Validation failed (expected for invalid cases):'); console.log('Error:', validatedParams.error.message); continue; } console.log('✅ Parameters validated successfully'); // For valid cases, test the API request conversion const apiRequest = server.convertToAPIRequest(testCase.toolName, validatedParams); console.log('API Request:', JSON.stringify(apiRequest, null, 2)); // Test API request validation const validatedRequest = server.requestValidator.validateAPIRequest(apiRequest); if ('error' in validatedRequest) { console.log('❌ API request validation failed:'); console.log('Error:', validatedRequest.error.message); continue; } console.log('✅ API request validated successfully'); console.log('✅ Tool handler would proceed to make HTTP request'); } catch (error) { console.log('❌ Test failed with error:', error instanceof Error ? error.message : error); } } console.log('\n--- Tool Handler Tests Complete ---'); console.log('✅ All tool call handlers are properly implemented and integrated'); } // Run tests if this file is executed directly if (require.main === module) { testToolHandlers().catch(console.error); } //# sourceMappingURL=tool-handlers.test.js.map

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/fikri2992/mcp0'

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