About Site Sense
Site Sense gives AI coding CLIs an accessibility tree and screenshot of the active browser tab through an extension. Its local, read-only, memory-only design suits coding tasks that involve web portals.
Key features
- 01Capture the active tab’s accessibility tree
- 02Capture a screenshot of the active tab
- 03Check connection and session approval
- 04Use local communication without persistent storage
- 05Read pages without modifying them
Use cases
- 01Let a coding agent inspect a web portal
- 02Review settings in a cloud portal
- 03View the current page during a CLI session
MCP support
The MCP server connects to the browser extension through a local bridge and exposes tools for capturing the active tab and checking connection status.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEsite-sense
Give your AI coding CLI eyes into web portals. No cloud. No storage. Read-only.
You're in a conversation with your AI assistant. It says "go to the Azure Portal and check the NSG rules." You alt-tab, navigate, screenshot, describe what you see, paste it back. You are the human middleware.
site-sense eliminates this. The AI calls an MCP tool → your browser extension captures the active tab → the AI sees what you see.
Quick Start
Option A: Install from Chrome Web Store (recommended)
- Install site-sense from the Chrome Web Store
- Clone the repo and run setup:
git clone https://github.com/NordmanLive/site-sense.git
cd site-sense
npm install && npm run build
npm run setup -- --browser chrome # or edge
Option B: Load unpacked (development)
git clone https://github.com/NordmanLive/site-sense.git
cd site-sense
npm install && npm run build
npm run setup -- --browser chrome # or edge
Then load the extension manually:
- Open
edge://extensions(orchrome://extensions) - Enable Developer mode
- Click Load unpacked → select
dist/extension/
Add to your CLI's MCP config:
{
"mcpServers": {
"site-sense": {
"command": "node",
"args": ["/path/to/site-sense/dist/bridge/src/index.js"]
}
}
}
Then ask your AI: "What's on my browser tab?"
First time → popup appears → click Allow → done. All subsequent captures are automatic until you close the terminal.
How It Works
CLI (Claude Code / Copilot CLI)
↕ stdin/stdout (MCP protocol)
MCP Server (TypeScript)
↕ Unix domain socket (no network)
Native Host (thin relay)
↕ Chrome native messaging (stdio)
Extension (TypeScript, Manifest V3)
↕ inject → content → background
Browser Tab → accessibility tree + screenshot
Two MCP tools:
| Tool | What it does |
|---|---|
site_sense_capture | Accessibility tree + screenshot of active tab |
site_sense_status | Check connection and session approval |
Permission Modes
| Mode | What happens | Install warning |
|---|---|---|
| Default | Click extension icon per page to grant access | None |
| All-sites | Toggle in popup → captures work on any page | One-time prompt |
All-sites permission is revoked when the CLI session ends.
Security
| Principle | How |
|---|---|
| No network | Native messaging (stdio) — invisible to DLP |
| No storage | Memory only — gone when CLI disconnects |
| No write ops | Never clicks, types, or modifies pages |
| No broad perms | activeTab + scripting + nativeMessaging |
| No secrets captured | Skips form values, strips URL tokens |
| Session-scoped | Permission resets every CLI session |
See SECURITY.md for threat model and DLP compliance.
Architecture
Three-layer extension pipeline:
| Layer | Context | Role |
|---|---|---|
| Inject | Page (world: MAIN) | Walks DOM, builds compact accessibility tree |
| Content | Isolated | Relays capture via postMessage (origin-validated) |
| Background | Service worker | Native messaging, session state, screenshot |
Tech Stack
| Component | Technology |
|---|---|
| Extension | TypeScript + Vite |
| MCP Server | TypeScript + @modelcontextprotocol/sdk + zod |
| Tests | vitest — 10 tests, <1s |
| Bundle | 9KB extension, 7 total deps |
Troubleshooting
| Symptom | Fix |
|---|---|
connected: false | Extension not loaded, or ID mismatch. Check edge://extensions. |
Cannot capture | Navigate to an http:// or https:// page. |
| Content script not responding | Click the extension icon on the page, or enable all-sites mode. |
| Extension icon grayed out | Reload the extension at edge://extensions. |
Docs
| Doc | Purpose |
|---|---|
| SECURITY.md | Threat model, DLP compliance |
License
Apache-2.0
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.