Skip to main content
Glama

Open External GDB Bridge

debug_bridge_start
DestructiveIdempotent

Bridges a prepared serial session to an authorized external GDB over pinned TLS/TCP, returning a secret connection descriptor for rsp-client. Requires explicit acknowledgment that target readiness cannot be verified passively.

Instructions

Bridge an already prepared serial Session to one authorized external GDB via pinned TLS/TCP. Does not start or control GDB/gdbserver or probe RSP. Target readiness cannot be inferred from silence: explicit acknowledgement is required after preparing the target. Returns a secret connection descriptor for channelterm rsp-client. Defaults to loopback; a specific non-loopback bind requires allowed_peer. Reuse owner/request_id and all parameters exactly for retries. Current rsp-client connections maintain the management lease automatically, even without RSP traffic. Renew every 30 seconds before connecting, after disconnect, or with legacy helpers. All bridges have a 24-hour maximum lifetime. Use debug_bridge_report for actual externally executed commands, results, and observed states (Codex reports, not a complete audit).

Input Schema

NameRequiredDescriptionDefault
ownerYesSecret management capability, 32..128 characters; distinct from the generated TCP connection token.
request_idYesUnique start request ID, 1..128 characters; exact retries return the original bridge.
session_idYesActive Session ID or short reference. Must be an open serial Session.
allowed_peerNoOne numeric client IP. Required for non-loopback binding. Authentication is still mandatory.
listen_addressNoSpecific numeric IP:port. Omit to rotate through unallocated loopback ports 37100..37999 then fall back to an OS dynamic port. Explicit ports never fall back; explicit zero requests an OS dynamic port. No wildcard binds.
strict_port_poolNoWhen listen_address is omitted, fail if ports 37100..37999 are exhausted instead of using an OS dynamic port. Default false. Explicit listen_address overrides the pool policy.
acknowledge_unverified_targetYesMust be true after preparing the target for raw RSP and saving its stty -g state. This acknowledges that passive checks cannot prove gdbserver readiness.

Output Schema

NameRequiredDescriptionDefault
statusYes
connectionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.2

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: 24-hour maximum bridge lifetime, loopback-by-default binding with allowed_peer required for non-loopback, a secret connection descriptor returned for channelterm rsp-client, and the fact that explicit acknowledgement is mandatory because passive checks cannot prove readiness. It does not explain why destructiveHint=true (what is torn down or invalidated), which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, and nearly every sentence carries a distinct constraint (acknowledgement, defaults, retry, renewal, lifetime). The paragraph is dense and packs several unrelated operational rules together, which slightly hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stateful, security-relevant bridge tool it covers binding policy, authentication requirements, acknowledgement, renewal, retry, lifetime ceiling and where to report results. An output schema exists, so return-value detail is rightly omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds operational meaning by tying owner/request_id to exact-retry idempotency and allowed_peer to non-loopback binds. It does not add anything for listen_address/strict_port_pool beyond the already-detailed schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: bridge a prepared serial Session to one external GDB over pinned TLS/TCP. It explicitly excludes the nearby capabilities an agent might confuse it with — starting/controlling GDB or gdbserver, probing RSP — which separates it from debug_start and debug_command.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the preconditions (target already prepared and acknowledged), the retry rule (reuse owner/request_id and identical parameters), the lease renewal cadence, and routes reporting to debug_bridge_report. Alternatives and when-not conditions are stated rather than implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.