Repository navigation
Releases: camiloazula/coco-mcp
Release list
Coco MCP 0.5.1
What's Changed
New
- Tell users when a newer release is out, with the upgrade command for their install by @camiloazula in #126
Fixed
- JSON trees: a string is drawn as its JSON literal, on one line by @camiloazula in #110
- Response panel: the split takes what is left under the header, not the whole pane by @camiloazula in #112
Full Changelog: v0.4.0...v0.5.1
Coco MCP 0.4.0
What's Changed
New
- Server pane: a failure is shown in the settings, and said once by @camiloazula in #52
- Lists: faint rows say why they do not open by @camiloazula in #96
Fixed
- Connect: a server that answered the handshake is not reported as unreachable by @camiloazula in #81
- Server form: names its server by id, and keeps the keyring entry the server has now by @camiloazula in #82
- OAuth: an insufficient-scope refusal is a refusal, not an unreachable server by @camiloazula in #83
- Subscriptions: a failed event stream is told in plain words, without type names by @camiloazula in #84
- Server form: Connect with the settings as saved just connects, and Authorize never drops a change by @camiloazula in #86
- Server form: Save & reconnect follows the session as it is by @camiloazula in #87
- Server pane: the settings stay while their server connects by @camiloazula in #88
- Edit server: goes to the settings the pane already shows by @camiloazula in #89
- Status bar: gives the reason for a failure whenever it is not on screen by @camiloazula in #90
- Errors: an OS error in the middle of a message no longer cuts off the rest by @camiloazula in #85
- Lists: a failed reconnect keeps the last connection's lists by @camiloazula in #92
- Keyboard: Enter in a list that opens nothing goes to the settings by @camiloazula in #93
- Server view: the Settings row stays usable without a session by @camiloazula in #94
- History: Open in form waits for a session by @camiloazula in #95
- Authorize: a sign-in that does not complete keeps the server wanting one by @camiloazula in #97
- Calls: an OAuth server that refuses the login mid-session asks for a sign-in by @camiloazula in #98
- Connect: a connect that stops keeps no earlier refusal by @camiloazula in #99
- OAuth: new settings forget the old server's authorization challenge by @camiloazula in #100
- Errors: failure sentences start with a capital, and an IPv6 host stays by @camiloazula in #101
- Log: a server that ends the session is a failure there too by @camiloazula in #102
- Connect: a session that ends while its lists are read is not shown connected by @camiloazula in #103
- HTTP: a server on this machine is never reached through a proxy by @camiloazula in #106
Full Changelog: v0.3.2...v0.4.0
Coco MCP 0.3.2
What's Changed
New
- Server form: stays open until the saved server connects by @camiloazula in #48
- import-config: a file lands whole or not at all, and no keyring entry is left behind by @camiloazula in #49
Fixed
- Schema tab: a capped tree takes its rows' height beside other blocks by @camiloazula in #44
- Trees: a wheel over a capped tree is the tree's until it reaches an end by @camiloazula in #46
- Errors reach the pane as a sentence, and a refused token names the setting by @camiloazula in #47
Documentation
- README: npx coco-mcp, and the npm step of a release by @camiloazula in #39
Full Changelog: v0.3.1...v0.3.2
Coco MCP 0.3.1
What's Changed
Fixed
- Release workflow: draft, attach the binaries, then publish by @camiloazula in #37
Full Changelog: v0.3.0...v0.3.1
Coco MCP 0.2.0
What's Changed
New
- Log drawer: zoom to the full window, buttons for zoom, show/hide and clear by @camiloazula in #11
- Log drawer: rows open independently instead of one at a time by @camiloazula in #16
- Large responses: drawn as they arrive, in a detail pane split between input and response by @camiloazula in #24
Fixed
- Theme: the raw JSON editor takes its colours from the theme by @camiloazula in #14
Documentation
- Release notes: grouped by label, one line per merged PR by @camiloazula in #12
Full Changelog: v0.1.0...v0.2.0
Coco MCP 0.1.0
The first stable version of Coco MCP: debug Model Context Protocol servers in depth, from the command line or a native window. One Rust binary, coco-mcp: --cli runs a command, --desktop opens the window, both over the same crates.
Install
The archives below carry the binary for macOS (arm64 and x86_64), Linux (x86_64) and Windows (x86_64), with SHA256SUMS to check them against. Unpack one and put coco-mcp on your PATH; a file saved by a browser is quarantined on macOS until you allow it or run xattr -d com.apple.quarantine coco-mcp.
Homebrew, on macOS and Linux:
brew install camiloazula/coco/coco-mcpCargo builds the same tag from source (Rust 1.90 or newer):
cargo install --locked --git https://github.com/camiloazula/coco-mcp --tag v0.1.0 coco-mcpWhat is in it
- Protocol. Stdio and streamable HTTP servers over rmcp, speaking both the
initializehandshake (2024-11-05 to 2025-11-25) and the sessionless 2026-07-28 revision, chosen per server. Sampling, elicitation and roots answered through dialogs; keepalive, cancellation, progress, list-change and resource-update notifications. - Window. Drawn by GPUI on the GPU: tools, resources, prompts and history with schema-generated forms, foldable JSON trees under a drawing budget, a filterable wire log, a command palette, native menus, dark and light themes. Every screen renders headless in tests, and the tour above is assembled from those frames.
- Command line.
snapshot,call,read,prompt,history,diffwith exit codes for breaking changes, and import and export ofmcpServersconfigs. - Storage. SQLite for servers, snapshots and call history; the OS keyring for bearer tokens and OAuth 2.1 credentials (PKCE, dynamic registration, loopback redirect with state check). Tokens are redacted from every export.
- Hardening. Only http(s) URLs are ever opened, list pagination and child stderr are bounded, the database file is owner-only, terminal output is sanitised.
- Quality. No unsafe code, no
unwrapoutside tests, every dependency under a permissive licence with cargo-deny in CI.
Licensed under MIT OR Apache-2.0.
