Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.t3ratech/mcp-session-bridge

NPM · @T3RATECH/MCP-SESSION-BRIDGE · SCANNED SEP 20

Drive a browser you are already signed into, through the free T3rnel Browser extension.

+3 this week 81 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability78
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3047 tokens (~138/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
  • Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the io.github.t3ratech/mcp-session-bridge server?

io.github.t3ratech/mcp-session-bridge runs locally as an npm package, launched with npx -y @t3ratech/mcp-session-bridge. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @t3ratech/mcp-session-bridge

# add to Claude Code
claude mcp add t3ratech-mcp-session-bridge -- npx -y @t3ratech/mcp-session-bridge
// .cursor/mcp.json
{
  "mcpServers": {
    "t3ratech-mcp-session-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "@t3ratech/mcp-session-bridge"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "t3ratech-mcp-session-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "@t3ratech/mcp-session-bridge"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add t3ratech-mcp-session-bridge -- npx -y @t3ratech/mcp-session-bridge
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "t3ratech-mcp-session-bridge": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@t3ratech/mcp-session-bridge"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add t3ratech-mcp-session-bridge --command npx --arg -y --arg @t3ratech/mcp-session-bridge
# ~/.hermes/config.yaml
mcp_servers:
  t3ratech-mcp-session-bridge:
    command: "npx"
    args: ["-y", "@t3ratech/mcp-session-bridge"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "t3ratech-mcp-session-bridge": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@t3ratech/mcp-session-bridge"
      ]
    }
  }
}
# add to Vellum
assistant mcp add t3ratech-mcp-session-bridge -t stdio -c npx -a -y @t3ratech/mcp-session-bridge
// mcp.json
{
  "mcpServers": {
    "t3ratech-mcp-session-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "@t3ratech/mcp-session-bridge"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 7 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 6 Sept 26 +15
    • Malware scan: unverified → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/@t3ratech/mcp-session-bridge@1.2.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 22 exposed · ~3,047 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
session_click ~136

Click an element, by CSS selector or by an @eN ref from session_snapshot. Scrolls the element into view and dispatches a real mouse press and release at its centre, so handlers that ignore synthetic events still fire. Returns {clicked} naming what was targeted. Fails with 'Element not found' rather than clicking something else when nothing matches.

NameTypeReqDescription
refstringA ref from session_snapshot, such as @e12, used instead of selector
selectorstringyesCSS selector for the element to click
tabIdintegerTab to act on; uses the active tab when omitted

No output schema declared.

No examples provided.

session_close_tab ~102

Close a tab, named explicitly by its id from session_list_tabs. Returns {closed, tabId}. Unlike every other tool here, tabId is required and there is no active-tab default: closing a tab is not undoable, and the active tab is the one the user is looking at. Requires the T3rnel Browser extension; the standalone browser refuses it by name.

NameTypeReqDescription
tabIdintegeryesTab to close, from session_list_tabs

No output schema declared.

No examples provided.

session_evaluate ~146

Run JavaScript in the page's own context and return its completion value. Use it for what the other tools do not cover — reading computed styles, walking a data structure the page holds, or checking a condition too specific for session_wait. Objects come back as formatted JSON, strings as themselves, and an expression with no value as "undefined". End the code with the expression you want back; a trailing statement returns nothing useful.

NameTypeReqDescription
codestringyesJavaScript to run in the page's own context. Its completion value is returned, so end with the expression you want back
tabIdintegerTab to run in; uses the active tab when omitted

No output schema declared.

No examples provided.

session_fill ~164

Set a form field's value in one step — input, textarea, or a rich-text editor such as ProseMirror, Lexical or Slate. Writes through the native value setter and then fires input and change, which is what React and Vue listen for. Returns {filled} naming the field. Use session_type instead when a field only reacts to real keystrokes, and session_select for a dropdown.

NameTypeReqDescription
refstringA ref from session_snapshot, such as @e12, used instead of selector
selectorstringyesCSS selector for the field to fill
tabIdintegerTab to act on; uses the active tab when omitted
valuestringyesText to place in the field, replacing whatever is there

No output schema declared.

No examples provided.

session_health ~83

Report which transport is live and what it can do. Call this first when another tool fails unexpectedly: it separates 'the extension is not running' from 'this browser does not implement that API', which produce very different fixes. Returns {ok, mode, browser, profileDir} in standalone mode, and the connection state plus the available browser APIs when the extension is attached.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

session_install ~61

Return setup instructions for the T3rnel Browser extension and for the free standalone automation browser. Needs no browser and no licence, so it is the one tool that always answers — call it when another tool reports the extension is missing. Returns installation steps as text.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

session_list_tabs ~66

List every open tab. Returns an array of {id, title, url}. The ids are what every other tool's optional tabId argument accepts; omit tabId and a tool acts on the active tab, which is rarely what you want once you have opened tabs of your own.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

session_login ~172

Decrypt stored credentials for a domain and fill them into the page's sign-in form. Requires the T3rnel Browser extension with Pro, because the encrypted vault lives in the extension; the refusal comes from the extension rather than from this bridge, so there is one gate rather than two that can disagree. The standalone browser has no vault — sign in once by hand in its profile instead, and the session persists.

NameTypeReqDescription
domainstringyesDomain the credentials are saved for, such as "github.com"
masterPasswordstringPassphrase that unlocks the extension's vault. Never log or persist it
submitbooleanIgnored; kept so older callers do not break
tabIdintegerTab holding the sign-in form; uses the active tab when omitted

No output schema declared.

No examples provided.

session_navigate ~150

Navigate a tab to a URL inside the user's authenticated session, so pages behind a login load as themselves rather than as a signed-out visitor. Reuses the active tab unless newTab is true. Returns {navigated} with the requested URL, and newTab when a tab was created. It returns once navigation is dispatched, not once the page has settled — follow it with session_wait before reading.

NameTypeReqDescription
newTabbooleanOpen in a new tab instead of reusing the active tab (default false)
tabIdintegerTab id from session_list_tabs; uses the active tab when omitted
urlstringyesAbsolute URL to navigate to, including the scheme

No output schema declared.

No examples provided.

session_press ~218

Press a single keyboard key on the focused element, or on a named element after focusing it. Use it to submit a form with Enter, dismiss a dialog with Escape, or walk a suggestion list with ArrowDown. Returns {pressed} naming the key. Supported keys are Enter, Tab, Escape, Backspace, Delete, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, PageUp, PageDown and Space; anything else fails with the supported list rather than doing nothing.

NameTypeReqDescription
keystringyesOne of Enter, Tab, Escape, Backspace, Delete, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, PageUp, PageDown, Space
refstringA ref from session_snapshot, such as @e12, used instead of selector
selectorstringCSS selector for the element to press the key on; uses the focused element when omitted
tabIdintegerTab to act on; uses the active tab when omitted

No output schema declared.

No examples provided.

session_read_page ~102

Read a page's visible text, as rendered in the user's authenticated session. Returns {url, title, text, truncated}; text is the body's rendered innerText capped at 50,000 characters, and truncated is true when the page was longer. Prefer this over session_snapshot when the goal is to read or summarise; prefer session_snapshot when the goal is to interact.

NameTypeReqDescription
tabIdintegerTab to read; uses the active tab when omitted

No output schema declared.

No examples provided.

session_record_events ~167

Fetch the captured events of a recording, in the order they happened. Returns {events, count}, where count is the total held for the session and events is one page of {type, timestamp, tabId, data}; type is one of click, scroll, keypress, input, navigation, focus, select or resize. Page through long recordings with limit and offset rather than reading them whole, since a session can hold tens of thousands of events. Requires the T3rnel Browser extension.

NameTypeReqDescription
limitintegerMaximum events to return in this page (default 100)
offsetintegerNumber of events to skip, for paging through a long recording (default 0)
sessionIdstringyesRecording session to read, from session_record_list

No output schema declared.

No examples provided.

session_record_list ~74

List every recording, running or finished, so a caller can find the id that session_record_events and session_record_replay need. Returns {sessions}, each entry being {id, tabId, active, startedAt, stoppedAt, stoppedReason, eventCount, durationMs}. Requires the T3rnel Browser extension.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

session_record_replay ~164

Replay a stopped recording in its original tab, reproducing the recorded interactions in order. Returns {sessionId, totalEvents, replayedEvents, failedEvents, errors}, so a partial replay reports which steps failed instead of appearing to succeed. The tab must still be open. This acts on the live page and its effects are real — it will re-send messages, re-submit forms and re-spend money — so the extension classifies it high risk and gates it behind an approval prompt. Requires the T3rnel Browser extension.

NameTypeReqDescription
sessionIdstringyesStopped recording session to replay, from session_record_list
speednumberReplay speed multiplier; 1 is the recorded pace, 2 is twice as fast (default 1)

No output schema declared.

No examples provided.

session_record_start ~143

Begin recording what happens in a tab: clicks, scrolls, keystrokes, form fills, selections and navigations, each with a timestamp. Returns {recording, sessionId, tabId} — keep the sessionId, since every other recording tool needs it. Requires the T3rnel Browser extension. Recording stops on its own if the tab closes or after four hours.

NameTypeReqDescription
maxEventsintegerMaximum events to keep, oldest dropped first (default 10000)
sessionIdstringRecording session id; one is generated when omitted
tabIdintegerTab to record; uses the active tab when omitted

No output schema declared.

No examples provided.

session_record_stop ~97

Stop a recording and return {recording, sessionId, eventCount, durationMs}. The events themselves are read separately with session_record_events, so this is cheap to call on a long recording. Requires the T3rnel Browser extension. With several recordings active, sessionId is required and the error names how many are running.

NameTypeReqDescription
sessionIdstringSession to stop; required only when more than one recording is active

No output schema declared.

No examples provided.

session_screenshot ~142

Capture what is currently on screen in a tab. Returns a data: URL holding a base64 PNG or JPEG. This is the visible viewport only — it does not scroll or stitch, so a long page needs the extension's full-page capture instead.

NameTypeReqDescription
formatstringpng (default, lossless) or jpeg (smaller, and the only format quality applies to)
qualityintegerJPEG quality from 0 to 100; ignored for png
tabIdintegerTab to capture; uses the active tab when omitted
windowIdintegerWindow to capture from; uses the current window when omitted

No output schema declared.

No examples provided.

session_select ~213

Choose an option in a <select> dropdown, by value, by visible text, or by index. Filling a select as though it were a text field does nothing — the native value setter belongs to HTMLInputElement and has no effect here — which is the silent failure this tool exists to prevent. Matches value first, then exact visible text, then a substring, then index. Returns {selected, value, text} for the chosen option, and on no match fails with the available options listed.

NameTypeReqDescription
indexintegerZero-based option index to choose; tried last
refstringA ref from session_snapshot, such as @e12, used instead of selector
selectorstringyesCSS selector for the <select>
tabIdintegerTab to act on; uses the active tab when omitted
textstringVisible option text to choose; matched exactly first, then by substring
valuestringOption value to choose; tried first

No output schema declared.

No examples provided.

session_snapshot ~141

Capture a semantic map of a page for deciding what to act on. Returns {url, title, elements}, where each element is {ref, tag, text} — ref being an @eN handle that session_click, session_fill, session_type, session_select and session_press all accept in place of a CSS selector. Prefer this over session_read_page when the goal is to interact rather than to read: it lists only elements a user could actually operate. Skips zero-size and hidden elements, caps each label at 120 characters, and stops at 200 elements.

NameTypeReqDescription
tabIdintegerTab to snapshot; uses the active tab when omitted

No output schema declared.

No examples provided.

session_store_login ~136

Encrypt credentials for a domain and store them in the extension's vault, for session_login to use later. Requires the T3rnel Browser extension with Pro. The password is never returned by this or any other tool, and never appears in a listing or an error.

NameTypeReqDescription
domainstringyesDomain the credentials belong to, such as "github.com"
masterPasswordstringPassphrase that unlocks the extension's vault. Never log or persist it
passwordstringyesPassword to encrypt and store. It is never returned by any tool
usernamestringyesUsername or email to store

No output schema declared.

No examples provided.

session_type ~162

Type text one character at a time, firing the key events a real keyboard would. Use this instead of session_fill when a field only reacts to keystrokes — search boxes with live suggestions, autocompletes, and inputs with per-character validation. Returns {typed} with the number of characters sent. Slower than session_fill, so reach for it only when session_fill leaves the page unchanged.

NameTypeReqDescription
refstringA ref from session_snapshot, such as @e12, used instead of selector
selectorstringyesCSS selector for the field to type into
tabIdintegerTab to act on; uses the active tab when omitted
textstringyesText to type, one character at a time

No output schema declared.

No examples provided.

session_wait ~208

Block until a page reaches a known state, so the next tool acts on a settled page rather than a half-loaded one. Waits for the load event, for the URL to contain a string, or for a selector to appear. Returns as soon as the condition holds — {condition, waited} for load, {condition, url} for url, {condition, found} for selector — and fails at the timeout with a named error rather than hanging the client. Polls every 200ms; the default timeout is 10000ms.

NameTypeReqDescription
conditionstringyesWhat to wait for: load (the load event), url (value appears in the URL), or selector (element appears)
tabIdintegerTab to wait on; uses the active tab when omitted
timeoutMsintegerMaximum wait in milliseconds (default 10000)
valuestringURL substring or CSS selector to wait for; required for the url and selector conditions

No output schema declared.

No examples provided.

Common questions

What is the io.github.t3ratech/mcp-session-bridge server?

io.github.t3ratech/mcp-session-bridge is listed in the public MCP registry as io.github.t3ratech/mcp-session-bridge. Drive a browser you are already signed into, through the free T3rnel Browser extension. This page covers its npm package (@t3ratech/mcp-session-bridge).

Is the io.github.t3ratech/mcp-session-bridge server safe to use?

io.github.t3ratech/mcp-session-bridge scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.t3ratech/mcp-session-bridge server expose?

io.github.t3ratech/mcp-session-bridge exposes 22 tools: session_install, session_health, session_list_tabs, session_close_tab, session_navigate, and 17 more. Their descriptions and schemas cost roughly 3,047 tokens of context every time the server is loaded.

Is the io.github.t3ratech/mcp-session-bridge server still maintained?

io.github.t3ratech/mcp-session-bridge is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.t3ratech/mcp-session-bridge server under?

io.github.t3ratech/mcp-session-bridge declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.