NetCopilot's MCP server now offers two pure surfaces, chosen at startup
with MCP_SURFACE and never mixed:
full(default) — every registry tool, byte-identical to v2.2.0.
Nothing added, nothing renamed, zero breaking: existing clients see
exactly what they saw yesterday.ask— a single tool,ask_netcopilot(question, site?), that runs
NetCopilot's COMPLETE internal agent server-side (deterministic routing,
the whole toolset, the eval-guarded answer quality) and returns the
grounded answer plus which tools it used (structuredContent = {status, tools_used}). About 100 schema tokens in the client's context
instead of ~5,500. Expect 10-60 s per call: a full agent conversation
runs behind it.
Why: measured in the v2.2.0 study, an external client used to pay the full
schema cost every turn while none of the internal routing/eval quality
traveled the wire. Now delegating clients get the expert; composing clients
keep the full atomic registry. Precedent: Sentry's use_sentry.
Also in this release:
- Errors are honest MCP citizens: provider down, loop errors, empty answers
and a 170 s hang guard all map toisErrorwith real messages; the
server boots and lists tools with no LLM configured. - Era-agnostic fastmcp import (public
fastmcp.toolspath) — verified on
fastmcp 3.2.4 and 4.0.0b1. - Gateway docs updated: the "structured results travel direct-only"
limitation is gone since gridctl v0.1.0-beta.14 (the upstream fix we
contributed, gridctl#849, verified end-to-end), and tool groups
(beta.15+) are documented as the per-client curation axis.
Suite: 1449 passed (9 new tests, also green on fastmcp 4.0.0b1).