{"name":"io.github.woladi/macos-vision-mcp","slug":"woladi-macos-vision-mcp","title":null,"description":"Local OCR & screen understanding for agents: read any window, find what to click. No uploads.","url":"https://mcp.market/server/woladi-macos-vision-mcp","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":29,"stars":8,"forks":0,"downloads_week":97,"last_push_at":"2026-08-25T18:16:32.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/woladi/macos-vision-mcp","website":null,"version":"0.7.0","remotes":[],"packages":[{"registryType":"npm","identifier":"macos-vision-mcp","version":"0.7.0","transport":{"type":"stdio"}}],"tools":[{"name":"analyze_document","description":"Run a full analysis pipeline on a local image or PDF and return structured JSON for document reconstruction: OCR (with line/paragraph grouping in reading order), face detection, barcode/QR detection, and rectangle detection — all in parallel, fully offline, no API key needed. USE WHEN: The user wants the model to reconstruct a document into Markdown, HTML, DOCX, or any other format — invoices, sca","write_action":true,"price_micros":0,"input_schema":null},{"name":"assert_text","description":"Assert that text is present on (or absent from) the screen, a window, or a pre-captured image — a local pass/fail verdict computed on this machine. The deterministic check runs here; no screenshot and no OCR dump needs to reach a cloud model for a UI test to pass. USE WHEN: Verifying UI state after an action: \"the dialog says Saved\", \"the error banner is gone\", \"all three menu items are visible\". ","write_action":false,"price_micros":0,"input_schema":null},{"name":"capture_screen","description":"Take a screenshot locally — of the main display, a specific window, an app's frontmost window, or a screen region. The image is saved to disk and NEVER returned to the model: you get back the file path plus geometry, so follow-up OCR/assertion tools can map results to screen coordinates. USE WHEN: Starting any UI check. Then chain: read_screen_text / find_element / assert_text on the returned path","write_action":false,"price_micros":0,"input_schema":null},{"name":"classify_image","description":"Classify the content of a local image into categories using Apple Vision (offline, no API key needed). USE WHEN: The user wants to know what is depicted in an image — objects, scenes, activities, animals, food, etc. Works with 1000+ categories and returns confidence scores. DO NOT USE for: text extraction (use ocr_image), face/barcode detection (dedicated tools), images that need detailed visual d","write_action":false,"price_micros":0,"input_schema":null},{"name":"detect_barcodes","description":"Detect and decode barcodes or QR codes in a local image file using Apple Vision (offline, no API key needed). USE WHEN: The user wants to read a QR code, barcode, EAN, UPC, Code128, PDF417, Aztec, DataMatrix or other 1D/2D code from a local file. DO NOT USE for: text extraction (use ocr_image), face detection (use detect_faces). Supported symbologies: QR, EAN-8, EAN-13, UPC-E, Code39, Code93, Code","write_action":false,"price_micros":0,"input_schema":null},{"name":"detect_document","description":"Detect the boundary of a document in a local image using Apple Vision (offline, no API key needed). USE WHEN: The user has a photo of a piece of paper, a receipt, a card, an ID, or any rectangular document and wants the four corner points — typically as a hint for cropping, deskewing, or straightening the image before further OCR. DO NOT USE for: reading the document text (use ocr_image), classify","write_action":false,"price_micros":0,"input_schema":null},{"name":"detect_faces","description":"Detect human faces in a local image file using Apple Vision (offline, no API key needed). USE WHEN: The user wants to know how many faces are in a local image, or needs their positions. DO NOT USE for: text extraction (use ocr_image), barcode reading (use detect_barcodes). Returns: JSON with the total face count and an array of face positions expressed as percentage of image dimensions (top, left,","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_element","description":"Find a UI element by its visible text and return WHERE TO CLICK — center coordinates in global screen points, ready to hand to any input driver (macos-mcp Click, cliclick, CGEvent). Capture, OCR, and matching all run locally; no screenshot is ever sent to the model or the cloud. USE WHEN: An agent needs to click/interact with something it can name (\"click Save\", \"focus the search field\") — this re","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_windows","description":"List on-screen application windows with their global screen-point bounds — front-to-back order (first window of an app = its frontmost one). USE WHEN: You need a windowId for capture_screen / find_element, or want to know what apps are visible before testing their UI. Returns: JSON { titlesAvailable, note?, windows: [{ windowId, app, pid, title, x, y, w, h, layer, isOnScreen }] }. Coordinates are ","write_action":false,"price_micros":0,"input_schema":null},{"name":"ocr_image","description":"Extract text from a local image or PDF file using Apple Vision OCR (offline, no API key needed). USE WHEN: The user provides a local file path to an image, screenshot, scanned document, or PDF and wants to extract the text from it. DO NOT USE for: images hosted on URLs (download first), non-macOS systems, or when the user wants face/barcode detection (use the dedicated tools). Supported formats: j","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_screen_text","description":"Capture the screen (or a window/app/region) and OCR it in one step — fully local, the screenshot never leaves this machine. Returns the visible text so you can check UI state without sending any image to the cloud. USE WHEN: \"What does the screen/app show right now?\", verifying a dialog appeared, reading an error message, checking state after an action. Parameters: same targeting as capture_screen","write_action":false,"price_micros":0,"input_schema":null},{"name":"ui_snapshot","description":"Return the layout of an app's window as structured JSON: every element's exact box, role, label and state from the macOS accessibility tree, optionally with colours and fonts — plus the visible text the tree does NOT account for. All computed on this Mac; the screenshot it takes never reaches the model. USE WHEN: You need to understand or reconstruct a layout rather than just find one element — \"w","write_action":false,"price_micros":0,"input_schema":null},{"name":"vision_capabilities","description":"Report what this machine can do: macOS version, Screen Recording / Accessibility permission state, available displays (with point sizes and Retina scale), and capture engine status. USE WHEN: Before starting a UI-testing session, or when capture/OCR tools fail unexpectedly — this tells you whether the problem is a missing permission and what to tell the user. Returns: JSON { macosVersion, helperVe","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":88,"grade":"A","scanned_at":"2026-10-31T17:27:59.756Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-31T17:27:59.710Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":12,"max":15,"notes":["last push 67 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"macos-vision-mcp","version":"0.7.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-08-25T18:15:09.933Z","repositoryUrl":"git+https://github.com/woladi/macos-vision-mcp.git","weeklyDownloads":97}],"repo":{"found":true,"owner":"woladi","repo":"macos-vision-mcp","archived":false,"pushedAt":"2026-08-25T18:16:32Z","stars":8,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/15631142?v=4","ownerCreatedAt":"2015-11-03T13:09:17Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/woladi/macos-vision-mcp/master/.github/assets/logo.svg","source":"registry"},"presence":{"stars":8,"forks":0,"downloadsWeek":97,"license":"MIT","lastPushAt":"2026-08-25T18:16:32.000Z","score":29}}}},"grade_history":[],"reviews":[]}