Census ACS Demographics
Server Details
Population, income, poverty, education, housing, and commuting from the US Census ACS
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
5 toolsget_commuting_dataAInspect
Get means of transportation to work data for counties.
Returns worker counts and percentages for: drove alone, carpooled,
public transit, walked, bicycle, taxi/motorcycle/other, and worked from home.
Args:
state: Two-letter state abbreviation (e.g. 'WA', 'CA') or 2-digit FIPS code.
county_fips: Three-digit county FIPS code (e.g. '033' for King County).
Omit to get all counties in the state.
year: ACS 5-year estimate year (default 2022).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| state | Yes | ||
| county_fips | 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 provided, so the description carries full burden. It discloses that the tool returns worker counts and percentages for seven transportation categories, and specifies that omitting county_fips returns all counties in the state. It does not mention potential limitations or error handling, but for a read-only data retrieval tool, this level of transparency is adequate.
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-organized with an introductory sentence, a list of returned categories, and a clear Args section. No unnecessary words, and each sentence serves a purpose.
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 moderate complexity with 3 parameters and no annotations. The description covers purpose, parameter semantics, and return values sufficiently. An output schema exists, so return format details are not required in the description.
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 coverage is 0%, so the description fully compensates by explaining the format and behavior of each parameter: state accepts abbreviation or 2-digit FIPS, county_fips is optional with a specific 3-digit format and scope, year defaults to 2022 and refers to ACS 5-year estimates. This adds significant meaning beyond the 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 uses a specific verb 'Get' with a clear resource: 'means of transportation to work data for counties.' It explicitly lists the data categories returned (drove alone, carpooled, public transit, etc.), which clearly differentiates it from sibling tools focused on demographics, economics, education, or tract-level 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 description gives clear context for when to use this tool (when commuting data is needed) and explains parameter usage (state, county_fips, year). It does not explicitly name alternatives or state when not to use it, but the purpose is distinct enough that the intended usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_county_demographicsAInspect
Get demographic data for counties: population, median age, race, Hispanic origin, income, and poverty.
Returns one record per county with total population, median age, racial breakdown
(White, Black, American Indian, Asian, Pacific Islander, Other, Two+),
Hispanic/Latino percentage, median household income, and poverty rate.
Args:
state: Two-letter state abbreviation (e.g. 'WA', 'CA') or 2-digit FIPS code.
county_fips: Three-digit county FIPS code (e.g. '033' for King County).
Omit to get all counties in the state.
year: ACS 5-year estimate year (default 2022). Data covers year-4 through year.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| state | Yes | ||
| 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 transparency burden. It discloses that it returns one record per county, specifies the year range coverage, and explains parameter defaults (e.g., county_fips omitted returns all counties). It doesn't address error handling or auth, but for a read-only data retrieval tool, the core behavior is well covered.
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 well-structured with a clear purpose statement, a returns list, and an Args section. No sentence is wasted; the length is appropriate for the number of parameters and the data richness described.
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 is highly complete for a data-retrieval tool. It covers return shape, parameter semantics, defaults, and behavior. The existence of an output schema further reduces the need to detail return values in the description, but the description already does so thoroughly.
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 description adds significant meaning beyond the schema's type-only definitions. It explains valid formats ('WA', 'CA', or 2-digit FIPS), the exact length of county_fips ('033'), the omission behavior for county_fips, and the time range implied by year ('data covers year-4 through year'). This fully compensates for the 0% schema description coverage.
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 uses a specific verb ('Get') and resource ('demographic data for counties'), then enumerates the exact data fields returned. This clearly distinguishes it from sibling tools like get_county_economics or get_commuting_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 description clearly communicates the tool's context by specifying the demographic focus and the return fields. It doesn't explicitly name alternatives or say when not to use it, but the scope is evident enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_county_economicsAInspect
Get economic data for counties: income, poverty, home values, rent, and health insurance.
Returns median household income, poverty rate, median home value, median gross rent,
and health insurance coverage rates (insured vs uninsured).
Args:
state: Two-letter state abbreviation (e.g. 'WA', 'CA') or 2-digit FIPS code.
county_fips: Three-digit county FIPS code (e.g. '033' for King County).
Omit to get all counties in the state.
year: ACS 5-year estimate year (default 2022).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| state | Yes | ||
| county_fips | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses the data source (ACS 5-year estimates), what metrics are returned, and the effect of omitting county_fips. This is transparent for a read-only data retrieval tool, though it does not discuss rate limits or auth.
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 well-organized with a brief summary, a returns list, and clear parameter documentation. Every sentence adds useful information without redundancy, making it easy to scan.
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, the presence of an output schema, and absence of annotations, the description is complete. It covers purpose, return metrics, parameter specifics, data source, and defaults, enabling correct selection and invocation. No critical context is missing.
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% coverage, but the description thoroughly explains all three parameters: state with examples ('WA', 'CA' or FIPS), county_fips with format and omission behavior, and year with default and meaning. This fully compensates for the schema's lack of descriptions.
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 gets economic data for counties and enumerates specific metrics (income, poverty, home values, rent, health insurance). This verb+resource+scope structure distinguishes it from sibling tools focusing on commuting, demographics, education, and tract 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 description provides usage details like omitting county_fips for all counties and the default year, but it does not explicitly explain when to choose this tool over sibling tools such as get_county_demographics or get_county_education. Usage context is implied by the listed metrics but no alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_county_educationAInspect
Get educational attainment for counties (population 25+).
Returns counts and percentages for: less than high school, high school diploma/GED,
some college/associate degree, bachelor's degree, and graduate/professional degree.
Args:
state: Two-letter state abbreviation (e.g. 'WA', 'CA') or 2-digit FIPS code.
county_fips: Three-digit county FIPS code (e.g. '033' for King County).
Omit to get all counties in the state.
year: ACS 5-year estimate year (default 2022).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| state | Yes | ||
| 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 provided, the description carries the full burden of behavioral disclosure. It explains what is returned (counts and percentages for five categories) and notes that the data source is ACS 5-year estimates. It also clarifies the county_fips omission behavior. More detail on edge cases (e.g., invalid FIPS) is missing, but the core behavior is well communicated.
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 well-structured and concise. It opens with a clear one-line summary, then lists the returned metrics, and follows with a compact 'Args' section. Every sentence adds value with no fluff or redundancy.
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 is complete for a read-only data retrieval tool given the presence of an output schema and explanation of all parameters. It covers the data source (ACS 5-year), the geographic level (counties), and the omission behavior. Slight gaps remain around handling of missing data or output formatting, but these are partially addressed by the output schema.
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 no descriptions (coverage 0%), so the description is essential. It fully defines each parameter: state accepts either two-letter abbreviation or 2-digit FIPS, county_fips is a three-digit code with a note that omission returns all counties, and year specifies ACS 5-year estimate with a default of 2022. This adds substantial meaning beyond 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 clearly states the tool retrieves educational attainment for counties, with a specific verb ('Get'), resource ('counties'), and subject ('educational attainment'). It also lists five distinct categories of attainment, which differentiates it from sibling tools like get_county_demographics or get_commuting_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 description provides usage details for parameters (state, county_fips, year) including how to omit county_fips for all counties, but does not explicitly compare with sibling tools or state when to use this tool instead of alternatives. The guidance is present for parameter handling but not for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tract_dataAInspect
Get tract-level ACS data for any variables within a county.
This is a flexible tool for querying any ACS 5-year estimate variables at
the census tract level. Automatically batches requests if more than 50
variables are requested.
Common variable examples:
- B01001_001E: Total population
- B19013_001E: Median household income
- B17001_002E: Population below poverty level
- B25077_001E: Median home value
- B02001_002E-008E: Race breakdown
Args:
state: Two-letter state abbreviation (e.g. 'WA') or 2-digit FIPS code.
county_fips: Three-digit county FIPS code (e.g. '033' for King County, WA).
variables: Comma-separated ACS variable codes (e.g. 'B01001_001E,B19013_001E').
NAME is always included automatically.
year: ACS 5-year estimate year (default 2022).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| state | Yes | ||
| variables | Yes | ||
| county_fips | Yes |
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 carries the burden of disclosing behavior. It adds valuable details: automatic batching for more than 50 variables, automatic inclusion of the NAME variable, and the default year. These behaviors are not evident from the schema. However, it does not disclose potential errors, rate limits, or output structure, which prevents a perfect score.
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 well-organized: a one-sentence summary, a note on flexibility, common variable examples, and a clear Args block. Every section serves a purpose, and the length is appropriate for the tool's complexity. It could be slightly more concise by trimming variable examples, but they add practical value.
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 has four parameters, no annotations, and an output schema (which likely documents return values), the description is complete enough. It covers purpose, parameter semantics, and a key behavior (batching). It does not discuss restrictions on year range or possible errors, but these are not critical for a data-query tool.
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 only property names and types with no descriptions. The description fully compensates by explaining each parameter's format and giving concrete examples: state as 'WA' or FIPS, county_fips as a 3-digit code, variables as comma-separated codes, and year with a default. This is far beyond the schema's minimal definitions.
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 tract-level ACS data for any variables within a county,' clearly stating the action (get), resource (tract-level ACS data), and scope (within a county). It distinguishes itself from sibling tools like get_county_demographics by emphasizing tract-level granularity and arbitrary variable selection.
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?
It describes itself as a 'flexible tool for querying any ACS 5-year estimate variables at the census tract level,' giving clear context for when to use it: when you need tract-level ACS data with custom variables. It does not explicitly name alternatives or exclusions, but the context is strong enough to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
- First observed
get_commuting_data - First observed
get_county_demographics - First observed
get_county_economics - First observed
get_county_education - First observed
get_tract_data
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, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.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
County and tract-level health outcomes, behaviors, and preventive services from CDC PLACES
Broadband availability, providers, speeds, and BEAD classification from the FCC
Query US Census Bureau data: demographics, economics, and housing statistics.
SVI scores and theme breakdowns by county and tract
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides access to official U.S. Census Bureau data, including decennial census, American Community Survey, economic census, population estimates, and housing characteristics, across geographic levels from nation to block group. Enables natural-language queries and direct tool calls for demographic and housing analysis.12MIT
- FlicenseNot gradedqualityDmaintenanceEnables access to U.S. Census Bureau data including demographics, population, income, and housing statistics. Users can query specific variables, search datasets, and retrieve geographic FIPS codes across various surveys like the American Community Survey and Decennial Census.1-
- AlicenseAqualityBmaintenanceEnables looking up U.S. Census data by ZIP code, including income, demographics, housing, and education statistics, using a locally stored dataset from the American Community Survey.8MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to U.S. HUD datasets covering fair market rents, income limits, USPS vacancy data, public housing, homelessness counts, and CHAS housing statistics.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct subject area (commuting, demographics, economics, education) or geographic level (tract). No two tools overlap in purpose, making selection unambiguous.
All tools start with 'get_' and mostly follow a 'get_county_<topic>' pattern, but 'get_commuting_data' and 'get_tract_data' deviate slightly from the fully consistent pattern. Still, the convention is predictable and readable.
Five tools is well-scoped for a Census ACS demographics server. Each thematic area and geographic level earns its place without unnecessary bloat or redundancy.
The four county-level tools cover key demographic, economic, education, and commuting themes, and the flexible tract-level tool can query any ACS variable, covering niche needs. A minor gap is the lack of a dedicated county-level variable query, but the tract tool compensates.