SYSTEM Cited by 1 source
FastMCP¶
FastMCP is a Python framework for building — and, importantly here,
composing — Model Context Protocol (MCP)
servers. Beyond authoring a single server, its distinguishing capabilities are
proxying an existing MCP server (FastMCP.as_proxy(...)) and mounting
multiple servers behind one composite server (server.mount(child,
prefix="…")), which name-spaces each child's tools under a prefix. This makes
FastMCP a natural MCP composition / proxy layer: several independent MCP
servers can be presented to an agent as a single endpoint with a curated,
prefixed tool surface.
Stub page. First wiki source names FastMCP as the composition layer that turns per-dataset-group Genie Agent managed MCP servers into per-commodity composite endpoints at S&P Global Energy.
Canonical wiki instance — composing Genie MCP servers into commodity bundles¶
At S&P Global Energy, each dataset-group Genie Agent is automatically a
Databricks-managed MCP server (at /api/2.0/mcp/genie/{genie_space_id}). One
Genie per group keeps each agent narrow and accurate, but real questions cross
groups and commodities. Rather than build one giant agent (which "degrades
answer quality") or force every client to configure a dozen separate servers,
S&P Global used FastMCP's proxy and composition capabilities to create
composite MCP endpoints — typically one per commodity — mounting that
commodity's group-level Genie MCP servers behind a single server with
name-spaced tools. Higher-level composites can bundle several commodities the
same way. (Source:
sources/2026-09-25-databricks-from-data-to-dialogue-how-sp-global-energy-made-its-structured-data-estate-conversational)
The illustrative snippet from the post:
from fastmcp import FastMCP
# Each group-level Genie Agent is a managed MCP server on Databricks
cargo = FastMCP.as_proxy(genie_mcp_config("lng_cargo_agent_id"), name="cargo")
outages = FastMCP.as_proxy(genie_mcp_config("lng_outages_agent_id"), name="outages")
netbacks = FastMCP.as_proxy(genie_mcp_config("lng_netbacks_agent_id"), name="netbacks")
# Compose the group Genies into one commodity bundle
lng = FastMCP(name="lng-composite")
lng.mount(cargo, prefix="cargo")
lng.mount(outages, prefix="outages")
lng.mount(netbacks, prefix="netbacks")
The result: an agent connects to one composite endpoint per commodity and
sees a curated set of prefixed group tools — cargo_genie_query_agent,
outages_genie_query_agent, netbacks_genie_query_agent, and so on, each
paired with its genie_poll_response counterpart. The agent's LLM decides which
group Genie to route a question to, or fans a cross-group question out across
several and synthesizes the results.
Role in the architecture¶
FastMCP is layer 3 of S&P Global Energy's three-layer design:
- SMEs curate one Genie Agent per dataset group (semantic layer).
- Databricks auto-exposes each as a managed MCP server (integration contract).
- FastMCP composes the group servers into commodity/estate composite endpoints (composition layer) — "the best of both worlds: narrow, high-accuracy group-level Genie Agents underneath, and broad, commodity- and estate-wide conversational access on top."
Engineering owns only this thin, reusable proxy layer — the load-bearing lesson that let time-to-market for new conversational data products collapse to days.
Why composition (not one mega-agent)¶
- Accuracy — narrow group Genies with clear instructions/example queries answer better than one sprawling agent; composition preserves that accuracy while giving broad reach.
- Client simplicity — an agent configures one endpoint per commodity, not a dozen group servers.
- LLM routing — name-spaced prefixes (
cargo_,outages_) help the LLM route or fan-out correctly (an explicit best practice: "Namespace your composite tools clearly").
This is a content-aware instantiation of MCP as centralized integration proxy — the composite endpoint is the choke-point through which agents reach the underlying group Genies — combined with specialized-agent decomposition (one Genie per dataset group) underneath.
What's not disclosed¶
- FastMCP version, transport specifics, and auth setup are explicitly left to the reader ("adapt to your FastMCP version and auth setup").
- How end-user identity / OBO tokens propagate through the composite proxy's
mount/as_proxydown to each managed Genie MCP server (and thus to Unity Catalog enforcement) is not spelled out. - Operational characteristics of the proxy tier (latency overhead, failure handling if one mounted Genie is unavailable) are not disclosed.
Composes with¶
- systems/model-context-protocol — the protocol FastMCP servers speak.
- systems/databricks-genie — each mounted child is a managed Genie MCP
server (
/api/2.0/mcp/genie/{genie_space_id}). - systems/unity-catalog — governs the underlying tables the composed Genies reach; enforcement lives below the proxy.
Seen in¶
- sources/2026-09-25-databricks-from-data-to-dialogue-how-sp-global-energy-made-its-structured-data-estate-conversational
— First wiki disclosure of FastMCP. S&P Global Energy uses FastMCP's
as_proxy+mount(prefix=…)to compose per-dataset-group Genie MCP servers into per-commodity composite endpoints with name-spaced tools, so one endpoint per commodity exposes a curated group-tool surface and the agent's LLM routes or fans out cross-group questions. The engineering-owned "thin, reusable proxy layer" of the three-layer Genie-Agents-plus-MCP architecture.