MCP 2025-11-25 Conformance
This checklist records the Fovux MCP surface for protocol revision 2025-11-25.
It separates the stdio MCP server from the local Studio HTTP bridge so MCP
clients do not treat the Studio API as Streamable HTTP.
Source Verification
Checked on 2026-06-03:
- MCP specification
2025-11-25: lifecycle, transports, tools, roots, sampling, elicitation, schema, and changelog pages atmodelcontextprotocol.io. - FastMCP documentation for stdio and HTTP transports,
mcp.run(),mcp.run(show_banner=False), and CLI display settings. - Installed package:
fastmcp 3.3.1.
Conformance Checklist
| Surface | Status | Evidence |
|---|---|---|
| Protocol revision | Supported | FastMCP negotiates 2025-11-25 during initialize. |
| stdio transport | Supported | fovux-mcp with no subcommand starts the FastMCP stdio server. |
| Streamable HTTP transport | Not exposed | fovux-mcp serve --http is the Studio REST/SSE bridge, not an MCP endpoint. |
| Lifecycle | Supported | The stdio contract test initializes, lists tools, calls a tool, then closes. |
| Tools capability | Supported | Server initialization advertises capabilities.tools.listChanged=true. |
tools/list |
Supported | All 36 registered tools are returned with object input schemas. |
tools/call |
Supported | model_list returns structured content plus a JSON text fallback. |
| Protocol tool errors | Supported | Unknown tool calls raise FastMCP ToolError instead of invoking local code. |
| Studio HTTP auth | Supported | /health is public; /runs and /tools/{name} require bearer auth. |
| HTTP tool policy | Supported | Studio tool calls use a fixed allow-list, rate limits, and confirmation gates. |
| Tool list change notifications | Declared static | The server advertises list changes, but Fovux has a static release-time registry. |
| Prompts | Empty | No Fovux prompts are registered in this release. |
| Resources | Empty | No Fovux MCP resources are registered in this release. |
| MCP Tasks | Unsupported | Fovux does not advertise capabilities.tasks; HTTP background jobs are REST-only. |
| Roots | Client-dependent | Fovux does not request roots/list; filesystem bounds are local config based. |
| Sampling | Unsupported | Fovux tools do not call sampling/createMessage. |
| Elicitation | Unsupported | Fovux tools do not call elicitation/create. |
Transport Policy
Use stdio for MCP clients:
Use the HTTP bridge only for Fovux Studio and trusted local automation:
The HTTP bridge intentionally exposes REST routes such as /health, /runs,
/runs/{run_id}/stream, and /tools/{name}. It does not implement the MCP
Streamable HTTP single endpoint, MCP-Protocol-Version header negotiation, or
OAuth resource-server metadata.
Unsupported Feature Rules
- Do not add client-feature requests for roots, sampling, or elicitation unless the tool checks the negotiated client capability first.
- Do not map Studio HTTP background operations to MCP Tasks without adding the
taskscapability and protocol contract tests. - Do not expose mutating or destructive tools over the HTTP bridge without an
explicit policy entry, rate limit, and
confirm=truerequirement. - Keep stdio stdout reserved for JSON-RPC messages. FastMCP banner and update checks are disabled in the stdio runner.