ew-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Listen port used when MCP_TRANSPORT is 'streamable-http'. | 8080 |
| MCP_HOST | No | Bind address used when MCP_TRANSPORT is 'streamable-http'. | 0.0.0.0 |
| MCP_TRANSPORT | No | Transport mode for the MCP server: 'stdio' or 'streamable-http'. | stdio |
| MCP_ALLOWED_HOSTS | No | Comma-separated Host allow-list for DNS-rebinding protection. Unset by default. | |
| MCP_ALLOWED_ORIGINS | No | Comma-separated Origin allow-list for DNS-rebinding protection. Unset by default. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Browse the Education-to-Workforce Framework, or find its metrics by concept. Searches metric and indicator names plus the framework's own definitions, so conceptual terms match even when a metric is worded differently. Matches per-word and ignores word order, so "neighborhood poverty" and "poverty in the neighborhood" hit the same records — try a short multi-word phrase before assuming something isn't covered. NOT COVERED anywhere in this dataset: individual schools, individual colleges, and local labour market data. It stops at school district. Say so rather than answering from a different grain. Args: query: A concept — "gifted", "student debt", "chronic absence". Omit to list the 20 essential questions, which is the best starting point. |
| describeA | Explain one Education-to-Workforce metric, indicator, or essential question, with the years and geographies it actually covers and a link to the framework's own page for it. Coverage is derived from the data rather than upstream metadata, which disagrees with reality for 22 metrics. LINK PEOPLE TO THE SOURCE: every metric and indicator described here carries the framework's own page for it at educationtoworkforce.org. Pass that link on when someone wants the definition, the evidence or the measurement guidance rather than a number — it beats paraphrasing, and it is where the framework lives. Args: target: "m47" (metric), "i5" (indicator), "eq12" (essential question); a bare number is read as a metric id. Also "framework" for the overview and citation, or "disaggregates" for the queryable breakdown dimensions. |
| resolve_placeA | Find the state, county, or school-district geoid used by get_data. Returns ranked candidates and does NOT auto-pick: ~30 states have a "Washington County", and a silently wrong pick is indistinguishable from a right one once it reaches a number. Name the place and geoid you chose in your answer. When candidates span geo levels (a county and a district of the same name), ASK — they are different grains with different coverage, so the wrong pick changes what is answerable, not just the number. For every place in a state, skip this and use get_data(state="12"). Args: name: Place name — "Cook County", "Illinois", "Chicago Public Schools". District names are official NCES names. geo_level: "state", "county", or "district". |
| get_dataA | Fetch Education-to-Workforce metric values for places, or rank places on
a metric. Choose places one of three ways: State and national benchmarks are added automatically for a handful of places; demographic context is added for a whole state. Coverage is uneven: districts carry ~35 metrics, counties ~62, and many places have no data for a given metric. "No data here" is a real finding — report it rather than substituting a different geography. Every result carries its own reading notes and caveats. Use them: values are rendered for you, some metrics are signed representation gaps rather than rates, and there are NO margins of error, sample sizes or denominators anywhere in this dataset, so never call a difference significant. Args: metric_ids: Comma-separated ids — "47" or "47,51". geo_level: "national", "state", "county", or "district". geo_ids: Comma-separated geoids from resolve_place. state: 2-digit state FIPS — every place at geo_level in that state. years: Comma-separated years — "2022" or "2013,2022". Omit for all. disaggregate: A dimension ("race", "gender", "disability", "ell", "income") for every group, or one group code ("d1_hispanic"). Ranking requires a single group code. rank: "highest" or "lowest" to rank places instead of listing values. limit: How many places to return when ranking. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
The four tools form a clear pipeline: search finds metrics by concept, describe explains a specific metric/indicator/essential question, resolve_place turns a name into a geoid, and get_data fetches values. There is mild overlap between search and describe (both surface framework content), but the args and outputs make the boundary clear in practice.
Two tools use bare verbs (search, describe) while two use a verb_noun pattern (resolve_place, get_data). Individually readable and unambiguous, but the conventions are mixed rather than a single predictable pattern.
Four tools is a tight, well-scoped read-only set for a data framework: discover, explain, geocode, fetch. Nothing feels redundant, though it sits near the thin end where one more operation (e.g. an explicit metric enumeration) might round it out.
The surface covers the full read lifecycle for the domain — find a metric, understand it, resolve a place, retrieve or rank values, including automatic benchmarks and disaggregation options. Being a read-only data server, missing write ops are not gaps; the main absence is a direct way to enumerate all available metrics/geographies without a query.