Changes for version 0.91
- add multibroker search-tools: BM25-ranked keyword search of tool names, descriptions and input schemas across visible and hidden brokers, returning up to 25 complete tool definitions.
- add mcp-fs --exec-prefix and --sudo[=USER] for noninteractive worker elevation, locally or over SSH, independently of bubblewrap. Add --host-dac for privileged bubblewrap workers that need access to other users' DAC-protected files inside approved filesystem mounts.
- add per-request verify_tls boolean to mcp-http (default true); false disables TLS certificate checking without changing permissions.
- give the real multibroker elicitation round-trip test 30 seconds instead of 10 and honor PERL_TEST_TIME_OUT_FACTOR for the ask-user test's internal deadlines on slow CPAN Testers hosts.
- identify the last explicitly allowed browser tab and a separately marked tab in mcp-webbrowser discovery. Add a userscript Mark/Unmark menu; reconnects and navigations do not change either selection. Marking a tab does not grant execution permission. Extend the private browser protocol to 1.2 without breaking older clients.
- add mcp-multibroker downstream --disable: exclude the subbroker from startup, discovery and calls while reserving its prefix. Overrides --eager and --required; no changes to other broker entries.
- repeat the requested action prominently above permission-rule scope selectors, so GET and POST are distinguishable while saving a rule.
- add mcp-sctl: direct ScriptCat and sctl Browser WebSocket bridge with pairing/HMAC/AES-GCM, live capability discovery and generic permission-scoped RPC calls. Cache protocol metadata in XDG cache; share the usual MCP HTTP --bind listener with the extensions' WebSocket connections, with a default port of 8643 to match ScriptCat, even when --bind supplies only an address (e.g. ::). Add an optional mcp_getoptions default_port and URL-printer callback so mcp-sctl --print-url also reports the token-free browser WebSocket URL. No Go daemon or high-level CDP/Playwright implementation.
- allow permission requests to specify a display-only dimension_order, preserving matcher names and old rules. mcp-sctl presents the target instance first, then RPC method and argument scope in permission dialogs.
- give mcp-sctl the regular operator activity logging: abbreviated per-instance connection/pairing events, method and parameter previews, discovery counts, compact call results and timings, without logging userscript source or pairing credentials.
- show the selected host, workdir, mailbox, user, URL, browser tab, origin and command in permission-rule scope choices; abbreviate long command and URL labels without changing rule matchers.
Documentation
initialize MCP configuration and manage users and permissions
graphical or terminal permission helper
display an MCP elicitation form using YAD or a terminal
ask the human questions through MCP
filesystem and command tools with optional sandboxing
HTTP requests with URL and method permissions
inspect and manage one IMAP account through MCP
combine MCP servers under tool name prefixes
ScriptCat and sctl Browser WebSocket bridge for MCP
MCP server for live Vim editors
expose opted-in browser tabs to MCP
using MCP servers, clients and permissions
Modules
Model Context Protocol client/server support
asynchronous MCP client protocol
MCP over AnyEvent::HTTP
MCP byte streams and stdio subprocesses
a request for client input
named servers and derived MCP credentials
authenticated non-HTTP connections on an MCP listener
asynchronous JSON exchange with an external helper
pluggable external permission prompts
MCP request dispatch and JSON-RPC framing
reverse-connecting MCP JSONL server
an optional MCP HTTP listener and socket handler
MCP over a newline-delimited byte stream
action authorization and sandbox grants
one MCP request
simple function interface for MCP servers
MCP tool declarations and callbacks
persistent filesystem workdir IDs
Provides
in lib/AnyEvent/MCP.pm
in lib/AnyEvent/MCP/IMAP/OAuth2.pm
in lib/AnyEvent/MCP/IMAP/Providers.pm
in lib/AnyEvent/MCP/Worker/IMAP.pm