Skip to main content
Glama

MCP Perplexity Pro

setup.ts1.57 kB
import { vi, beforeAll, afterAll, beforeEach, afterEach } from 'vitest'; import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; // ESM equivalent of __dirname const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // Setup test environment beforeAll(() => { // Create test storage directory const testStorageDir = path.join(__dirname, '../test-storage'); if (!fs.existsSync(testStorageDir)) { fs.mkdirSync(testStorageDir, { recursive: true }); } }); afterAll(() => { // Clean up test storage directory const testStorageDir = path.join(__dirname, '../test-storage'); if (fs.existsSync(testStorageDir)) { fs.rmSync(testStorageDir, { recursive: true, force: true }); } }); // Mock console methods in tests global.console = { ...console, log: vi.fn(), debug: vi.fn(), info: vi.fn(), warn: vi.fn(), error: vi.fn(), }; // Note: node-fetch mocking is handled per-test to avoid conflicts // Mock proper-lockfile for tests to avoid filesystem locking issues vi.mock('proper-lockfile', () => ({ default: { lock: vi.fn(() => Promise.resolve()), unlock: vi.fn(() => Promise.resolve()), }, })); // Mock process.stdout and process.stderr for MCP testing const originalStdout = process.stdout.write; const originalStderr = process.stderr.write; beforeEach(() => { // Reset mocks before each test vi.clearAllMocks(); }); afterEach(() => { // Restore original methods process.stdout.write = originalStdout; process.stderr.write = originalStderr; });

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/cfdude/mcp-perplexity-pro'

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