mcp-repl 0.3.0

Interactive MCP client REPL: connects to any MCP server and turns its tools, prompts, and resources into the command set
Documentation
# Changelog

All notable changes to this project will be documented in this file.

## [0.3.0] - 2026-08-09

### Bug Fixes

- Disambiguate tool and built-in name collisions ([#91]https://github.com/joshrotenberg/mcp-repl/pull/91)
- Reject malformed direct-tool arguments instead of dropping them ([#104]https://github.com/joshrotenberg/mcp-repl/pull/104)
- Reject malformed capture and filter paths ([#105]https://github.com/joshrotenberg/mcp-repl/pull/105)
- Restore subscriptions after reconnect ([#106]https://github.com/joshrotenberg/mcp-repl/pull/106)
- Use native Windows user directories ([#107]https://github.com/joshrotenberg/mcp-repl/pull/107)
- Recognize live HTTP status errors as reconnectable session loss ([#115]https://github.com/joshrotenberg/mcp-repl/pull/115)

### Documentation

- Grow in-app help so the markdown is a companion, not the manual ([#117]https://github.com/joshrotenberg/mcp-repl/pull/117)
- Refresh README security and client comparison claims ([#121]https://github.com/joshrotenberg/mcp-repl/pull/121)
- Make tape regeneration reliable and refresh the hero flow ([#122]https://github.com/joshrotenberg/mcp-repl/pull/122)

### Features

- Suggest a server when none was named ([#86]https://github.com/joshrotenberg/mcp-repl/pull/86)
- Read HTTP bearer from inherited file descriptor ([#90]https://github.com/joshrotenberg/mcp-repl/pull/90)
- Connect from inside the REPL instead of only from the command line ([#116]https://github.com/joshrotenberg/mcp-repl/pull/116)

### Miscellaneous Tasks

- Gate releases before publication ([#108]https://github.com/joshrotenberg/mcp-repl/pull/108)

### Refactor

- Split CLI orchestration and raise editor-path coverage ([#110]https://github.com/joshrotenberg/mcp-repl/pull/110)

### Testing

- Fuzz parser and redaction boundaries ([#111]https://github.com/joshrotenberg/mcp-repl/pull/111)
- Remove the bearer-fd descriptor reuse race ([#113]https://github.com/joshrotenberg/mcp-repl/pull/113)

### Security

- Require approval before imported HTTP configs forward credentials ([#103]https://github.com/joshrotenberg/mcp-repl/pull/103)
- Scrub malformed wire frames ([#109]https://github.com/joshrotenberg/mcp-repl/pull/109)



## [0.2.0] - 2026-08-06

### Bug Fixes

- Sanitize terminal output and restrict local file permissions (#34)
- Bound surface fetches and make in-flight commands interruptible (#36)
- Make listings, errors, and result routing consistent (#40)
- Widen wire redaction to the names secrets actually use (#53)
- Report a failed connection once, in the color that was asked for (#62)
- Ask only for the surface a server declares, and say when a listing fails (#66)
- Bound frame retention, suggestion cost, and the one-shot exit (#67)
- Render a server's error as a sentence, not a struct dump (#79)

### Documentation

- Rewrite the README around what the tool does, with recordings (#45)
- Regenerate the recordings and fix the tapes that silently did not (#80)

### Features

- Harden elicitation and confirm imported server commands (#39)
- Make the surface and the REPL's own commands discoverable (#41)
- Give the demo server typed schemas and a fuller surface (#44)
- Generate shell completions and a man page (#46)
- Adopt tower-mcp 0.19 and turn on what it unblocks (#47)
- Move history to the XDG state layout and trim long listings (#49)
- Give find the flags its exit statuses already implied (#50)
- Answer elicitation on the 2026-07-28 lifecycle too (#52)
- Save a resource to a file with read --out (#54)
- List other clients' configured servers with --scan (#55)
- Adopt tower-mcp 0.20 and tell the server about a cancelled call (#56)
- Answer a task parked on input_required with `task <id> respond` (#58)
- Let an --exec script wait for the tasks it started (#59)
- Log the decisions that never reach the wire, and pin the negotiated protocol version (#71)
- Search the surface with a regular expression (#72)
- Set the server's log verbosity with `loglevel` (#73)
- Make the request and completion timeouts configurable (#74)
- Report what --login and --logout did under --json (#75)
- Say how to background a call that was interrupted (#77)
- Demonstrate and document sampling (#78)

### Miscellaneous Tasks

- Move to the standalone [mcp-repl]https://github.com/joshrotenberg/mcp-repl repository, extracted from [tower-mcp]https://github.com/joshrotenberg/tower-mcp with full history
- Replace workspace-inherited manifest fields and dependencies with explicit standalone values
- Relocate the black-box test fixture into this repository's examples, excluded from the published package
- Own formatting, lint, test, package, and release workflows independently; add a scheduled compatibility lane against tower-mcp git main
- Check dependencies for advisories, licenses, and sources (#70)
- Attach prebuilt binaries and an install script to the release (#83)

### Testing

- Cover quoted key=value arguments end to end (#51)
- Make the unreadable-listing fixture independent of an upstream bug (#69)
- Pin that an absent pagination cursor is absent, not null (#76)

## [0.1.9] - 2026-08-04

### Bug Fixes

- **mcp-repl:** Subscribe to final surface changes ([#1159]https://github.com/joshrotenberg/tower-mcp/pull/1159)

### Features

- **mcp-repl:** Define strict scripting contracts ([#1162]https://github.com/joshrotenberg/tower-mcp/pull/1162)
- **mcp-repl:** Import standard MCP server configs ([#1164]https://github.com/joshrotenberg/tower-mcp/pull/1164)
- **mcp-repl:** Validate schema snapshots ([#1165]https://github.com/joshrotenberg/tower-mcp/pull/1165)
- **mcp-repl:** Add secure OAuth profiles ([#1166]https://github.com/joshrotenberg/tower-mcp/pull/1166)

### Miscellaneous Tasks

- **mcp-repl:** Prepare standalone lifecycle ([#1169]https://github.com/joshrotenberg/tower-mcp/pull/1169)

### Refactor

- **mcp-repl:** Split library core from binary ([#1167]https://github.com/joshrotenberg/tower-mcp/pull/1167)

### Testing

- **mcp-repl:** Add binary transport E2E coverage ([#1160]https://github.com/joshrotenberg/tower-mcp/pull/1160)



## [0.1.8] - 2026-08-03

### Miscellaneous Tasks

- Updated the following local packages: tower-mcp



## [0.1.7] - 2026-08-02

### Bug Fixes

- **mcp-repl:** Preserve quoted tool arguments ([#1138]https://github.com/joshrotenberg/tower-mcp/pull/1138)
- **mcp-repl:** Redraw around child stderr ([#1139]https://github.com/joshrotenberg/tower-mcp/pull/1139)

### Features

- **mcp-repl:** Surface task status transitions ([#1140]https://github.com/joshrotenberg/tower-mcp/pull/1140)



## [0.1.6] - 2026-08-01

### Miscellaneous Tasks

- Update Cargo.lock dependencies



## [0.1.5] - 2026-07-31

### Miscellaneous Tasks

- Update Cargo.lock dependencies



## [0.1.4] - 2026-07-30

### Features

- **mcp-repl:** Server profiles via config file ([#1017]https://github.com/joshrotenberg/tower-mcp/pull/1017)
- **mcp-repl:** Wire tracing and last-exchange inspection ([#1020]https://github.com/joshrotenberg/tower-mcp/pull/1020)
- **mcp-repl:** Respond to sampling/create requests ([#1023]https://github.com/joshrotenberg/tower-mcp/pull/1023)
- **mcp-repl:** Command aliases ([#1022]https://github.com/joshrotenberg/tower-mcp/pull/1022)
- **mcp-repl:** Auto-reconnect and session resurrection ([#1018]https://github.com/joshrotenberg/tower-mcp/pull/1018)
- **mcp-repl:** Find command and did-you-mean for unknown commands ([#1021]https://github.com/joshrotenberg/tower-mcp/pull/1021)
- **mcp-repl:** Subscribe to resource updates ([#1025]https://github.com/joshrotenberg/tower-mcp/pull/1025)
- **mcp-repl:** Bench command for tool latency sampling ([#1024]https://github.com/joshrotenberg/tower-mcp/pull/1024)
- **mcp-repl:** Output capture and pipe filtering ([#1033]https://github.com/joshrotenberg/tower-mcp/pull/1033)
- **repl:** Select stable or final protocol lifecycle ([#1055]https://github.com/joshrotenberg/tower-mcp/pull/1055)



## [0.1.3] - 2026-07-24

### Bug Fixes

- **mcp-repl:** Don't blame multi-instance for every not-initialized startup ([#1004]https://github.com/joshrotenberg/tower-mcp/pull/1004)

### Features

- **mcp-repl:** Fetch the startup surface concurrently ([#992]https://github.com/joshrotenberg/tower-mcp/pull/992)
- **mcp-repl:** Auth flags and per-call latency annotations ([#998]https://github.com/joshrotenberg/tower-mcp/pull/998)
- **mcp-repl:** List the tools at startup ([#1000]https://github.com/joshrotenberg/tower-mcp/pull/1000)
- **mcp-repl:** One-shot execution mode and persistent history ([#1003]https://github.com/joshrotenberg/tower-mcp/pull/1003)



## [0.1.2] - 2026-07-24

### Features

- **mcp-repl:** Info replays the full startup banner; resources/templates cross-hint ([#989]https://github.com/joshrotenberg/tower-mcp/pull/989)



## [0.1.1] - 2026-07-24

### Bug Fixes

- **mcp-repl:** Retry surface fetch when the server reports not-initialized ([#987]https://github.com/joshrotenberg/tower-mcp/pull/987)



## [0.1.0] - 2026-07-23

### Documentation

- **mcp-repl:** Live cratesio-mcp example and related tools ([#982]https://github.com/joshrotenberg/tower-mcp/pull/982)

### Features

- **examples:** Mcp-repl, an interactive MCP client REPL ([#966]https://github.com/joshrotenberg/tower-mcp/pull/966)
- **mcp-repl:** Reedline, colored output, describe, template completion ([#981]https://github.com/joshrotenberg/tower-mcp/pull/981)

### Miscellaneous Tasks

- **mcp-repl:** Prepare for crates.io publishing ([#980]https://github.com/joshrotenberg/tower-mcp/pull/980)