Skip to main content
Glama

Query AI Infrastructure Employment (data centers + semiconductors)

query_ai_infrastructure_employment_v1
Read-onlyIdempotent

Query verified U.S. employment, establishments, and wages — total and by industry (data centers, semiconductors, construction, retail, accommodation, food service) — for any county, state, or the nation, from the U.S. Bureau of Labor Statistics' Quarterly Census of Employment and Wages (QCEW).

Use this for two families of questions: (1) "how many people work in / how many establishments / what wages in data centers or chip fabs" — INDUSTRY employment, not an "AI jobs" count; and (2) the place-based question — "what happened to a county's employment, wages, construction, or local economy (e.g. during and after a data-center / fab buildout)": total covered employment plus the buildout-phase and induced-sector series for every US county, quarterly since 2014.

Filter by industry_code — each code lives at ONE aggregation depth, shown here with its agglvl codes (national/state/county): "10" Total, all industries — every covered job (agglvl 10/50/70 = all ownerships combined; 11/51/71 = split by ownership) "23" Construction (sector; 14/54/74) "44-45" Retail trade (sector; 14/54/74) "721" Accommodation (3-digit; 15/55/75) "722" Food services & drinking places (3-digit; 15/55/75) "236220" Commercial & institutional building construction (6-digit; 18/58/78) "518210" Computing infrastructure / data processing / web hosting — the data-center industry (6-digit; 18/58/78) "334413" Semiconductor & related device manufacturing (6-digit; 18/58/78) agglvl's first digit is geography (1 national / 5 state / 7 county); pick ONE industry_code and the matching agglvl for its depth to get a clean additive scope. Also filter by own_code ("5" = Private — the usual one; "1"/"2"/"3" = federal/state/local government; "0" = Total Covered, only on industry "10"), geography (state USPS e.g. "VA", county_fips 5-digit e.g. "51107" Loudoun County, or area_fips), and time (year, qtr "1"-"4", the quarter ISO first-of-quarter e.g. "2025-10-01", or a quarter_from/quarter_to range). Group by any of industry, industry_code, ownership, own_code, state, county_fips, agglvl, year, qtr, or quarter. Pass each parameter as a top-level key of params (flat — not nested under a filter/where key). Examples: {"industry_code": "518210", "own_code": "5", "agglvl": "18", "quarter": "2025-10-01"} — the national private data-center-industry figure; {"industry_code": "10", "own_code": "0", "agglvl": "70", "county_fips": "51117", "group_by": ["quarter"], "quarter_from": "2014-01-01"} — total employment in Mecklenburg County VA, quarterly (the "did the buildout move the county" series); swap "industry_code": "23", "own_code": "5", "agglvl": "74" for its construction sector. Returns JSON aggregates with citations and optional row-level records when include_records is true — every value cites the exact BLS file, row, and quarter.

Measures: qtrly_estabs (establishments), month1_emplvl/month2_emplvl/month3_emplvl (employment in each month of the quarter — intra-quarter SNAPSHOTS; average them for a quarterly figure, never sum them), total_qtrly_wages ($), and avg_wkly_wage ($, on detail records). Industry series are DISTINCT and NESTED: "10" contains the sectors, "23" contains "236220" — never sum across industry codes (each depth has its own agglvl, so a mixed-depth scope draws the qcew_hierarchy note).

WHERE JOBS ARE COUNTED: at the employer's ESTABLISHMENT, not the work site. A construction crew building in county X for a contractor based in county Y counts in county Y — so a county's construction series understates on-site buildout labor staffed by outside contractors.

SUPPRESSION: BLS withholds a confidential (small county × industry) cell by zeroing its employment and wages and marking disclosure_code "N" (or "-"). Those are served as NULL (absent), never as zero — the establishment count is still shown. Roughly half of county × data-center cells are withheld ("10" and sector-level cells are rarely withheld); an absent value means "BLS withheld it," not "no jobs." A scope containing withheld cells returns a qcew_suppression note counting them: sums skip the NULLs, so summed employment/wages UNDERCOUNT — for a state or national figure use BLS's own row at that level (agglvl 5x/1x) instead of summing finer cells.

Data is quarterly back to 2014 Q1, ~6-month lag (latest ≈ 2025 Q4). The response as_of is the release vintage; pin as_of to reproduce an earlier vintage.

