Skip to content

Toolport v1.9.5

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Jul 00:41
5aeee1d

Toolport v1.9.5

What you see is Toolport. Upgrades from Conduit-era installs migrate cleanly.

This release finishes the user-facing Conduit → Toolport rename (MCP entry name,
data directory leaf, env keys, deep links), keeps every pre-rename CONDUIT_*
env alias working, and ships the security, Teams policy, much faster indexed
local search, gateway reliability, and client work that landed after 1.9.4.

Branding and upgrade migration

Claude, Cursor, Codex, and the rest show toolport, not conduit. New
connects write the gateway under that name. Existing installs rename the entry
on launch, rewrite client env to TOOLPORT_CLIENT_ID / TOOLPORT_PROFILE, and
move the data directory from …/Conduit to …/Toolport when nothing has those
files locked. Legacy CONDUIT_* env names and conduit:// deep links still
work so headless boxes and old share links do not break.

Control-plane secrets stay off untrusted servers. Downstream MCP processes
no longer inherit TOOLPORT_* or CONDUIT_* gateway env (vault key, HTTP
token, and the rest of the control namespace).

After upgrading: open Toolport once, then restart each AI client so it reloads
its MCP config. For Toolport Studio, starting a new conversation is enough. You
should see toolport in the client’s connector list.

Security and integrity

  • Opt-in block-on-injection, with org-level force for Teams members. (#465)
  • Richer structuredContent scanning (head/tail of large payloads) with
    redaction on hit. (#455)
  • Corrupt quarantine fails closed instead of treating a bad file as empty.
    (#448)
  • Upstream MCP response shape validation before the gateway trusts results.
    (#452)

Teams and gateway policy

  • Org allowedTools → local profile tool_scope, with allowlist mapping and
    apply receipts. (#457, #458, #456)
  • Org rate limits enforced in the local gateway. (#461)
  • Optional per-call audit export to the org. (#460)
  • HTTP bridge honors profile tool_scope like stdio does. (#459)

Search performance and benchmarking

  • Local tool search is now indexed at catalog refresh time. Normal local
    searches reuse normalized name/description tokens and document frequencies
    instead of cloning and re-tokenizing the entire catalog for every query. The
    immutable catalog and its index swap as one generation during live refreshes.
    Public MCP schemas, routing, scoping, auditing, content defense, and semantic
    fallback behavior are unchanged. (#470)
  • 10,000-tool scale and retrieval regression coverage. New correctness,
    generation-coherence, bounded-memory scale, JSON latency, and regression-budget
    tests make performance changes measurable before release. (#470)
  • Reproducible local benchmark harness. A deterministic MCP fixture drives
    Toolport through its public stdio interface and records Git revision, dirty
    state, build profile, binary path, and SHA-256 for auditable results. (#470)

Windows x64 release builds on the generated fixture:

Catalog Search median / p95 Recall@5 Always-on context
500 1.31 / 1.63 ms 100% ~1,000 tokens
10,000 11.08 / 12.76 ms 100% ~1,000 tokens

These are deterministic gateway/retrieval measurements, not claims about
end-to-end agent accuracy.

Observability and clients

  • Prometheus /metrics on the HTTP gateway when TOOLPORT_METRICS=1
    (legacy: CONDUIT_METRICS). (#464)
  • Grok Build (xAI’s terminal coding agent, the CLI behind Toolport Studio’s
    Grok sessions) as a first-class Toolport client: detect, one-click connect, and
    write ~/.grok/config.toml. (#433)
  • Toolport Studio as a first-class client (toolport-studio): detect install,
    connect to ~/.toolport-studio/mcp.json for profile scope, and use session-aware
    toasts (new conversation, not full app restart). Studio injects the gateway into
    provider sessions with client id toolport-studio even before you click Connect,
    while install detection avoids false positives on machines without Studio. (#471)
  • Continue remote servers stay remote. Toolport preserves streamable-http
    and sse transport type and URL through detection, import, and surgical YAML
    rewrites. Malformed entries return a targeted error instead of being silently
    rewritten as stdio. (#469)
  • Quarantine cards show annotation detail and notify on new entries. (#439)
  • Client detection errors surface in the UI. (#466)
  • Restart toast after connecting a client. (#442)
  • Client scope labels match real behavior (active profile). (#447)

Reliability

  • Large stdio JSON-RPC responses are serialized as complete frames before
    stdout writes.
    This fixes partial-frame failures observed with large Toolport
    Studio provider-session aggregates. (#471)
  • Oversized code-mode aggregates stay recoverable. The final aggregate is
    shaped behind the existing result cursor, and regression coverage verifies the
    complete payload can be fetched rather than only previewed. (#471)
  • Activity rows keep expansion across the live refresh. (#450)
  • Shared timestamp formatting via fmtTs. (#451)
  • Quarantine re-parse skipped when the file has not changed. (#435)
  • Clear warnings for invalid discovery / HTTP / budget env values. (#453)
  • CI runs Rust integration tests; notarization submit is time-bounded.
    (#454, #441)

Docs

README, headless/Docker, Open WebUI, and the env reference prefer TOOLPORT_*
and document CONDUIT_* as still-accepted aliases.

Upgrade

In the app, use the sidebar version control when an update is offered, or
install from
Releases.

Full changelog:
1.9.5.

Contributors

Thank you to everyone who contributed since v1.9.4:

And to everyone testing upgrades from Conduit-era installs and filing issues.