Neo Vision

by matthewalexong

119 downloads
Not rated
GitHub

About

Give your AI agent a pixel-precise spatial map of every element on a web page — coordinates, ARIA roles, accessible labels, and actionability flags — without screenshots, without brittle CSS selectors, without getting blocked by anti-bot systems. Built-in stealth layer patches ev

Details

Author
matthewalexong
Downloads
119
Categories
Web Scraping, Other

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Neo Vision
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

{
  "mcpServers": {
    "neo-vision": {
      "command": "npx",
      "args": [
        "neo-vision"
      ]
    }
  }
}

spatial_snapshot

Navigate to a URL and return a spatial map of the page. Launches a real Chrome browser automatically — no setup required. **Output modes** (controlled by output_format parameter): - 'compact' (default): Returns every visible element with pixel coordinates, ARIA roles, accessible labels, and actionability flags. Use the click_center coordinates from each element to target it with spatial_click or spatial_type. - 'agent': Optimized for AI agent context windows on text-dense pages (Wikipedia, Amazon, long articles). Returns: * 'page_text': deduplicated readable text from the current viewport (overlapping DOM nodes collapsed by position via 2-pass dedup: 10px grid + substring elimination, JS code stripped, text limited to 120 chars) * 'interactive_elements': only actionable elements within the viewport, with their click_center coordinates. Elements are strictly confined to viewport bounds — wide-layout pages (multi-column) won't leak off-screen elements. * 'viewport_info': scroll position, page height, percent_seen, percent_remaining — tells you how much more content is below * '_navigation': a hint with the exact spatial_scroll delta to use to advance to the next viewport **When to use agent mode**: On any page that returns 1000+ elements in compact mode, or when you need the readable text content for research/summarization tasks. After calling spatial_scroll(delta_y=...), re-call spatial_snapshot with output_format='agent' to get the next viewport's content. **Note**: The full DOM map is always cached server-side. You do NOT need to re-snapshot after clicks, typing, or scrolling — every action returns an updated map automatically. Re-snapshot with the same URL only when you want to reload or switch URLs. The browser session persists across calls. Calling this again with a different URL navigates to that URL. Calling with the same URL reloads it.

spatial_click

Click an element on the page at exact pixel coordinates. Use the click_center.x and click_center.y values from a spatial_snapshot element. Returns an updated spatial map reflecting the page state after the click (including any navigation, modals, or DOM changes triggered by the click). You do NOT need to call spatial_snapshot again after clicking. Requires an active session — call spatial_snapshot first to open a page.

spatial_type

Type text into an element. If x/y coordinates are provided, clicks that position first to focus the element, then types. Otherwise types into whatever element currently has focus. Set clear_first=true to replace existing text (selects all + deletes before typing). Set press_enter=true to submit after typing (useful for search boxes). Returns an updated spatial map. Requires an active session — call spatial_snapshot first.

spatial_scroll

Scroll the page or a specific scrollable container. Use delta_y with positive values to scroll down, negative to scroll up. Optionally target a specific scrollable element by passing its x/y coordinates. Returns an updated spatial map reflecting the new scroll position and any newly visible elements. Requires an active session — call spatial_snapshot first.

spatial_query

Filter the current spatial map without re-loading the page. Search for elements by ARIA role, HTML tag, label text, bounding box region, or actionability. Much faster than taking a new snapshot — use this when the page hasn't changed and you need to find specific elements. Requires a prior spatial_snapshot call (uses the cached map).

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "neo vision": {
            "neo-vision": {
                "command": "npx",
                "args": [
                    "neo-vision"
                ]
            }
        }
    }
}

McpServers

{
    "neo-vision": {
        "command": "npx",
        "args": [
            "neo-vision"
        ]
    }
}

Enable AI agents to get structured data from unstructured web with AgentQL.

Web scraping, crawling, and change detection with AI

Official Apify MCP server for AI agents to run Actors, extract website data, and automate web scraping and crawling workflows.

1GB Free Trial, World's Leading Proxy Service Platform, Efficient Data Collection

Discover, extract, and interact with the web - one interface powering automated access across the public internet.

Automate browser interactions in the cloud (e.g. web navigation, data extraction, form filling, and more)

Easy web data access. Simplified retrieval of information from websites and online sources.

Adds powerful web scraping and search capabilities to LLM clients like Cursor and Claude.

Real-time web data, structured for agents

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.