score
runs 0 (exact) to 1 (no match), lower is better; above 0.72 the match is unreliable and the query is worth narrowing. bun run eval:search scores a labelled query battery against a live corpus, which is where that number comes from
How to use it
score is exposed by the Eia Energy MCP Server MCP server. Add the server to your MCP client (Claude Desktop, Cursor, Windsurf and others), and the score tool becomes available to the model automatically. See the full listing for setup details and every tool this server provides.
FULL EIA ENERGY MCP SERVER LISTINGOther tools in Eia Energy MCP Server (9)
Lists child routes under a given path in the EIA dataset taxonomy. Start at root to see top-level categories, then drill into subcategories and leaf routes.
Lists active DataCanvas dataframes created by prior eiaqueryroute calls that passed stage: true. Only exposed when a canvas is configured. Shows table name, column names and types, row count, expiry, and the query that produced it. A handle that is not staged comes back as a miss alongside the handl
Drops a DataCanvas dataframe, freeing its memory. Only exposed when a canvas is configured and EIADATAFRAMEDROPENABLED=true.
Runs a read-only SQL SELECT across DataCanvas dataframes, referenced by their df<id> table names. Only exposed when a canvas is configured.
Returns metadata for a leaf route: available facets with valid values, data column names, frequency options, units, and date range. Call before eiaqueryroute to understand filter options. Facet values come back capped, with facet and valuesoffset to page one facet.
Fetches data from a leaf route with optional facet filters, date range, frequency, and column selection. Returns a preview; pass stage: true to also page past it and stage the matching rows as a DataCanvas table for SQL analysis.
Fuzzy text search across route names, descriptions, category labels, STEO series names, and facet values. Resolves natural-language queries like "electricity retail sales by state" or a fuel type like "wind" to matching route paths.
reports whether the answer was ranked against the whole corpus; when it is false, indexGaps names the routes and index passes that are missing, so a short result set is never mistaken for a settled one
applies to every facet in the response. One past a facet's last value empties that facet's window and returns a notice naming the facet and its valuecount, so an overshoot never reads like a fully enumerated facet