Built on FastMCP
The skeleton’s server is a FastMCP server underneath. The platform layers its own governance over it — manifest gating, the extension registry’s validation, and the access-control gate — and exposes its features through typed facets. The MCP-native capabilities ride the FastMCP foundation, so an MCP client gets structured content, progress, elicitation, and the rest as it would from any MCP server. An elicitation a tool raises in process, with no MCP client to answer it, is answered throughask instead, in the inbox; its accepted
result carries the _meta key tai42/reply_to, which is null because the answer did
not come over a channel (see an elicitation answered through
ask).
The server’s management tools are not hand-registered on this surface: they
project from the operations layer, curated by
api_tools. An AuthzMiddleware
installed on this FastMCP instance and on every sub-MCP
mount authorizes each projected-operation dispatch before the tool runs.
The advertised-tools read (list_mcp_advertised_tools) and the tool-selection write
(set_mcp_tool_filter) are operations too, so they project as api_tools decides; the
selection write is destructive-flagged, so it projects only with expose_destructive
on.
The app.fastmcp escape hatch
For anything the facets do not wrap, the app exposes the raw FastMCP instance
directly:
add_middleware, sampling, elicit-handlers, completions, server metadata such as
name/version/auth, and the process-global fastmcp.settings.
The accessor is intentionally not on the TaiApp contract protocol — the contract
stays FastMCP-free so an alternative implementation of the platform remains
possible, which makes this accessor skeleton-specific.
FastMCP’s own capabilities
The platform documents the escape hatch — what theapp.fastmcp field is and what
it grants — not FastMCP’s own API. For a deep dive into FastMCP’s prompts,
resources, middleware, and the rest, see FastMCP’s documentation at
gofastmcp.com.
See the Python SDK reference for the app.fastmcp
field and the platform’s facets.
