{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"smithery_achiya-automation-safari-mcp","slug":"achiya-automation-safari-mcp","name":"Safari MCP","type":"mcp","url":"https://github.com/achiya-automation/safari-mcp","page_url":"https://unfragile.ai/achiya-automation-safari-mcp","categories":["mcp-servers"],"tags":["mcp","model-context-protocol","smithery:achiya-automation/safari-mcp"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"smithery_achiya-automation-safari-mcp__cap_0","uri":"capability://tool.use.integration.native.safari.browser.automation.via.applescript","name":"native safari browser automation via applescript","description":"Executes browser control commands directly against Safari's native API layer using AppleScript, bypassing Chromium/WebDriver overhead. Leverages macOS Automation framework to send typed commands (navigate, click, type, scroll) to Safari's runtime without spawning separate processes or maintaining WebDriver connections. Maintains persistent Safari session state including authentication cookies and login sessions across command sequences.","intents":["Automate web interactions in Safari without installing Selenium or Puppeteer dependencies","Keep user login sessions alive during multi-step browser automation workflows","Run browser automation silently in background without visible window management overhead","Control Safari from AI agents without network latency or external service dependencies"],"best_for":["macOS-only deployment scenarios where Safari is the primary browser","AI agents requiring persistent authenticated sessions across multiple interactions","Teams avoiding Chromium overhead in resource-constrained environments","Automation workflows that must preserve user cookies and login state"],"limitations":["macOS-only — no Windows or Linux support due to AppleScript/Automation framework dependency","Safari version compatibility may vary; requires Safari 13+ for full AppleScript API coverage","No cross-browser support — locked to Safari, cannot automate Chrome/Firefox/Edge","AppleScript execution adds ~100-300ms latency per command vs native WebDriver","Limited to Safari's exposed automation API surface — some advanced browser features may be inaccessible"],"requires":["macOS 10.14+ (Mojave or later for full Automation framework support)","Safari 13.0+","AppleScript enabled in System Preferences > Security & Privacy > Automation","MCP server runtime (Node.js 16+ or equivalent)"],"input_types":["URL strings","CSS selectors or XPath expressions","Text input for form fields","Coordinate tuples for click/scroll operations","JavaScript code snippets for evaluation"],"output_types":["HTML page source","Structured page metadata (title, URL, loaded state)","Element properties (text content, attributes, visibility)","Screenshot data (base64 or file path)","Boolean success/failure indicators"],"categories":["tool-use-integration","browser-automation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_1","uri":"capability://tool.use.integration.mcp.based.tool.registry.for.safari.commands","name":"mcp-based tool registry for safari commands","description":"Exposes 80 Safari automation operations as discrete MCP tools (resources/functions) that AI agents can discover and invoke through the Model Context Protocol. Each tool maps to a specific Safari automation capability (navigate, click, extract text, take screenshot, etc.) with typed parameters, return schemas, and error handling. Implements MCP server interface to advertise tool availability, handle invocation requests, and stream results back to client agents.","intents":["Allow Claude/other LLM agents to discover available Safari automation capabilities via MCP introspection","Invoke Safari commands from agent planning loops with structured parameter validation","Chain multiple Safari operations in agent workflows with automatic error propagation","Integrate Safari automation into multi-tool agent orchestration (combining with other MCP servers)"],"best_for":["AI agent builders using Claude or other MCP-compatible LLMs","Teams building multi-tool agent systems that need browser automation as one capability","Developers wanting standardized tool discovery and invocation patterns for Safari control","Agentic workflows requiring composable browser operations with clear input/output contracts"],"limitations":["Requires MCP client support — not compatible with direct REST API or gRPC clients","Tool discovery is static at server startup — dynamic tool registration not supported","No built-in tool caching or memoization — repeated identical operations re-execute against Safari","Error handling delegates to MCP protocol — no custom retry logic or fallback strategies built-in","Tool parameter validation is schema-based only — no runtime type coercion"],"requires":["MCP-compatible client (Claude API with MCP support, or local MCP client)","MCP server runtime environment","Safari 13+ on macOS 10.14+","Network connectivity between MCP client and server (local or remote)"],"input_types":["JSON-serialized tool parameters","MCP tool invocation requests","Typed parameter objects matching tool schemas"],"output_types":["JSON tool results","MCP resource responses","Structured error objects with error codes and messages"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_10","uri":"capability://automation.workflow.error.handling.and.page.state.validation","name":"error handling and page state validation","description":"Detects and reports automation errors including navigation failures, element not found errors, timeout conditions, and JavaScript execution errors. Implements page state validation to check for expected elements, error messages, or page conditions before proceeding. Returns structured error objects with error codes, messages, and context information. Supports conditional error handling in agent workflows.","intents":["Detect automation failures (broken selectors, missing elements, network errors)","Validate page state before proceeding with subsequent operations","Implement error recovery logic in agent workflows","Log detailed error information for debugging automation issues"],"best_for":["Robust automation workflows requiring error detection and recovery","Monitoring/validation workflows that need to detect page state changes","Debugging automation issues with detailed error context","Agent workflows with conditional error handling"],"limitations":["Error detection is heuristic-based — some errors may be missed or misclassified","No built-in error recovery — agents must implement recovery logic","Error context is limited to Safari's available information — some low-level errors may be opaque","Timeout detection requires configurable timeouts — default timeouts may not suit all workflows","No error aggregation — each operation reports errors independently"],"requires":["Safari 13+ with error reporting support","Proper error handling in agent code"],"input_types":["Page state validation queries","Error detection parameters"],"output_types":["Structured error objects with codes and messages","Page state validation results","Error context and debugging information"],"categories":["automation-workflow","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_2","uri":"capability://automation.workflow.silent.background.safari.automation.without.ui","name":"silent background safari automation without ui","description":"Executes Safari automation commands without displaying browser windows or UI elements, using AppleScript's background execution mode and Safari's headless-compatible operation flags. Commands run in Safari's background process without visual feedback, allowing agents to perform browser operations without interrupting user workflows or consuming screen real estate. Maintains full automation capability (navigation, interaction, data extraction) while remaining invisible to the user.","intents":["Run browser automation in background without disrupting user's active Safari windows","Execute scheduled/periodic browser tasks (monitoring, scraping) without visual noise","Perform multi-step browser workflows on headless/server macOS instances without display output","Integrate browser automation into unattended agent processes (cron jobs, daemon services)"],"best_for":["Unattended automation scenarios (scheduled tasks, server-side agents)","User-facing applications that need background browser operations without UI disruption","Resource-constrained environments where display rendering overhead matters","Privacy-sensitive workflows where visible browser windows could leak information"],"limitations":["Some Safari features may behave differently in background mode (e.g., media playback, notifications)","Debugging is harder — no visual feedback means errors are harder to diagnose without logging","User cannot visually verify automation progress — requires robust logging/monitoring","Background execution may have different timing characteristics than interactive Safari"],"requires":["macOS 10.14+ with AppleScript background execution support","Safari 13+","Proper macOS permissions for background process execution"],"input_types":["Safari automation commands (same as native automation capability)"],"output_types":["Structured results (HTML, metadata, screenshots) without visual display"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_3","uri":"capability://memory.knowledge.persistent.session.and.authentication.state.preservation","name":"persistent session and authentication state preservation","description":"Maintains Safari's native cookie store, session tokens, and authentication state across automation command sequences by operating against the same Safari process instance. Automation commands execute within the context of the user's existing Safari session, automatically inheriting all stored credentials, cookies, and login state without explicit session management or cookie jar manipulation. Leverages macOS Keychain integration for secure credential storage when needed.","intents":["Automate authenticated workflows (e.g., accessing user accounts) without re-entering credentials","Preserve multi-step login sessions across multiple automation operations","Avoid cookie/session management boilerplate in agent workflows","Leverage existing user authentication for automated tasks without credential exposure"],"best_for":["Workflows requiring authenticated access to web services (email, banking, SaaS platforms)","Multi-step automation sequences that depend on maintaining login state","Scenarios where credentials should not be passed through agent code (security-sensitive)","User-initiated automation that should inherit the user's existing browser session"],"limitations":["Session state is tied to Safari process — restarting Safari clears in-memory session data","No explicit session export/import — cannot easily transfer sessions between machines","Credential management relies on Safari's native storage — no custom encryption or rotation","Multi-user scenarios require separate Safari profiles, adding complexity","Session hijacking risk if Safari process is compromised — no additional isolation layer"],"requires":["User must be logged into Safari for target services before automation starts","macOS Keychain access (for credential storage)","Safari 13+ with native session management"],"input_types":["URLs requiring authentication","Form fields for credential entry (if re-authentication needed)"],"output_types":["Authenticated page content","Session validation indicators","Protected resource data"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_4","uri":"capability://data.processing.analysis.web.page.content.extraction.and.dom.querying","name":"web page content extraction and dom querying","description":"Extracts structured content from loaded Safari pages using CSS selectors, XPath expressions, and JavaScript evaluation. Supports querying page DOM to retrieve element text, attributes, computed styles, and nested structures. Returns extracted data as structured JSON objects with optional HTML sanitization. Implements efficient DOM traversal using Safari's native JavaScript engine rather than separate parsing libraries.","intents":["Extract specific data from web pages (prices, product names, article text) for agent processing","Query page structure to locate interactive elements before clicking/typing","Validate page load state by checking for expected DOM elements","Transform unstructured HTML into structured data for downstream agent tasks"],"best_for":["Web scraping workflows integrated into agent pipelines","Data extraction from dynamic pages (JavaScript-rendered content)","Validation steps in automation workflows (checking for expected page state)","Content transformation tasks (HTML → structured JSON)"],"limitations":["Selector-based extraction is brittle — page layout changes break selectors without updates","XPath support depends on Safari's JavaScript engine — some advanced XPath features may not work","Large DOM trees can cause performance issues — no built-in pagination or chunking","No automatic data type inference — extracted text is always strings, requires manual parsing","JavaScript evaluation runs in Safari's context — cannot access external APIs or modules"],"requires":["Page must be fully loaded in Safari before extraction","Valid CSS selectors or XPath expressions","Safari 13+ with JavaScript evaluation support"],"input_types":["CSS selector strings","XPath expressions","JavaScript code snippets","Element attribute names"],"output_types":["JSON objects with extracted properties","Text content strings","HTML fragments","Attribute value arrays"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_5","uri":"capability://automation.workflow.page.navigation.and.url.management","name":"page navigation and url management","description":"Controls Safari's navigation stack by loading URLs, handling redirects, managing browser history (back/forward), and detecting page load completion. Supports both direct URL navigation and relative link following. Implements load-state detection to wait for pages to fully render before returning control to agent, preventing race conditions in multi-step workflows. Handles redirect chains transparently.","intents":["Navigate to URLs as part of multi-step automation workflows","Wait for pages to load before extracting content or interacting with elements","Handle redirect chains (e.g., OAuth flows) without explicit redirect tracking","Manage browser history for workflows that need to revisit previous pages"],"best_for":["Multi-page automation workflows (login → search → results → detail page)","Workflows requiring reliable page load detection","Scenarios with redirect chains (OAuth, form submissions)","Agent workflows that need deterministic page state before proceeding"],"limitations":["Load detection is heuristic-based — some pages with lazy-loading content may report 'loaded' before all content is ready","No explicit timeout configuration — load detection may hang on slow/broken pages","Redirect handling is automatic but opaque — agents cannot inspect intermediate redirects","History navigation (back/forward) may fail if history is empty or disabled","No support for custom headers or request manipulation — uses Safari's default request handling"],"requires":["Valid URL format (http/https)","Network connectivity","Safari 13+ with navigation API support"],"input_types":["URL strings (absolute or relative)","Navigation commands (back, forward, reload)"],"output_types":["Final URL after redirects","Page load status (loaded/loading/error)","HTTP status codes (if available)","Page title and metadata"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_6","uri":"capability://automation.workflow.interactive.element.manipulation.click.type.scroll","name":"interactive element manipulation (click, type, scroll)","description":"Simulates user interactions with page elements including mouse clicks, keyboard input, and scrolling operations. Supports clicking by CSS selector or coordinates, typing text into form fields with optional key modulation (shift, ctrl, etc.), and scrolling to specific elements or coordinates. Implements element visibility checking before interaction to prevent clicking hidden elements. Uses AppleScript event simulation for native input handling.","intents":["Click buttons, links, and interactive elements to trigger page actions","Fill form fields with text input for login, search, or data entry workflows","Scroll pages to reveal content or navigate to specific elements","Simulate keyboard shortcuts (Cmd+A, Ctrl+C, etc.) for advanced interactions"],"best_for":["Form automation workflows (login, search, data entry)","Click-based navigation (button clicks, link following)","Workflows requiring keyboard input or shortcuts","Scrolling-dependent content (infinite scroll, lazy-loaded pages)"],"limitations":["Element visibility checking is heuristic — may fail on elements with complex CSS (opacity, transforms)","No support for drag-and-drop operations — only click and type","Keyboard input is limited to text and modifier keys — no special key sequences (F1-F12, media keys)","Coordinate-based clicking is fragile — page layout changes break coordinate references","No multi-touch or gesture support — single-touch interactions only"],"requires":["Element must be visible and interactive (not disabled, hidden, or covered)","Valid CSS selector or coordinate tuple","Safari 13+ with event simulation support"],"input_types":["CSS selectors for element targeting","Coordinate tuples (x, y) for position-based clicking","Text strings for keyboard input","Modifier key flags (shift, ctrl, cmd, alt)"],"output_types":["Boolean success/failure indicators","Error messages for failed interactions","Updated page state after interaction"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_7","uri":"capability://image.visual.screenshot.capture.and.visual.validation","name":"screenshot capture and visual validation","description":"Captures full-page or viewport screenshots of Safari pages in PNG or JPEG format, with optional element-specific cropping. Screenshots include rendered CSS, JavaScript-generated content, and current page state. Supports both full-page captures (including off-screen content via scrolling) and viewport-only captures. Returns image data as base64-encoded strings or file paths for integration with vision models or visual validation workflows.","intents":["Capture page state for visual validation in automated workflows","Generate screenshots for debugging automation issues","Feed visual content to vision models for page understanding or OCR","Document page state changes across automation steps"],"best_for":["Visual regression testing in automation workflows","Debugging automation issues by inspecting rendered page state","Workflows combining browser automation with vision models (e.g., Claude Vision)","Documentation/logging of automation execution"],"limitations":["Full-page screenshots require scrolling — may miss dynamic content that loads on scroll","Image size can be large — base64 encoding adds ~33% overhead vs binary format","No built-in image comparison — visual validation requires external vision model or diff tool","Screenshot timing is non-deterministic — animations/transitions may be captured mid-frame","Element cropping requires accurate selector/coordinate mapping — brittle to layout changes"],"requires":["Page must be loaded and rendered in Safari","Sufficient disk space for image storage (if saving to file)","Safari 13+ with screenshot API support"],"input_types":["Screenshot type (full-page, viewport, element-specific)","Image format (PNG, JPEG)","CSS selector or coordinates for element cropping","Quality/compression settings"],"output_types":["Base64-encoded image data","File paths to saved images","Image metadata (dimensions, format)"],"categories":["image-visual","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_8","uri":"capability://code.generation.editing.javascript.execution.and.page.evaluation","name":"javascript execution and page evaluation","description":"Executes arbitrary JavaScript code within Safari's page context, with access to the DOM, window object, and page-loaded libraries. Returns JavaScript evaluation results as JSON-serializable values. Supports both synchronous execution and promise-based async operations. Enables complex page interactions and data extraction that cannot be expressed through declarative selectors. Runs code in the page's global scope with full access to page state.","intents":["Execute complex page logic that requires JavaScript (e.g., triggering React state changes)","Extract data using custom JavaScript logic (e.g., parsing JSON from page variables)","Interact with page-loaded libraries (jQuery, React, Vue, etc.) for advanced automation","Validate page state by evaluating JavaScript expressions"],"best_for":["Single-page applications (SPAs) requiring JavaScript-based interaction","Workflows needing access to page-loaded libraries or frameworks","Complex data extraction that requires custom logic","Validation steps requiring JavaScript evaluation"],"limitations":["JavaScript execution is sandboxed to page context — cannot access external APIs or modules","Async operations require promise handling — no automatic await for async functions","Code must be JSON-serializable — complex objects may not round-trip correctly","No access to Node.js APIs or external packages — only browser APIs available","Execution timeout is not configurable — long-running scripts may hang"],"requires":["Page must be loaded in Safari","JavaScript must be enabled in Safari","Code must be valid JavaScript syntax","Return values must be JSON-serializable"],"input_types":["JavaScript code strings","Function definitions","Promise-based async code"],"output_types":["JSON-serializable values (primitives, objects, arrays)","Undefined/null for void operations","Error objects for failed execution"],"categories":["code-generation-editing","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"smithery_achiya-automation-safari-mcp__cap_9","uri":"capability://automation.workflow.multi.tab.and.window.management","name":"multi-tab and window management","description":"Controls Safari's tab and window management including creating new tabs, switching between tabs, closing tabs, and managing multiple windows. Supports tab enumeration to discover open tabs and their URLs/titles. Implements tab context switching to execute subsequent commands in specific tabs. Enables workflows that require parallel operations across multiple tabs or windows.","intents":["Open multiple tabs for parallel data collection or monitoring","Switch between tabs to perform sequential operations on different pages","Close tabs to clean up after automation steps","Enumerate open tabs to discover page state across multiple contexts"],"best_for":["Workflows requiring parallel operations across multiple pages","Monitoring scenarios (multiple pages simultaneously)","Complex workflows with multiple sequential page interactions","Cleanup operations (closing tabs after automation)"],"limitations":["Tab switching is sequential — no true parallel execution across tabs","Tab context is not isolated — shared cookies/session state across tabs","No support for tab groups or organization — flat tab list only","Window management is basic — no window positioning or sizing","Tab enumeration may be slow with many open tabs"],"requires":["Safari 13+ with tab management API support","Valid tab identifiers or indices"],"input_types":["Tab creation requests","Tab indices or identifiers","Window management commands"],"output_types":["Tab list with URLs and titles","Tab creation confirmation","Current tab context indicator"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":33,"verified":false,"data_access_risk":"high","permissions":["macOS 10.14+ (Mojave or later for full Automation framework support)","Safari 13.0+","AppleScript enabled in System Preferences > Security & Privacy > Automation","MCP server runtime (Node.js 16+ or equivalent)","MCP-compatible client (Claude API with MCP support, or local MCP client)","MCP server runtime environment","Safari 13+ on macOS 10.14+","Network connectivity between MCP client and server (local or remote)","Safari 13+ with error reporting support","Proper error handling in agent code"],"failure_modes":["macOS-only — no Windows or Linux support due to AppleScript/Automation framework dependency","Safari version compatibility may vary; requires Safari 13+ for full AppleScript API coverage","No cross-browser support — locked to Safari, cannot automate Chrome/Firefox/Edge","AppleScript execution adds ~100-300ms latency per command vs native WebDriver","Limited to Safari's exposed automation API surface — some advanced browser features may be inaccessible","Requires MCP client support — not compatible with direct REST API or gRPC clients","Tool discovery is static at server startup — dynamic tool registration not supported","No built-in tool caching or memoization — repeated identical operations re-execute against Safari","Error handling delegates to MCP protocol — no custom retry logic or fallback strategies built-in","Tool parameter validation is schema-based only — no runtime type coercion","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.47,"ecosystem":0.48999999999999994,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:25.061Z","last_scraped_at":"2026-05-03T15:19:36.243Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=achiya-automation-safari-mcp","compare_url":"https://unfragile.ai/compare?artifact=achiya-automation-safari-mcp"}},"signature":"VF/QHoJgHIdBeP5F7agDByte4r2lTPjWa5qUsmal2Da0nNPfJZJNwMRJqdWC4GEVODFKR6HvUG7L58a1qBQUCw==","signedAt":"2026-06-20T20:27:06.687Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/achiya-automation-safari-mcp","artifact":"https://unfragile.ai/achiya-automation-safari-mcp","verify":"https://unfragile.ai/api/v1/verify?slug=achiya-automation-safari-mcp","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}