Skip to main content
Glama

Context Pods

by conorluddy
mocks.tsโ€ข2.99 kB
/** * Common mock utilities for Context-Pods tests */ import { vi } from 'vitest'; import { Volume } from 'memfs'; import type { IPromisesAPI } from 'memfs/lib/promises/index.js'; interface MockFileSystem { vol: Volume; fs: IPromisesAPI; reset: () => void; } interface MockMCPClient { connect: ReturnType<typeof vi.fn>; disconnect: ReturnType<typeof vi.fn>; request: ReturnType<typeof vi.fn>; notify: ReturnType<typeof vi.fn>; getServerCapabilities: ReturnType<typeof vi.fn>; listTools: ReturnType<typeof vi.fn>; listResources: ReturnType<typeof vi.fn>; listPrompts: ReturnType<typeof vi.fn>; callTool: ReturnType<typeof vi.fn>; readResource: ReturnType<typeof vi.fn>; getPrompt: ReturnType<typeof vi.fn>; listResourceTemplates: ReturnType<typeof vi.fn>; completeResourceTemplate: ReturnType<typeof vi.fn>; } interface MockMCPServer { connect: ReturnType<typeof vi.fn>; close: ReturnType<typeof vi.fn>; onRequest: ReturnType<typeof vi.fn>; onNotification: ReturnType<typeof vi.fn>; sendNotification: ReturnType<typeof vi.fn>; sendResult: ReturnType<typeof vi.fn>; sendError: ReturnType<typeof vi.fn>; setRequestHandler: ReturnType<typeof vi.fn>; setNotificationHandler: ReturnType<typeof vi.fn>; } interface MockDatabase { run: ReturnType<typeof vi.fn>; get: ReturnType<typeof vi.fn>; all: ReturnType<typeof vi.fn>; prepare: ReturnType<typeof vi.fn>; close: ReturnType<typeof vi.fn>; exec: ReturnType<typeof vi.fn>; } interface MockLogger { info: ReturnType<typeof vi.fn>; warn: ReturnType<typeof vi.fn>; error: ReturnType<typeof vi.fn>; debug: ReturnType<typeof vi.fn>; } /** * Create a mock file system using memfs */ export const createMockFileSystem = (): MockFileSystem => { const vol = new Volume(); return { vol, fs: vol.promises, reset: () => vol.reset(), }; }; /** * Create a mock MCP client */ export const createMockMCPClient = (): MockMCPClient => ({ connect: vi.fn(), disconnect: vi.fn(), request: vi.fn(), notify: vi.fn(), getServerCapabilities: vi.fn(), listTools: vi.fn(), listResources: vi.fn(), listPrompts: vi.fn(), callTool: vi.fn(), readResource: vi.fn(), getPrompt: vi.fn(), listResourceTemplates: vi.fn(), completeResourceTemplate: vi.fn(), }); /** * Create a mock MCP server */ export const createMockMCPServer = (): MockMCPServer => ({ connect: vi.fn(), close: vi.fn(), onRequest: vi.fn(), onNotification: vi.fn(), sendNotification: vi.fn(), sendResult: vi.fn(), sendError: vi.fn(), setRequestHandler: vi.fn(), setNotificationHandler: vi.fn(), }); /** * Create a mock SQLite database */ export const createMockDatabase = (): MockDatabase => ({ run: vi.fn(), get: vi.fn(), all: vi.fn(), prepare: vi.fn(), close: vi.fn(), exec: vi.fn(), }); /** * Create a mock logger */ export const createMockLogger = (): MockLogger => ({ info: vi.fn(), warn: vi.fn(), error: vi.fn(), debug: vi.fn(), });

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/conorluddy/ContextPods'

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