Skip to main content
Glama

Apple MCP Server

contacts-simple.test.ts2.84 kB
import { describe, it, expect } from "bun:test"; import { TEST_DATA } from "../fixtures/test-data.js"; import contactsModule from "../../utils/contacts.js"; describe("Contacts Simple Tests", () => { describe("Basic Contacts Access", () => { it("should access contacts without error", async () => { try { const allNumbers = await contactsModule.getAllNumbers(); expect(typeof allNumbers).toBe("object"); expect(allNumbers).not.toBeNull(); console.log( `✅ Successfully accessed contacts, found ${Object.keys(allNumbers).length} contacts`, ); // Basic structure validation for (const [name, phoneNumbers] of Object.entries(allNumbers)) { expect(typeof name).toBe("string"); expect(Array.isArray(phoneNumbers)).toBe(true); } } catch (error) { console.error("❌ Contacts access failed:", error); console.log( "ℹ️ This may indicate that Contacts permissions need to be granted", ); // Don't fail the test - just log the issue expect(error).toBeTruthy(); // Acknowledge there's an error } }, 30000); }); describe("Contact Search", () => { it("should handle contact search gracefully", async () => { try { const phoneNumbers = await contactsModule.findNumber("Test"); expect(Array.isArray(phoneNumbers)).toBe(true); console.log(`✅ Search returned ${phoneNumbers.length} results`); } catch (error) { console.error("❌ Contact search failed:", error); console.log("ℹ️ This may indicate permissions issues"); // Don't fail the test expect(error).toBeTruthy(); } }, 15000); it("should handle phone number lookup gracefully", async () => { try { const contactName = await contactsModule.findContactByPhone( TEST_DATA.PHONE_NUMBER, ); // Should return null or a string, never undefined expect(contactName === null || typeof contactName === "string").toBe( true, ); if (contactName) { console.log( `✅ Found contact for ${TEST_DATA.PHONE_NUMBER}: ${contactName}`, ); } else { console.log(`ℹ️ No contact found for ${TEST_DATA.PHONE_NUMBER}`); } } catch (error) { console.error("❌ Phone lookup failed:", error); expect(error).toBeTruthy(); } }, 15000); }); describe("Error Handling", () => { it("should handle invalid input gracefully", async () => { try { const result1 = await contactsModule.findNumber(""); const result2 = await contactsModule.findContactByPhone(""); expect(Array.isArray(result1)).toBe(true); expect(result2 === null || typeof result2 === "string").toBe(true); console.log("✅ Empty input handled gracefully"); } catch (error) { console.log("ℹ️ Empty input caused error (may be expected)"); expect(error).toBeTruthy(); } }, 10000); }); });

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/supermemoryai/apple-mcp'

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