Updated: August 2026
mcpx turns MCP tool surfaces into composable Unix commands. The project stays focused on tools, shell-native invocation, truthful schemas, native output, and low warm-call overhead. It is not a general MCP host, package manager, agent runtime, or application UI.
Released through v1.1.0:
- Stable command contract:
mcpxlists serversmcpx <server>lists toolsmcpx <server> <tool>calls a tool
- Schema-aware flags, help, completion, and native response output.
- Explicit response caching with safe opt-in defaults.
- Stdio and Streamable HTTP transports behind a local daemon.
- Hardened daemon IPC, lifecycle, runtime-source invalidation, and cache identity behavior.
- Read-only bootstrap discovery from common MCP client configurations.
- Ephemeral URL and manifest sources plus managed
mcpx addconfiguration. - Optional command shims and agent skill generation.
- Reuse of available Codex-hosted connector and OAuth credentials without taking ownership of those login flows.
- Release automation for GitHub, Homebrew, npm, and PyPI wrappers.
Main additionally adds explicit, refreshable imports through general Claude, Cline, Codex, Cursor, and Kiro source adapters.
Goal: speak MCP 2026-07-28 without regressing existing servers or the warm CLI
path.
- Select and isolate the Go SDK behind the existing
internal/mcppoolboundary. - Negotiate
2026-07-28first and fall back to2025-11-25and earlier peers. - Support stateless
server/discover, per-request metadata, standardized HTTP headers, and request cancellation. - Report the actual mcpx build version as client identity.
- Preserve stdio process reuse and HTTP connection reuse where they still add value; do not invent protocol sessions on modern HTTP.
- Add the official MCP client conformance suite for modern and legacy versions.
- Keep
go test ./...,go vet ./...,go build ./...,make perf, and the QA matrix green.
Acceptance:
- A modern-only HTTP server and a legacy-only HTTP server both work.
- Modern and legacy stdio servers both work.
- Protocol negotiation and fallback are covered by integration tests.
- No material warm-list or warm-call regression versus the release baseline.
Goal: never expose a simpler CLI contract than the server actually declared.
- Support JSON Schema 2020-12 composition used by tool inputs and outputs, including local references, unions, intersections, and conditionals.
- Bound schema depth and validation work; never fetch external
$reftargets. - Generate flags only for schemas that map unambiguously to flags.
- Fall back to positional or stdin JSON for valid schemas that cannot be represented truthfully as flags.
- Preserve arbitrary JSON values in
structuredContent. - Respect
ttlMsandcacheScopeon catalog responses. - Bound the outer catalog cache by modern
ttlMsand a short legacy TTL. The selected SDK's eager subscription behavior is incompatible with conforming servers that omitsubscriptions/listen; revisit event-driven outer-cache invalidation when the SDK can subscribe conditionally. - Expose titles and annotations for display and diagnostics only. Never treat untrusted annotations as authorization or cache policy.
Acceptance:
- Composition, local-reference, recursive-depth, and external-reference cases have regression coverage.
- Help explicitly explains when JSON input is required.
- Catalog changes cannot remain hidden indefinitely on a warm daemon.
Goal: let a CLI user connect to a standards-compliant protected remote server without placing bearer tokens in configuration files or shell history.
- Add a credential-provider boundary that preserves explicit headers and imported host credentials.
- Implement a narrow OAuth client flow using the system browser, PKCE, issuer validation, resource binding, Client ID Metadata Documents where supported, and secure OS credential storage.
- Keep tokens out of stdout, stderr, repository files, process arguments, and generated diagnostics.
- Add
mcpx doctorfor config origin, protocol/capability negotiation, prerequisites, transport health, and redacted auth-source diagnostics. - Keep enterprise-managed authorization and future workload identity behind the same provider boundary rather than embedding an identity platform in mcpx.
Acceptance:
- Public, explicit-header, imported-host, and first-class OAuth servers work.
- Issuer mix-up, redirect, refresh, cancellation, and credential-change cases have regression coverage.
mcpx doctornever prints credential values.
Goal: map modern MCP interaction primitives onto predictable shell behavior.
- Multi Round-Trip Requests:
- default non-interactive calls fail closed with an actionable input-required result
- explicit interactive mode may prompt on a TTY
- machine-readable input responses support agent-controlled retries.
- Tasks extension is deliberately gated on official Go SDK support. Do not duplicate the SDK's private transport or ship an unversioned custom protocol path. Once supported, add wait, detach, status, result, update, and cancel as one reviewed slice.
- Preserve stdout as the final native tool result and retain existing exit-code semantics.
Acceptance:
- Confirmation, missing-input, cancellation, resume, success, and failure paths have end-to-end tests.
- Non-interactive automation never blocks waiting for a terminal prompt.
- Tasks acceptance is tracked separately after the SDK gate clears.
- Publish the maintenance backlog, then ship modern protocol support as the next minor release.
- Maintain a dated protocol/SDK compatibility matrix in release notes.
- Expand the pinned official conformance gate from
tools_callthrough the frozen 2026-07-28 client requirements. Keep missing scenarios visible rather than baselining them as successes. - Add copy/paste issue templates for setup, schema, auth, and server-compatibility reports.
- Track first-call success and setup friction through opt-in user reports, not telemetry in the binary.
- Revisit official Server Card discovery when its conventions stabilize.
- Progressive tool discovery: follow the MCP specification work and consume the standard once stable.
- Server Cards and
.well-knowndiscovery: prefer the ecosystem convention over a proprietary registry. - Workload identity, DPoP, and delegation: keep the auth boundary ready without preempting the standards.
- Tasks: watch official Go SDK support and the optional extension conformance scenarios before adding CLI surface.
- A general MCP resources, prompts, or Apps client.
- Roots, Sampling, or Logging implementation for new protocol versions; these features are deprecated.
- Legacy HTTP+SSE expansion.
- Full package-manager behavior or execution of remote installer scripts.
- Cross-client config writeback.
- Agent identity, orchestration, or an embedded LLM.
