site-sense
site-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
git clone https://github.com/YotamNordman/site-sense.git
cd site-sense
npm install && npm run build
npm run setup -- --browser edge # or chromeLoad the extension in your browser:
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 + screenshotTwo MCP tools:
Tool | What it does |
| Accessibility tree + screenshot of active tab |
| 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 |
|
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 + |
Tests | vitest — 11 tests, <1s |
Bundle | 9KB extension, 7 total deps |
Troubleshooting
Symptom | Fix |
| Extension not loaded, or ID mismatch. Check |
| Navigate to an |
Content script not responding | Click the extension icon on the page, or enable all-sites mode. |
Extension icon grayed out | Reload the extension at |
Docs
Doc | Purpose |
Threat model, DLP compliance |
License
Apache-2.0
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/YotamNordman/site-sense'
If you have feedback or need assistance with the MCP directory API, please join our Discord server