Skip to main content
Glama
notam.test.js3.43 kB
import { createClient } from '../../common/test/helpers.js'; describe('NOTAM API via MCP', () => { let client; let clientTransport; beforeAll(async () => { // Create and initialize client const connection = await createClient(); client = connection.client; clientTransport = connection.clientTransport; // Verify tools are available const tools = await client.listTools(); expect(tools.tools.some(tool => tool.name === 'get_notams')).toBe(true); }); afterAll(async () => { if (clientTransport) { await clientTransport.close?.(); } }); // This test would require valid API credentials to run test('should retrieve NOTAMs', async () => { const result = await client.callTool({ name: 'get_notams', arguments: { icaoLocation: 'KJFK', } }); expect(result.isError).toBeFalsy(); expect(result.content).toBeDefined(); expect(result.content[0].type).toBe('text'); // Parse the JSON response const data = JSON.parse(result.content[0].text); // Check response structure expect(data.pageSize).toBeDefined(); expect(data.pageNum).toBeDefined(); expect(data.items).toBeDefined(); expect(Array.isArray(data.items)).toBe(true); }); test('should retrieve NOTAMs by ICAO identifier', async () => { const result = await client.callTool({ name: 'get_notams', arguments: { icaoLocation: 'KLAX', } }); expect(result.isError).toBeFalsy(); expect(result.content).toBeDefined(); expect(result.content[0].type).toBe('text'); const data = JSON.parse(result.content[0].text); expect(data.pageSize).toBeDefined(); expect(data.pageNum).toBeDefined(); expect(data.items).toBeDefined(); expect(Array.isArray(data.items)).toBe(true); }); test('should retrieve NOTAMs by lat/long/radius', async () => { const result = await client.callTool({ name: 'get_notams', arguments: { locationLatitude: 33.9416, // LAX locationLongitude: -118.4085, locationRadius: 10, // 10 NM radius } }); expect(result.isError).toBeFalsy(); expect(result.content).toBeDefined(); expect(result.content[0].type).toBe('text'); const data = JSON.parse(result.content[0].text); expect(data.pageSize).toBeDefined(); expect(data.pageNum).toBeDefined(); expect(data.items).toBeDefined(); expect(Array.isArray(data.items)).toBe(true); }); test('should retrieve NOTAMs by effective date range', async () => { // Use a recent date range (e.g., today +/- 1 day) const now = new Date(); const start = new Date(now.getTime() - 24 * 60 * 60 * 1000); // 1 day ago const end = new Date(now.getTime() + 24 * 60 * 60 * 1000); // 1 day ahead const result = await client.callTool({ name: 'get_notams', arguments: { effectiveStartDate: start.toISOString(), effectiveEndDate: end.toISOString(), icaoLocation: 'KJFK', // Use a busy airport for likely results } }); expect(result.isError).toBeFalsy(); expect(result.content).toBeDefined(); expect(result.content[0].type).toBe('text'); const data = JSON.parse(result.content[0].text); expect(data.pageSize).toBeDefined(); expect(data.pageNum).toBeDefined(); expect(data.items).toBeDefined(); expect(Array.isArray(data.items)).toBe(true); }); });

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/blevinstein/aviation-mcp'

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