logger
tai42_skeleton.app.server.logger
TaiMCP
tai42_skeleton.app.server.TaiMCP
tai42_contract.app.TaiApp impl — owns the FastMCP server and
exposes the 18 contract facet namespaces as its SOLE feature/contract surface;
the concrete server additionally exposes a launch surface (sse_app /
http_app / run and friends) that is not part of the facade.
This class is the composition root only: each feature’s impl body lives in
its feature package (tools.binding.ToolBinding, agent.binding .AgentBinding, backend.registry.BackendHolder, the extension/monitoring
registries, app.http.HttpSurface) and each facet forwards straight to its
collaborator. Callers reach the app’s features only through the facets
(app.tools.run_tool, app.backends.backend, …) or the tai42_app
handle, never a flat member.
Attributes
Members
fastmcp
tai42_skeleton.app.server.TaiMCP.fastmcp
add_middleware, sampling, elicit-handlers,
completions, server metadata such as name/version/auth, the
process-global fastmcp.settings). Anything registered THROUGH this
server skips the platform’s governance: manifest gating, the extension
registry’s validate(), and the access-control gate. It is
deliberately NOT on the tai42_contract.app.TaiApp protocol — the
contract stays FastMCP-free so an alternative impl remains possible, so
this accessor is skeleton-specific.
Named fastmcp (not mcp) because app.sub_app already owns the
sub-MCP namespace; mcp here would read as the sub-MCP.
emit_list_changed
tai42_skeleton.app.server.TaiMCP.emit_list_changed
list_changed notification to every active MCP session
for the given SINGULAR registry kind (tool / prompt /
resource). The generic in-process registration-mutation path (e.g. a
dev’s runtime add_prompt via app.fastmcp) awaits this after its
own registry mutation; the reload path drives the same registry from its
sync scheduler.
Parameters
sse_app
tai42_skeleton.app.server.TaiMCP.sse_app
http_app
tai42_skeleton.app.server.TaiMCP.http_app
run_async
tai42_skeleton.app.server.TaiMCP.run_async
run
tai42_skeleton.app.server.TaiMCP.run
run_backend
tai42_skeleton.app.server.TaiMCP.run_backend
preset_manager
tai42_skeleton.app.server.TaiMCP.preset_manager
emit_list_changed
and fastmcp, it is deliberately not on the tai42_contract.app.TaiApp
protocol; the preset routes and the startup/reload rehydration hook reach
it through this concrete instance.