NAICS VINTAGE: each year is served exactly as BLS coded it — 2014-2021 under NAICS 2017, 2022Q1-forward under NAICS 2022; BLS never recodes history. The 2022 revision REDEFINED 518210 (retitled to "computing infrastructure providers…"), so a 518210 series crossing 2022Q1 mixes two definitions — a level shift at that boundary (e.g. Loudoun County VA: −45% in one quarter) is establishment reclassification, not jobs lost. Compare 518210 within one vintage side of 2022Q1, or say so when crossing it.

NOT additive across hierarchy or time: counts and employment are additive across distinct AREAS within ONE agglvl + ONE own_code + ONE quarter (e.g. all counties in a state). They are NOT additive across geographic levels (national already contains states/counties — a qcew_hierarchy note flags it), across industry depths ("10" contains the sectors and 6-digit codes), across ownership totals ("0"/"8" contain their components), or across QUARTERS (employment is a per-quarter stock — a qcew_period note flags it; quarterly wages, by contrast, sum across quarters into an annual bill). Filter or group_by to avoid double-counting.

Does not determine "AI jobs" or a data-center-only headcount (NAICS 518210 is the broader computing-infrastructure / hosting industry), jobs at the work SITE (counted at the employer's establishment — see above), a definition-constant 518210 series across 2022Q1 (the NAICS vintage break — see above), industries beyond the eight pinned series (e.g. electrical contractors 238210 — largely absent/suppressed at county grain), employment for a withheld cell (served absent), occupation or job-title detail (QCEW is industry, not occupation), which company employs (no employer breakdown), or MSA / metro figures (national / state / county only).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals critical behavioral traits beyond annotations: QCEW data lag, NAICS vintage redefinition causing level shifts, suppression of confidential cells served as NULL, establishment-based job counting (not worksite), and non-additivity across hierarchy/time. These caveats are essential for correct interpretation and far exceed the basic readOnly/idempotent annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with clear sections and bullet-like lines. Every paragraph adds essential caveats (suppression, vintage, additivity), but some repetition could be trimmed for efficiency. Still, the organization makes it navigable and the length is justified by the data complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is exhaustive, covering purpose, parameters, output behavior, suppression handling, NAICS vintage issues, measures, geographic scope, and explicit limitations. Given the tool's complexity and the presence of an output schema, it does not need to describe return values—everything else is comprehensively addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only provides a generic 'params' object with no property definitions, so the description carries the full burden of parameter semantics. It thoroughly enumerates and explains industry_code values with agglvl mappings, own_code options, geography fields, time filters, group_by fields, and include_records, including concrete examples. This fully compensates for the absent schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries verified U.S. employment, establishments, and wages from BLS QCEW, specifically for data centers and semiconductors. It distinguishes itself from siblings by focusing on employment data and clarifying it is not an 'AI jobs' count, while also outlining two distinct families of questions it answers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly specifies when to use the tool for two families of questions (industry employment and place-based county impact) and provides detailed filtering instructions with industry_code, agglvl, own_code, geography, and time parameters. It also clearly states what the tool does not determine (e.g., MSA, occupation, site headcount), giving strong usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation4/5

Each capability has a clearly named describe/query pair, and domains like power, AI infrastructure, robotics, and space are distinct. The generic describe_capability_v1/query_capability_v1 could be confused with the named variants, and the many ISO-specific interconnection queues share similar names, but descriptions explicitly disambiguate them.

Naming Consistency5/5

All tools follow a consistent lowercase snake_case verb_noun pattern: describe_<capability>_v1 and query_<capability>_v1, with a few utility tools like list_capabilities_v1 and get_source_evidence_v1. There is no mixing of conventions.

Tool Count2/5

At 62 tools, the set is far too large for typical server scope. The describe/query pairs inflate the count even though each is justified, and the generic capabilities plus per-ISO variants make it feel heavy and hard to navigate.

Completeness4/5

The server covers each domain thoroughly with describe, query, and evidence verification, plus generic fallbacks for capabilities not yet in the client's tool list. Minor gaps exist (e.g., no county/state attribution for some data, no load types in ISO queues) but they are explicitly documented and workable.

Resources