Skip to main content
Glama
evalstate

Hugging Face MCP Server

by evalstate
stateless-http-transport.test.ts3.42 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ import { describe, it, expect, beforeEach, vi } from 'vitest'; import { StatelessHttpTransport } from '../../../src/server/transport/stateless-http-transport.js'; import type { ServerFactory } from '../../../src/server/transport/base-transport.js'; import express from 'express'; describe('StatelessHttpTransport', () => { let transport: StatelessHttpTransport; beforeEach(() => { // Create a minimal instance for testing private methods const mockServerFactory = vi.fn() as unknown as ServerFactory; const mockApp = express(); transport = new StatelessHttpTransport(mockServerFactory, mockApp); }); describe('shouldHandle', () => { it('should handle tools/list requests', () => { const result = (transport as any).shouldHandle({ method: 'tools/list' }); expect(result).toBe(true); }); it('should handle tools/call requests', () => { const result = (transport as any).shouldHandle({ method: 'tools/call' }); expect(result).toBe(true); }); it('should handle initialize requests', () => { const result = (transport as any).shouldHandle({ method: 'initialize' }); expect(result).toBe(true); }); it('should not handle ping requests', () => { const result = (transport as any).shouldHandle({ method: 'ping' }); expect(result).toBe(false); }); it('should handle prompts/list requests', () => { const result = (transport as any).shouldHandle({ method: 'prompts/list' }); expect(result).toBe(true); }); it('should handle prompts/get requests', () => { const result = (transport as any).shouldHandle({ method: 'prompts/get' }); expect(result).toBe(true); }); it('should NOT handle resources/list requests for non-openai-mcp clients', () => { const result = (transport as any).shouldHandle({ method: 'resources/list' }); expect(result).toBe(false); }); it('should handle resources/list requests for openai-mcp client', () => { const result = (transport as any).shouldHandle({ method: 'resources/list' }, 'openai-mcp'); expect(result).toBe(true); }); it('should NOT handle resources/read requests for non-openai-mcp clients', () => { const result = (transport as any).shouldHandle({ method: 'resources/read' }); expect(result).toBe(false); }); it('should handle resources/read requests for openai-mcp client', () => { const result = (transport as any).shouldHandle({ method: 'resources/read' }, 'openai-mcp'); expect(result).toBe(true); }); it('should NOT handle resources/templates/list requests for non-openai-mcp clients', () => { const result = (transport as any).shouldHandle({ method: 'resources/templates/list' }); expect(result).toBe(false); }); it('should handle resources/templates/list requests for openai-mcp client', () => { const result = (transport as any).shouldHandle({ method: 'resources/templates/list' }, 'openai-mcp'); expect(result).toBe(true); }); it('should handle undefined method gracefully', () => { const result = (transport as any).shouldHandle({}); expect(result).toBe(false); }); it('should handle undefined body gracefully', () => { const result = (transport as any).shouldHandle(undefined); expect(result).toBe(false); }); it('should handle null body gracefully', () => { const result = (transport as any).shouldHandle(null); expect(result).toBe(false); }); }); });

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

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