Skip to main content
Glama

Peekaboo MCP

by steipete
PeekabooToolExecutorTests.swiftβ€’1.87 kB
import Foundation import Testing import PeekabooCore @testable import Peekaboo @Suite("ToolRegistry Tests", .tags(.tools, .unit)) @MainActor struct ToolRegistryTests { @Test("All expected tools are registered") func allToolsAreRegistered() { let allTools = ToolRegistry.allTools #expect(!allTools.isEmpty) let toolNames = Set(allTools.map(\.name)) let expectedTools: Set<String> = [ "see", "click", "type", "press", "scroll", "hotkey", "list_apps", "launch_app", "menu_click", "list_menus", "dialog_click", "dialog_input", "dock_launch", "list_dock", "shell", "done", "need_info", ] #expect(toolNames.isSuperset(of: expectedTools)) } @Test("Tool definitions are valid") func toolDefinitionsAreValid() { let allTools = ToolRegistry.allTools for tool in allTools { #expect(!tool.name.isEmpty) #expect(!tool.abstract.isEmpty) for param in tool.parameters { #expect(!param.name.isEmpty) #expect(!param.description.isEmpty) } } } @Test("Can retrieve a tool by name") func getToolByName() { let tool = ToolRegistry.tool(named: "see") #expect(tool != nil) #expect(tool?.name == "see") } @Test("Tools are grouped by category") func toolsAreGroupedByCategory() { let categorizedTools = ToolRegistry.toolsByCategory() #expect(!categorizedTools.isEmpty) #expect(categorizedTools[.vision] != nil) #expect(categorizedTools[.ui] != nil) #expect(categorizedTools[.application] != nil) } }

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/steipete/Peekaboo'

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