Skip to content

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:

  1. SMEs curate one Genie Agent per dataset group (semantic layer).
  2. Databricks auto-exposes each as a managed MCP server (integration contract).
  3. 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_proxy down 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

Seen in

Last updated · 766 distilled / 2,225 read