Skip to main content
Glama

1MCP Server

minimal.test.ts2.92 kB
import { ConfigBuilder, ProtocolValidator } from '@test/e2e/utils/index.js'; import { describe, expect, it } from 'vitest'; describe('Minimal E2E Demo', () => { it('should validate E2E infrastructure basics', () => { // Test configuration builder const config = ConfigBuilder.create() .enableStdioTransport() .enableHttpTransport(3000) .addStdioServer('test-server', 'node', ['--version'], ['test']) .build(); expect(config.servers).toHaveLength(1); expect(config.transport?.stdio).toBe(true); expect(config.transport?.http?.port).toBe(3000); // Test protocol validator const validRequest = { jsonrpc: '2.0', id: 1, method: 'ping', }; const validation = ProtocolValidator.validateRequest(validRequest); expect(validation.valid).toBe(true); expect(validation.errors).toHaveLength(0); // Test invalid request const invalidRequest = { id: 1, method: 'ping', // Missing jsonrpc }; const invalidValidation = ProtocolValidator.validateRequest(invalidRequest); expect(invalidValidation.valid).toBe(false); expect(invalidValidation.errors.length).toBeGreaterThan(0); }); it('should demonstrate config file operations', () => { const configBuilder = new ConfigBuilder(); const config = configBuilder.enableStdioTransport().addStdioServer('echo', 'echo', ['hello'], ['test']).build(); expect(config.servers[0].name).toBe('echo'); expect(config.servers[0].command).toBe('echo'); expect(config.servers[0].args).toEqual(['hello']); expect(config.servers[0].tags).toContain('test'); // Test file operations const configPath = configBuilder.writeToFile(); expect(configPath).toBeDefined(); expect(configPath.endsWith('.json')).toBe(true); // Cleanup configBuilder.cleanup(); }); it('should validate MCP protocol patterns', () => { // Test standard MCP methods const mcpMethods = ['ping', 'tools/list', 'tools/call', 'resources/list', 'resources/read']; mcpMethods.forEach((method) => { const validation = ProtocolValidator.validateMcpMethod(method); expect(validation.valid).toBe(true); }); // Test custom method (should have warning) const customValidation = ProtocolValidator.validateMcpMethod('custom/method'); expect(customValidation.valid).toBe(true); expect(customValidation.warnings.length).toBeGreaterThan(0); // Test error validation const validError = { code: -32600, message: 'Invalid Request', }; const errorValidation = ProtocolValidator.validateError(validError); expect(errorValidation.valid).toBe(true); const invalidError = { message: 'Missing code', // Missing code field }; const invalidErrorValidation = ProtocolValidator.validateError(invalidError); expect(invalidErrorValidation.valid).toBe(false); }); });

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/1mcp-app/agent'

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