@elsm/mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Fixed WebSocket port for the local bridge (default 39231). Set via `--port <n>`. | 39231 |
| selftest | No | Run the internal smoke test (real WS roundtrip) and exit. Enabled via `--selftest`. | |
| token-file | No | Pairing token file path (default `~/.elsm-bridge/token`). Set via `--token-file <f>`. | |
| print-config | No | Print paste-ready config stanzas for common clients and exit. Enabled via `--print-config`. | |
| ELSM_TOKEN_FILE | No | Path to the pairing token file (default `~/.elsm-bridge/token`). Equivalent to the `--token-file` option. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_storage_areasA | List what the bridge can operate on for the current target: origin, storage areas present, IndexedDB database names. |
| get_targetA | Describe the active target the agent is operating on: tab id, URL and origin, title. No secrets. |
| read_storageA | Read keys from localStorage or sessionStorage of the active tab's origin. Params: area (required), key (single key) or prefix (all keys beginning with the prefix); omit both for everything. (Cookies are not an area here — use read_cookies.) |
| read_cookiesA | Read all cookies visible to the active tab (name, domain, path, secure, httpOnly, sameSite, session). Params: rawCookieValues (boolean) — values are returned as "" unless the user has explicitly granted raw-value consent in the extension UI; without consent the call still succeeds but values stay redacted. |
| write_storageA | Write entries into localStorage or sessionStorage of the active tab's origin. Params: area (required), entries ([{key, value}] as JSON-serializable strings). Every write is appended to the sidebar changelog so the user sees it. |
| delete_keysC | Delete keys from localStorage or sessionStorage on the active tab's origin. Params: area (required), keys (required array). |
| clear_areaA | Clear an entire area (every key) for the active tab's origin. Destructive: requires BOTH (1) confirm: true in the call — pass it on the retry after receiving needsConfirmation — and (2) the user pressing 'Clear' in the ELSM sidebar Agent panel within 60s before the retry. Params: area (required), confirm (boolean). |
| read_indexeddbA | Cursor-paged, JSON-safe read of an IndexedDB object store on the active tab's origin. Params: db (required), store (required), cursor (number offset from a previous call's nextCursor), limit (default 200, max 1000). |
| export_stateA | Export the storage snapshot of the active tab's origin: origin, localStorage, sessionStorage, and cookie metadata (cookie values always redacted). Params: rawCookieValues (boolean, ignored — kept for compatibility). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools target clearly distinct operations (read_cookies vs read_storage vs read_indexeddb vs get_target vs list_storage_areas), and descriptions explicitly disambiguate, e.g. read_storage notes 'Cookies are not an area here — use read_cookies.' The main overlap is export_state, which produces a full snapshot of the same storage areas read_storage reads, so an agent could reasonably pick either for 'dump everything.'
All nine names follow a consistent snake_case verb_noun convention (read_cookies, write_storage, delete_keys, clear_area, export_state, etc.), including the multi-word list_storage_areas and read_indexeddb. No style mixing.
Nine tools sit comfortably in the 3-15 sweet spot and each maps to a concrete capability (read/write/delete/clear across storage areas, cookies, IndexedDB, target introspection, export). Nothing feels padded or missing at the count level.
Storage lifecycle is well covered (read/write/delete/clear/list plus export), but the surface is asymmetric: cookies and IndexedDB are read-only with no write/delete counterparts, likely by design for safety. An agent could still be blocked if it needs to set a cookie or modify an IndexedDB store, though those are arguably out of scope for a read-inspection bridge.