Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.5.0] - 2026-03-30
Added
- Scoped daemons — each project gets its own daemon process, preventing cross-session races. Two Claude sessions on different projects no longer share a Serena daemon. Scope is a hash of the project root path, embedded in socket/PID/log filenames.
- Daemon discovery —
daemon statusnow discovers all running scoped daemons via PID file globbing.daemon stopanddaemon stop-allhandle scoped daemons correctly. - Security policy engine — evaluate tool calls against configurable policies before they reach the server. Supports tool name globs, argument inspection (deny/allow prefix, deny pattern), and content regex matching (e.g. SQL mutation blocking). Global policies cascade with per-server overrides.
- Security modes — one-line presets:
read-only(blocks all write tools),editing(full access),custom(policies only). Per-server. - Audit logging — every tool call recorded in JSONL with timestamps, server name, tool, arguments, and policy decisions. Configurable log path with variable resolution. Secret redaction for sensitive values.
- Allowed/blocked tool lists — per-server whitelist (
allowed_tools) and blacklist (blocked_tools) with glob pattern support. - Content matching —
content.deny_patternandcontent.require_patternwith conditionalwhenclause for inspecting argument values (SQL queries, code snippets, file paths).
Changed
- Branding — repositioned from "MCP servers as CLI tools" to "Secure gateway for MCP servers — from CLI to production".
- Website redesigned — new landing page with full-width layout, security showcase, animated terminal demos, 4-column feature grid. New sections: Security (5 pages), Integrations (5 pages).
- Config schema expanded —
security(top-level and per-server) fields added toServerConfig. - README rewritten — three-pillar structure (context cost, security, multi-server management) with YAML examples and live denial output.
SocketPath,PIDPath,LogPathaccept ascopeparameter for project isolation.- Client version bumped to
1.5.0in MCP handshake.
New packages
internal/security/— policy engine (Evaluator), audit logger (AuditLogger), action types, result types.
[1.3.0] - 2026-03-14
Added
- Prompts support —
mcpx <server> prompt list,mcpx <server> prompt <name> --help,mcpx <server> prompt <name> [--arg value ...]. Full MCPprompts/listandprompts/getwith pagination. - Resources support —
mcpx <server> resource list,mcpx <server> resource read <uri>. Full MCPresources/list,resources/templates/list, andresources/readwith pagination. - Server info —
mcpx <server> infoshows server name, version, protocol version, and a capability checklist (tools, prompts, resources, logging). - Daemon capability forwarding — daemon now caches the
InitializeResultfrom startup and replays it to connecting clients.info,--help, and capability-based features now work correctly in daemon mode. - Resource templates —
resource listshows both static resources and URI templates. - Prompt argument validation — required prompt arguments are validated client-side before the RPC call, with actionable error messages.
- Enhanced server help —
mcpx <server> --helpnow shows available prompts and resources alongside tools, with usage hints for all subcommands. - Generate v2 —
mcpx configureandmcpx <server> generatenow include prompts and resources sections in generated documentation. - Shell completions —
info,prompt,resourceadded to tab-completion suggestions.
Changed
- Server capabilities struct extended with
PromptsandResourcesfields. - Client version bumped to
1.3.0in MCP handshake.
[1.2.0] - 2026-03-13
Added
- Streamable HTTP transport —
transport: httpwith POST-based JSON-RPC, dual content-type handling (application/json + text/event-stream), session management viaMcp-Session-Id, and DELETE on close. - Legacy SSE transport —
transport: ssewith persistent GET stream for responses, POST for requests, and endpoint discovery via SSE events. - Protocol version upgrade — updated from
2024-11-05to2025-11-25(MCP spec compliance). - Server capabilities parsing —
ServerCapabilitiesandServerInfoparsed from Initialize response. - Paginated tools/list — cursor-based pagination support for servers with many tools.
- Ping —
client.Ping()method for server health checks. - Expanded content types — image, audio, and embedded resource content blocks with base64 display.
- Headers and auth —
headersmap andauth.type: bearer/auth.tokenconfig fields for remote transports. - URL variable resolution —
$(var)patterns resolved in server URLs and headers.
Changed
- Go minimum bumped to 1.26.1 to fix stdlib vulnerabilities.
[1.1.0] - 2026-03-13
Added
@filesyntax — any string flag accepts@/pathto read value from a file, or@-/-to read from stdin. Eliminates shell escaping for multi-line content.--pick— lightweight JSON field extraction without jq. Supports dot-separated paths and array indexing (e.g.--pick items.0.name).--timeout— per-call timeout override in Go duration format (e.g.--timeout 60s). Prevents hanging on slow MCP servers.- stdin merge —
--stdinnow merges with CLI flags instead of replacing them. CLI flags win on conflict, so you can pipe large JSON while overriding specific fields. mcpx configure— auto-generates tool documentation for CLAUDE.md from MCP server schemas. Scans configured servers and writes per-server reference files.
[1.0.0] - 2025-03-09
Added
- Core CLI —
mcpx <server> <tool> [flags]calls any MCP tool from the terminal - Dynamic CLI generation — tool flags auto-generated from MCP JSON schemas
- Two-level config — project (
.mcpx/config.yml) + global (~/.mcpx/config.yml) with server-level merging - Dynamic variables —
$(env.*),$(git.*),$(mcpx.*),$(secret.*),$(sys.*)resolved at runtime - Daemon mode —
daemon: truekeeps heavy servers alive between calls via unix socket - Secrets management —
mcpx secret set/list/removefor OS keychain integration - Config import —
mcpx initimports from.mcp.json(Claude Code format) - Health checks —
mcpx ping <server>verifies a server is alive with latency - Output modes —
--json,--quiet,--dry-runglobal flags - Shell completions —
mcpx completion bash|zsh|fish|powershellwith dynamic server/tool names - Daemon management —
mcpx daemon status/stop/stop-all - Daemon zombie detection — automatic shutdown when MCP server subprocess dies