Neo Vision
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
Jump to
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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Neo VisionCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- 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
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




