Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
get_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).
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
limitNo
stateYes
county_fipsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
limitNo
stateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
limitNo
stateYes
county_fipsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
limitNo
stateYes
county_fipsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).
ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
limitNo
stateYes
county_fipsNo
title_i_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources