Skip to main content
Glama

mcp-server-gitlab

transport.test.ts3.4 kB
import { describe, it, expect, beforeEach, afterEach, jest } from '@jest/globals'; // Mock environment variables const originalEnv = process.env; describe('Transport Configuration', () => { beforeEach(() => { process.env = { ...originalEnv }; }); afterEach(() => { process.env = originalEnv; }); it('should default to stdio transport when no environment variables are set', () => { delete process.env.MCP_TRANSPORT_TYPE; process.argv = ['node', 'index.js']; // Mock console.log to capture output const consoleSpy = jest.spyOn(console, 'log').mockImplementation(() => {}); // Import and evaluate the transport logic const args = process.argv.slice(2); const transportType = process.env.MCP_TRANSPORT_TYPE || (args.includes('--http-stream') ? 'httpStream' : 'stdio'); expect(transportType).toBe('stdio'); consoleSpy.mockRestore(); }); it('should use httpStream transport when MCP_TRANSPORT_TYPE is set', () => { process.env.MCP_TRANSPORT_TYPE = 'httpStream'; process.argv = ['node', 'index.js']; const args = process.argv.slice(2); const transportType = process.env.MCP_TRANSPORT_TYPE || (args.includes('--http-stream') ? 'httpStream' : 'stdio'); expect(transportType).toBe('httpStream'); }); it('should use httpStream transport when --http-stream flag is provided', () => { delete process.env.MCP_TRANSPORT_TYPE; process.argv = ['node', 'index.js', '--http-stream']; const args = process.argv.slice(2); const transportType = process.env.MCP_TRANSPORT_TYPE || (args.includes('--http-stream') ? 'httpStream' : 'stdio'); expect(transportType).toBe('httpStream'); }); it('should use default port and endpoint when not specified', () => { delete process.env.MCP_PORT; delete process.env.MCP_ENDPOINT; delete process.env.MCP_HOST; const port = parseInt(process.env.MCP_PORT || '3000'); const endpoint = process.env.MCP_ENDPOINT || '/mcp'; const transportType: string = 'httpStream'; const host = process.env.MCP_HOST || (transportType === 'httpStream' ? '0.0.0.0' : 'localhost'); expect(port).toBe(3000); expect(endpoint).toBe('/mcp'); expect(host).toBe('0.0.0.0'); }); it('should use custom port and endpoint when specified', () => { process.env.MCP_PORT = '4000'; process.env.MCP_ENDPOINT = '/custom'; process.env.MCP_HOST = '127.0.0.1'; const port = parseInt(process.env.MCP_PORT || '3000'); const endpoint = process.env.MCP_ENDPOINT || '/mcp'; const transportType: string = 'httpStream'; const host = process.env.MCP_HOST || (transportType === 'httpStream' ? '0.0.0.0' : 'localhost'); expect(port).toBe(4000); expect(endpoint).toBe('/custom'); expect(host).toBe('127.0.0.1'); }); it('should default to 0.0.0.0 for httpStream transport', () => { delete process.env.MCP_HOST; const transportType: string = 'httpStream'; const host = process.env.MCP_HOST || (transportType === 'httpStream' ? '0.0.0.0' : 'localhost'); expect(host).toBe('0.0.0.0'); }); it('should default to localhost for stdio transport', () => { delete process.env.MCP_HOST; const transportType: string = 'stdio'; const host = process.env.MCP_HOST || (transportType === 'httpStream' ? '0.0.0.0' : 'localhost'); expect(host).toBe('localhost'); }); });

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

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