Fixed
mcptoon installnow makes the server reachable (issue #36).installanswered
{"status": "installed", …}and then the server was nowhere: it did not appear in
mcptoon list, andmcptoon call <server> <tool>returnedUNKNOWN_SERVER. The
command only wrote a generated handler module into the state dir plus a record in
~/.mcp-cli/pro_installed.json. Nothing ever imported that module — the package
contains no loader — sorouter._HANDLERSstayed empty, and the config, the
only storelistandcallread, was never touched.installnow registers the
server in the user's config (transport: httpfor URL installs,stdiowith
command/argsotherwise), so the server shows up inlistand is callable.
install --removetakes the config entry back out and reports it as
config_removed. Every property above has a regression test. Reported by @examosa,
who traced it intorouter.pyinstead of only reporting the symptom.mcptoon call --destructiveworks before the positionals (issue #37).
mcptoon call --destructive <server> <tool>fed the flag in as the server name
and failed withUNKNOWN_SERVER, while the identical flag placed after the
positionals worked.--destructivewas the one call-level option not stripped
before the positionals were read (--envelope,--stdin,--input-responses,
--request-stateand--autoalready were). It is now stripped with the others,
so option order no longer changes the outcome, andcall --destructive <server>
reports usage instead of reading the server name as the tool.inspectandlist
were never affected. Reported by @examosa, with a reproduction in both orders.
Removed
- The generated-handler subsystem. With
installregistering into the config, the
per-server handler modules were dead weight — written byinstallandupdate,
imported by nobody. They are no longer generated, andmcptoon install --remove
still deletes a file left by ≤ 0.8.31 so an upgraded machine does not keep stale
modules. This removes a code-generation primitive instead of mitigating it: the
0.8.29 hardening of those modules defended files that never executed. An install
writes no Python to disk at all now.