Tenmomo Browser Broker

Tenmomo.ai Browser Agent

A local browser hand for MCP-capable coding agents. One persistent broker owns the Chrome extension connection while multiple clients connect over standard MCP Streamable HTTP. Each MCP session may control only tabs that it created.

Architecture

MCP clients ── http://127.0.0.1:32146/mcp ─┐
stdio clients ── server.mjs ───────────────┤
                                            ▼
                              local broker + policy
                                            │
                              ws://127.0.0.1:32145
                                            │
                                  Chrome MV3 extension

Both listeners are loopback-only. The extension authenticates to the broker with a locally generated pairing credential. Browser data is processed locally and is not sent to Tenmomo.

Requirements

Install from source

npm ci
npm run setup

setup generates local configuration but does not load or restart a service. Load extension/ as an unpacked extension for development. Packaged builds use manifest.store.json and prompt from the side panel for optional page access.

Start the broker directly for development:

npm start

Connect MCP clients to http://127.0.0.1:32146/mcp. Stdio-only clients can run:

node server.mjs

Security model

Permissions

The store profile statically requests activeTab, sidePanel, storage, and tabs. It requests scripting and <all_urls> only through a user gesture. The local development profile has static all-site access.

Verify and package

npm test
npm run validate
npm run package

Packaging emits a Chrome Web Store profile ZIP in dist/, strips source-only manifests and local examples, and writes an empty pairing credential.

Client recipes

Privacy and license

See PRIVACY-POLICY.md. This project is licensed under the MIT License.