Skip to main content
Glama
README.md
# districtapi-mcp

<!-- Links this package to its entry in the official MCP registry -->
mcp-name: dev.districtapi/districtapi-mcp

MCP server for [districtapi.dev](https://districtapi.dev) — US school district and school data for AI agents.

Expose school district lookups as tools to any MCP-compatible AI assistant (Claude, Cursor, Copilot, etc.).

## Installation

```bash
pip install districtapi-mcp
```

Or run directly with `uvx` (no install needed):

```bash
uvx districtapi-mcp
```

## Configuration

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "districtapi": {
      "command": "uvx",
      "args": ["districtapi-mcp"],
      "env": {
        "DISTRICTAPI_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Cursor / other MCP clients

```json
{
  "mcpServers": {
    "districtapi": {
      "command": "uvx",
      "args": ["districtapi-mcp"],
      "env": {
        "DISTRICTAPI_KEY": "your_api_key_here"
      }
    }
  }
}
```

Get a free API key at [districtapi.dev](https://districtapi.dev).

## Available Tools

| Tool | Description |
|------|-------------|
| `lookup_district_by_address` | Find the district serving a US street address |
| `get_district` | Get full district profile by NCES LEA ID |
| `search_districts` | Search districts by name and/or state |
| `get_district_schools` | List all schools in a district |
| `get_school` | Get full school profile by NCES school ID |
| `find_schools_near_address` | Find schools within a radius of an address |

## Example

Once configured, you can ask your AI assistant:

> "What school district serves 1600 Pennsylvania Ave, Austin TX, and how many students are enrolled?"

The assistant will call `lookup_district_by_address` and return the full district profile.

## Links

- **Website:** [districtapi.dev](https://districtapi.dev)
- **PyPI:** [pypi.org/project/districtapi-mcp](https://pypi.org/project/districtapi-mcp)
- **REST API docs:** [districtapi.dev/docs](https://districtapi.dev/docs)

## License

MIT

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct resource and action: address-to-district, district-by-ID, district-search, schools-in-district, school-by-ID, and schools-near-address. The two address-based tools are clearly differentiated by return type (district vs schools).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with optional qualifiers (by_address, near_address, by ID). Verbs (lookup, get, search, find) are semantically distinct and used appropriately, and snake_case is used throughout.

Tool Count5/5

With 6 tools, the set is well-scoped for a school district information API. Each tool addresses a distinct query need without unnecessary redundancy or bloat.

Completeness5/5

The domain is read-only lookup, and the set covers all natural entry points: by address, by name, by district ID, and by school ID, plus the ability to list schools within a district or near an address. No critical gaps are evident.

Maintenance

ActivityMaintained
ResponsivenessNo issues