BLS Employment & Wages
Server Details
Unemployment rates, labor force, and Consumer Price Index from the Bureau of Labor Statistics
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
4 toolsget_county_employmentAInspect
Get county-level unemployment rate, employment, and labor force data.
Returns three time series for a specific county: unemployment rate (percent),
employment count, and labor force size.
Args:
state: Two-letter US state abbreviation (e.g. 'WA', 'CA', 'NY').
county_fips: Three-digit county FIPS code as a string (e.g. '033' for King County, WA).
start_year: Start year for data (default 2020).
end_year: End year for data (default 2025).
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| end_year | No | ||
| start_year | No | ||
| county_fips | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the operation ('Get'), the returned data shape (three time series), and default year ranges, but it does not mention data sources, error behavior, or validation requirements for the state/county_fips inputs. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a lead sentence states the purpose, a second sentence describes the output, and an Args block lists parameter details. Every sentence is necessary and no redundant or filler content exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers inputs, defaults, and output summary, and an output schema exists to document the return structure. It could explicitly mention when to choose this over sibling tools or describe error edge cases, but for a straightforward retrieval tool it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero descriptions for parameters, so the description fully compensates by explaining every parameter: state with example abbreviations, county_fips with a format example, and start/end year defaults. This is exactly what the agent needs to populate the arguments correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get county-level unemployment rate, employment, and labor force data'—a specific verb and resource. It then enumerates the three returned time series, clearly distinguishing this tool from siblings like get_unemployment_rate or get_labor_force_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'for a specific county' phrasing implies when this tool should be used, but the description never explicitly contrasts it with alternatives such as get_unemployment_rate or get_labor_force_data, nor does it state when not to use it. Usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cpi_dataAInspect
Get national Consumer Price Index (CPI) data.
Returns the CPI-U (All Urban Consumers, All Items) monthly time series.
This is the headline CPI measure used for inflation tracking.
Base period: 1982-84=100.
Args:
start_year: Start year for data (default 2020).
end_year: End year for data (default 2025).
| Name | Required | Description | Default |
|---|---|---|---|
| end_year | No | ||
| start_year | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. It adds useful behavioral context about the CPI-U measure and monthly frequency, but it does not disclose limitations, data revision policies, or that it is a read-only operation. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, front-loading the purpose in the first sentence. The Args section is appropriately formatted and every sentence contributes relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter data retrieval tool with an output schema, the description covers the core functionality, the metric definition, and the parameter defaults. It is mostly complete, though it could mention edge cases like start_year exceeding end_year.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. However, the Args section merely repeats the parameter names and defaults from the schema, without adding semantics like year range validation or data availability constraints. Minimal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves national CPI data, specifically the CPI-U monthly time series, with a base period. This distinguishes it from sibling tools focused on employment, labor force, and unemployment, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (for inflation tracking with headline CPI), but it does not explicitly mention alternatives or exclusion criteria. Since the sibling tools are topically distinct, the context is sufficient to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_labor_force_dataAInspect
Get labor force participation, employment, and unemployment counts for a state.
Returns three time series: labor force size, employment count, and
unemployment count. All values are in thousands of persons.
Args:
state: Two-letter US state abbreviation (e.g. 'WA', 'CA', 'NY').
start_year: Start year for data (default 2020).
end_year: End year for data (default 2025).
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| end_year | No | ||
| start_year | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. It discloses the return format (three time series, values in thousands) but does not mention data source, error handling, or any side effects. It implies a read-only operation but doesn't explicitly state it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with a clear purpose statement, return summary, and an Args block. Each sentence serves a purpose, though the phrase 'labor force participation' is slightly inconsistent with 'labor force size' in the returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple interface (1 required param) and an output schema exists, but the description lacks usage context such as when to use this versus siblings, data source, and handling of invalid inputs. It covers return values, which is helpful, but overall completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining each parameter: state (two-letter abbreviation with examples), start_year, and end_year (with defaults). It adds practical syntax guidance beyond the raw schema, though it lacks constraints like valid year ranges.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves labor force participation, employment, and unemployment counts for a state, and specifies the three time series returned. This distinguishes it from siblings like get_unemployment_rate (rate vs counts) and get_county_employment (county vs state level).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as get_unemployment_rate or get_county_employment. The context implies state-level data, but no explicit exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unemployment_rateAInspect
Get unemployment rate time series from BLS LAUS data.
Returns monthly unemployment rates for a state or county. Data is returned
in chronological order with year, period, and percentage value.
Args:
state: Two-letter US state abbreviation (e.g. 'WA', 'CA', 'NY').
county_fips: Optional 3-digit county FIPS code (e.g. '033' for King County).
If provided, returns county-level data; otherwise state-level.
start_year: Start year for data (default 2020, min 4-digit year).
end_year: End year for data (default 2025).
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | ||
| end_year | No | ||
| start_year | No | ||
| county_fips | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It covers the data source (BLS LAUS), temporal resolution (monthly), ordering (chronological), return fields (year, period, percentage), and the optional county behavior. It stops short of discussing edge cases or error handling, but for a read-only data retrieval tool, this is adequate and adds substantial context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line summary, a few lines of return details, and a clean Args list. Every sentence earns its place, with no redundancy or fluff. The format makes it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, an output schema exists, and the description already covers return values, source, and parameter semantics, this description is fully sufficient. It enables an agent to select and invoke the tool correctly without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully explain parameters. It does so comprehensively: state with examples ('WA', 'CA'), county_fips with a concrete example ('033' for King County) and behavior, start_year/end_year with defaults and a 'min 4-digit year' constraint. This adds meaning that entirely compensates for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear, specific verb and resource: 'Get unemployment rate time series from BLS LAUS data.' It explicitly distinguishes itself from sibling tools like get_county_employment and get_cpi_data by focusing on unemployment rates. The inclusion of state/county-level detail further clarifies the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states what data the tool returns (monthly unemployment rates) and explains the county_fips behavior (county vs. state-level). Though it does not explicitly name alternative tools for comparison, the context is clear enough that an agent can infer when to use this tool instead of siblings, meeting the 'clear context, no exclusions' criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
GDP, unemployment, CPI, interest rates, and 800K+ economic time series from the Federal Reserve
County GDP, personal income, and employment from the Bureau of Economic Analysis
Macro data for AI agents: GDP, inflation, unemployment and more (World Bank, US BLS). No keys.
SNAP participation, food insecurity indicators, and agricultural statistics
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides access to U.S. labor market data including employment statistics, Consumer Price Index inflation rates, and wage information. Users can query specific time series data or use shortcuts for common economic indicators like unemployment and industry-specific employment.3
- AlicenseAqualityCmaintenanceEnables users to query U.S. labor statistics, including employment, CPI, and wages, directly from the Bureau of Labor Statistics Public Data API. It provides tools to retrieve real-time economic time series data, browse popular series, and access survey metadata through natural language.61MIT
- FlicenseNot gradedqualityCmaintenanceEnables Claude users to research U.S. labor-market trends through live BLS and FRED data, covering employment, unemployment, wages, job openings, occupational outlook, and industry comparisons.
- FlicenseNot gradedqualityDmaintenanceEU economic statistics — GDP, inflation, unemployment, trade, population
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
There is significant overlap between tools, particularly get_county_employment, get_labor_force_data, and get_unemployment_rate, which all provide similar employment/unemployment metrics at different geographic levels. The descriptions help somewhat, but an agent could easily misselect between these tools when seeking employment data.
All tool names follow a consistent verb_noun pattern with 'get_' prefix and descriptive suffixes (e.g., get_county_employment, get_cpi_data). The naming is predictable and follows the same convention throughout the set.
With only 4 tools, the set feels thin for a BLS employment and wages server. While the tools cover key metrics, there are likely missing wage-related tools (e.g., get_wage_data, get_occupation_data) that would be expected from such a domain.
There are significant gaps in coverage for a BLS employment and wages server. The tools focus heavily on employment/unemployment metrics but completely omit wage data, industry breakdowns, occupation statistics, and other core BLS datasets that would be essential for comprehensive economic analysis.