Know which MCP servers are actually earning their keep
Fleet telemetry lives across several tables, so every question about adoption, errors, or dormant connections becomes a manual join. These plans make that snapshot repeatable and schedulable.
What breaks when you do this by hand
Understanding how one MCP server is really performing means joining several telemetry tables by hand, every time.
There's no quick, repeatable snapshot of which servers drive usage.
Errors and dormant connections stay invisible until someone goes looking.
What you get instead
A fleet-wide view of usage, errors, and dormant connections
Per-server performance without hand-written joins
Reporting that runs on a schedule instead of on request
This is the whole thing
The opening of MCP Server Insights — the system prompt, its typed parameters, and the tools it's allowed to reach, all declared up front. No canvas, no hidden nodes. 207 lines of source you can review in a pull request.
Read all 207 lines →mcp-server-insights.fml
system("You are an analytical assistant querying BigQuery for MCP server telemetry.") parameter("servername", type=string, title="Server Name") require mcp BigQuery components { schema("TenantStats") { tenant_name: string tenant_id: string status: string total_tool_calls: int total_errors: int error_rate: float active_users: int distinct_tools_called: int active_days: int first_call: string last_call: string days_since_last_call: int connected_but_never_called: bool }
2 plans you can run today
Every one is a typed FML plan. Open it, read the source, and run it — nothing here is a mockup.
MCP Server Insights
Understanding how one MCP server is really performing across the fleet means joining several telemetry tables by hand every time.
Read the plan
MCP Fleet Overview
There's no quick, repeatable snapshot of which MCP servers are actually driving usage and where errors and dormant connections concentrate.
Read the plan
What every plan here guarantees
Zero prompt drift
Every plan is a versioned contract. Run 1 and run 10,000 behave identically.
Scoped sessions
Each LLM call sees only the context it needs — no one giant prompt, no context rot.
Typed output
Plans return validated objects pinned to a schema, not text you have to parse.
Reusable like an API
Parameterise once and call it from anywhere — versioned, auditable, shareable.