NCES Education Data
Server Details
School enrollment, graduation rates, demographics, finance, and Title I data
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 5 of 5 tools scored.
Each tool targets a distinct data type: finance, directory overview, graduation rates, demographics, and school directory. Although some tools overlap in attributes (e.g., enrollment in get_schools and get_school_demographics), the level of detail and purpose are clearly separated.
All tool names follow a consistent 'get_' prefix and snake_case convention, with predictable patterns like get_district_finance and get_school_demographics. This makes the set easy to navigate.
The server has 5 tools, which is well within the ideal range for a focused data retrieval domain. Each tool covers a meaningful aspect of NCES education data without being redundant or overwhelming.
The set covers key K-12 data categories: finance, demographics, graduation, and directory information. Minor gaps (e.g., district-level demographics, state-level aggregates, or test scores) exist, but the core data types are well represented and there are no dead ends.
Available Tools
5 toolsget_district_financeAInspect
Get district-level financial data: total revenue, expenditures, per-pupil spending, federal/state/local revenue breakdown.
Returns fiscal data from the CCD School District Finance Survey (F-33),
including revenue sources, expenditure categories, and per-pupil spending.
Args:
state: Two-letter US state abbreviation (e.g. 'CA', 'NY').
county_fips: Optional 5-digit county FIPS code to filter by county.
year: Fiscal year to query (default 2021). Finance data lags 1-2 years.
limit: Maximum number of districts to return (default 50, max 500).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| state | Yes | ||
| county_fips | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does add valuable context: it names the data source (CCD F-33 survey) and notes that finance data lags 1-2 years. However, it does not explicitly state it is read-only, mention pagination beyond a limit parameter, or disclose any other operational behaviors like rate limits or authorization requirements.
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, front-loaded with the main purpose, and organized with an Args block. Each sentence adds value; the minor repetition of 'per-pupil spending' is harmless and reinforces key data points.
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 parameters and behavioral lag well, and the presence of an output schema handles return values. It does not discuss edge cases or pagination beyond limit, but given the simplicity of the tool and the schema richness, this is adequate.
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 fully compensates by documenting all four parameters with formats, defaults, and constraints (e.g., state abbreviation, county FIPS code, year lag, limit max). This is exactly what the input schema lacks.
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 a specific verb and resource: 'Get district-level financial data' and enumerates the exact data types (total revenue, expenditures, per-pupil spending, federal/state/local revenue breakdown). This clearly distinguishes it from sibling tools like get_district_overview or get_graduation_rates, which cover different domains.
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 implies this tool is for financial data queries, but it does not explicitly mention when not to use it or point to alternatives like the siblings. It provides sufficient context for an agent to infer usage, but lacks explicit exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_district_overviewAInspect
Get district directory overview: district name, student count, school count, teachers, locale type.
Returns district-level summary information from the CCD District Directory,
including total enrollment, number of schools, teacher FTE counts,
and urban/suburban/rural locale classification.
Args:
state: Two-letter US state abbreviation (e.g. 'CA', 'NY').
year: School year to query (default 2022).
limit: Maximum number of districts to return (default 50, max 500).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| state | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well by disclosing the data source (CCD District Directory), the nature of the output (district summary metrics), and the limit cap of 500. It implies a read-only operation through 'Get' and 'Returns', but does not explicitly discuss authentication, rate limits, or error conditions.
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 summary line, a detailed sentence, and an Args list. However, there is slight redundancy between the opening overview fields and the later detailed field list (e.g., 'student count' vs 'total enrollment').
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 presence of an output schema and only three parameters, the description is nearly complete: it covers the data source, output fields, and parameter semantics. It lacks explicit usage guidance relative to sibling tools, but that's a minor gap for a straightforward lookup operation.
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?
Since schema coverage is 0%, the description fully compensates by adding meaning to all three parameters: state format with examples, year default, and limit default with maximum (500). This is more detailed than the bare schema properties.
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 clearly specifies the resource ('district directory overview') and the fields returned (district name, student count, school count, teachers, locale type). This clearly differentiates it from sibling tools like get_district_finance or get_graduation_rates.
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 intended use is implied by the description of returning district-level summary information from the CCD District Directory, but there is no explicit statement about when to use this tool versus alternatives like finance or demographics tools. No exclusions or alternative guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_graduation_ratesAInspect
Get 4-year adjusted cohort graduation rates by school.
Returns graduation rate data from EdFacts, including cohort counts
and midpoint graduation rates. Filterable by state or county.
Args:
state: Two-letter US state abbreviation (e.g. 'CA', 'NY').
county_fips: Optional 5-digit county FIPS code to filter by county.
year: School year to query (default 2021). Graduation data may lag.
limit: Maximum number of schools to return (default 50, max 500).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| state | Yes | ||
| county_fips | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that data comes from EdFacts, includes cohort counts and midpoint rates, and notes that graduation data may lag. It also mentions state is required and county is optional. However, it doesn't describe response structure or pagination, though an output schema exists.
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: a one-sentence purpose, a sentence on return data, and a clearly formatted Args list. Every sentence adds value with no 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 largely complete for a read-only tool with an output schema. It includes purpose, parameters, data source, and a data freshness caveat. The only minor gap is that 'Filterable by state or county' implies state is optional, but state is required; also, there's no explicit guidance on alternatives, but that's more under usage guidelines. The output schema covers return values.
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 titles and defaults with no descriptions (0% coverage). The description's Args section adds substantial meaning: state is a two-letter abbreviation, county_fips is a 5-digit code, year defaults to 2021 with a lag caveat, and limit has default and max values. This fully compensates for the schema's lack of detail.
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 4-year adjusted cohort graduation rates by school, which is a specific verb and resource. This distinguishes it from sibling tools like get_district_finance or get_school_demographics. The addition of data source (EdFacts) and return contents (cohort counts, midpoint graduation rates) further clarifies its purpose.
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 implies when to use: whenever graduation rate data is needed. It provides filtering by state or county, but does not explicitly mention alternatives or exclusions. While it doesn't name sibling tools, the context is clear enough for an agent to select it for graduation-related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_school_demographicsAInspect
Get school enrollment broken down by race/ethnicity.
Returns enrollment counts by demographic group from the CCD,
including White, Black, Hispanic, Asian, Native American,
Pacific Islander, Two or More Races, and total enrollment.
Args:
state: Two-letter US state abbreviation (e.g. 'CA', 'NY').
county_fips: Optional 5-digit county FIPS code to filter by county.
year: School year to query (default 2022).
limit: Maximum number of schools to return (default 50, max 500).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| state | Yes | ||
| county_fips | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. It discloses the source (CCD), the demographic groups included, and total enrollment, plus default year and limit. However, it does not mention data suppression, privacy thresholds, or what happens with missing data, leaving some behavioral aspects undisclosed.
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 brief summary and an Args section. It lists all demographic groups, which is slightly verbose but adds value. Overall, it is appropriately sized and front-loaded with the core 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?
Given that an output schema exists, the description does not need to detail return values, and it doesn't. It covers the main inputs and the nature of the output (enrollment counts by group). It could add a note on ordering or aggregation, but is complete enough for a demographics lookup 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 has 0% description coverage, so the description fully compensates by explaining each parameter: state (two-letter abbreviation), county_fips (optional 5-digit filter), year (default 2022), and limit (default 50, max 500). This adds crucial meaning beyond the bare schema types and defaults.
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 'get school enrollment broken down by race/ethnicity' using a specific verb and resource. It distinguishes itself from sibling tools (e.g., get_graduation_rates, get_district_finance) by focusing on demographic enrollment 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 on what data it returns (enrollment counts by demographic group from CCD), which implies when to use it over siblings. It does not explicitly state alternatives or exclusions, but the scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schoolsAInspect
Search schools with enrollment, Title I status, type (charter/magnet/regular), and teacher counts.
Returns school directory information from the Common Core of Data (CCD),
including school name, location, enrollment, charter/magnet status,
Title I participation, and full-time equivalent teacher counts.
Args:
state: Two-letter US state abbreviation (e.g. 'CA', 'NY').
county_fips: Optional 5-digit county FIPS code to filter by county.
title_i_only: If True, return only Title I eligible schools.
year: School year to query (default 2022).
limit: Maximum number of schools to return (default 50, max 500).
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| limit | No | ||
| state | Yes | ||
| county_fips | No | ||
| title_i_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the data source (Common Core of Data), the types of information returned, and the filtering options. It does not mention potential side effects or limitations, but for a read-only search tool, this is adequate and adds valuable 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 well-structured: a concise summary sentence, a brief elaboration on return details, and a clear Args list. No unnecessary repetition; every sentence adds 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?
Despite having an output schema, the description still provides a clear picture of what data is returned. All 5 parameters are explained, including defaults and constraints. For a search tool with this complexity, the description is complete and self-sufficient.
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%, and the description fully compensates with a detailed Args section explaining each parameter, including examples for state, the 5-digit format for county_fips, the meaning of title_i_only, and default/max values for year and limit. This goes well 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 a specific verb ('Search') and resource ('schools'), and lists the specific data fields (enrollment, Title I status, type, teacher counts) that distinguish it from sibling tools focusing on finance, graduation rates, and demographics.
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 implies usage by defining what the tool returns, but it does not explicitly state when to use it vs. alternatives or provide any exclusions. The sibling tool names suggest context, but the description itself lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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
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 Servers
- Alicense-qualityCmaintenanceFederated MCP server that routes K-12 education data requests to public sources like Urban Institute, EDC/Zelma, NAEP, and MA E2C, handling comparability and provenance automatically.MIT
- Flicense-qualityCmaintenanceUnifies school information, real estate transaction data, and school zone lookup into a single MCP server, allowing users to query school details, property prices, and attendance boundaries.
- AlicenseAqualityCmaintenanceEnables querying and analyzing the Philippine schools masterlist dataset, including searching schools, listing regions and divisions, and getting school details by BEIS ID.540ISC
- AlicenseAqualityDmaintenanceMCP server providing access to comprehensive UK school data from official government sources, including search, details, near-postcode, comparisons, Ofsted ratings, and DfE education datasets.11MIT