← Discover MCPs and Agents
E
MCPAI & MLMCP Registry

Exnos

Read-only live state of your Chrome tabs for AI agents: fields, console errors, network, storage.

Links

README

From the repo.

Exnos

Live browser-state verification for AI coding agents.

Your AI says "done." Exnos is how it knows.

One tool call returns the full state of the Chrome tab you're looking at: every field, every button, every console error, network requests, storage, performance—in milliseconds. Read-only. Local. Free to use. Built by GOL Productions.

By GOL Productions.


The Problem

AI coding agents edit files and hope for the best. When something breaks:

You: "The button doesn't work"
AI:  "Can you check the console for errors?"
You: "It says TypeError something something"
AI:  "Can you paste the full error?"

Back and forth. Slow. Frustrating.

The Solution

You: "The button doesn't work"
AI:  [calls exnos_verify]
AI:  "Console shows 'TypeError: handleClick is not defined' at line 47.
      The handler was renamed to onClick. Fixing now."

Exnos gives your AI eyes. It sees what you see—instantly.


Install

npx @golproductions/exnos@latest setup

That's it. Detects Claude Code, Cursor, and Windsurf—registers with all of them, opens the extension folder, tells you to load it in Chrome. Takes 30 seconds.

Manual install

1. Connect your agent

{ "mcpServers": { "exnos": { "command": "npx", "args": ["@golproductions/exnos"] } } }

Or for Claude Code:

claude mcp add --scope user exnos -- npx @golproductions/exnos

2. Load the extension

npx @golproductions/exnos@latest path

Open chrome://extensions → Developer mode → Load unpacked → select that folder.

Badge reads ON when connected.


What Exnos Can Read

  • Local pages, always: localhost, 127.0.0.1, *.localhost, and local files.
  • Any other site, only if you allow it: open the site and click the Exnos icon in Chrome's toolbar. Click again to remove it. Your AI cannot allow a site.
  • Tabs on other sites are not listed, matched or described to your AI.
  • The console and network capture runs only on sites Exnos can read. A page that was already open when you allowed its site needs one reload before its console and network are captured.

What It Sees

CategoryData
IdentityURL, title, ready state
FormsEvery visible field with its live value (passwords, API keys, tokens, card numbers and seed phrases masked)
ButtonsText and disabled state
CheckboxesChecked state with labels
AlertsVisible error/success/warning UI
ConsoleErrors (with message and stack), warnings, and failed resource loads since page load, counted separately
NetworkThis site's fetch/XHR: URL, status, short response body. Failures first. Other sites' requests only on request.
WebSocketSent and received frames
PerformancePage load, TTFB, paint timing
FocusWhich element has focus
Shadow DOMPierces web component boundaries
IframesSame-origin content + cross-origin count
ScreenshotOptional PNG capture

Only when asked: localStorage, sessionStorage and cookies (includeStorage, with tokens, keys and session values redacted), requests to other sites (thirdParty), and window.__* app state (appGlobals).


Tools

ToolPurpose
exnos_verifyFull live state. The main tool.
exnos_tabsList the tabs Exnos can read.
exnos_screenshotPNG screenshot of visible tab.
exnos_fetch_tabsVerify multiple tabs at once.

exnos_verify parameters

ParameterDescription
tabMatch tab by URL or title substring. Default: active tab.
selectorCSS selector for deep-dive: text, bounds, computed styles, HTML.
includeHiddenInclude off-screen elements. Default: false.
thirdPartyInclude requests to other sites. Default: false.
includeStorageInclude storage and cookies, credentials redacted. Default: false.
appGlobalsInclude window.__* app state. Default: false.
screenshotAlso capture PNG of the visible tab. Returns data URL.

Selector deep-dive

Pass selector to get the following. If nothing matches, the reply is only selectorFound: false.

  • selectorText — inner text content
  • selectorVisible — actually visible?
  • selectorBounds — {top, left, width, height}
  • selectorHTML — outer HTML
  • selectorStyles — computed: color, backgroundColor, fontSize, fontWeight, fontFamily, padding, margin, border, zIndex, overflow, transform, transition

CLI

npx @golproductions/exnos@latest setup       # configure everything
npx @golproductions/exnos@latest uninstall   # remove everything Exnos added (run it in each project where you ran init)
npx @golproductions/exnos@latest path        # extension folder path
npx @golproductions/exnos@latest init        # write rules to agent config
npx @golproductions/exnos@latest rules       # print rule text

Architecture

┌─────────────┐     MCP/stdio      ┌─────────────┐    WebSocket     ┌─────────────┐
│  AI Agent   │ ◄────────────────► │ MCP Server  │ ◄──────────────► │  Extension  │
│             │                    │ :17872      │                  │             │
└─────────────┘                    └─────────────┘                  └──────┬──────┘
                                                                           │
                                                                    Chrome APIs
                                                                           │
                                                                    ┌──────▼──────┐
                                                                    │   Your Tab  │
                                                                    └─────────────┘

Smart Features

  • State change detection: Reports changed: true/false on repeated calls
  • Proxy mode: Multiple agents share one extension connection
  • Auto-reconnect: Extension reconnects after Chrome/server restart
  • Failures first: Network errors surface before successful requests
  • Cross-origin awareness: Reports iframe count even when content isn't readable
  • Out of the page's reach: what Exnos captures is kept where the page's own scripts cannot read or change it
  • Untrusted content label: replies tell the AI that page text is data, not instructions

Privacy

Exnos sends nothing to GOL Productions. No account, no telemetry, and no GOL server. Traffic goes from the extension to a local server on 127.0.0.1, which only accepts the Exnos extension and requests from this machine: a web page cannot connect to it.

However: what Exnos returns goes to your AI agent, which forwards it to its model provider. That is why Exnos reads only local pages and the sites you allow, masks passwords and similar fields, and returns storage and cookies only when asked, with credentials redacted. Redaction works by pattern, so it can miss a secret in an unusual place.

Allow the sites you are debugging, not your banking tab.


Notes

  • Server: 127.0.0.1:17872. The Chrome extension always connects on this port, so keep it free.
  • GET / returns {"exnos":true,"extension":true|false}
  • Console/network capture starts when a page loads on a site Exnos can read; pages already open need one reload
  • Internal pages (chrome://) cannot be inspected

License

Free to use, personal or commercial, under the GOL Free License. Exnos is built by GOL Productions: you may use it and share unmodified copies with the credit, but not publish changed versions, build your own product from it, or sell it. What you make with it is yours. See LICENSE.


GOL Productions

Exnos is part of the GOL Productions toolchain.

  • Check — Anti-hallucination layer for Claude Code
  • Envie — AI video rendering with verification

Product page · GitHub

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.