Read-only fish stocking, waters and conditions data for US lakes from Cast the Water
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Find water bodies near a lat/lon in states open for indexing. At most 25 hits from a bbox query. Filters: radius, species, min acres, stocked-only, recent stocking window, optional amenity feature flag.
At most 25 results are returned.
Only waters with stocking history
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http cast-the-water https://castthewater.com/mcp
Find water bodies near a lat/lon in states open for indexing. At most 25 hits from a bbox query. Filters: radius, species, min acres, stocked-only, recent stocking window, optional amenity feature flag.
| Argument | Type | Description |
|---|---|---|
| lat* | number | |
| lon* | number | |
| limit | integer | At most 25 results are returned. |
| feature | string | |
| species | string | |
| min_acres | number | |
| radius_km | number | |
| stocked_only | boolean | Only waters with stocking history |
| stocked_within_days | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 72,
"minimum": 15
},
"lon": {
"type": "number",
"maximum": -60,
"minimum": -180
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "At most 25 results are returned."
},
"feature": {
"enum": [
"boat_ramp",
"dock",
"launch",
"marina",
"rentals",
"boat_rental",
"shore_fishing",
"accessible",
"parking",
"restrooms",
"camping",
"picnic",
"swimming",
"kayaking",
"paddleboarding",
"hiking",
"ice_fishing",
"bait_shop_nearby",
"lodging_nearby"
],
"type": "string"
},
"species": {
"type": "string"
},
"min_acres": {
"type": "number",
"minimum": 0
},
"radius_km": {
"type": "number",
"maximum": 250,
"minimum": 1
},
"stocked_only": {
"type": "boolean",
"description": "Only waters with stocking history"
},
"stocked_within_days": {
"type": "integer",
"maximum": 3650,
"minimum": 1
}
}
}Conditions for a water in a state open for indexing. Reads the existing forecast and USGS cache only: a miss is unavailable, with the canonical page URL. No live fetch.
| Argument | Type | Description |
|---|---|---|
| id | string | |
| lat | number | |
| lon | number | |
| seo_path | string | |
| gauge_site_no | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"seo_path": {
"type": "string"
},
"gauge_site_no": {
"type": "string"
}
}
}Nearby water bodies in states open for indexing, for internal linking / trip planning. A closed state is not available.
| Argument | Type | Description |
|---|---|---|
| id | string | |
| limit | integer | |
| seo_path | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"seo_path": {
"type": "string"
}
}
}Recent stocking events in one open state. Optional county and species. since_days defaults to 14 and must be from 1 to 90. Estimated dates keep the around wording and are not exact days. At most 25 events.
| Argument | Type | Description |
|---|---|---|
| state* | string | US state abbreviation |
| county | string | |
| species | string | |
| since_days | integer | Days back from today, 1 to 90. Default 14. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"state"
],
"properties": {
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "US state abbreviation"
},
"county": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"species": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"since_days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Days back from today, 1 to 90. Default 14."
}
}
}Likely natural species (USGS GAP HUC8) and survey abundance rows for a water body in a state open for indexing. A closed state is not available.
| Argument | Type | Description |
|---|---|---|
| id | string | |
| seo_path | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string"
},
"seo_path": {
"type": "string"
}
}
}Stocking events for a water body in a state open for indexing. Year-only dates are 'sometime in YYYY' with estimated true. An around date stays an estimate.
| Argument | Type | Description |
|---|---|---|
| id | string | |
| seo_path | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string"
},
"seo_path": {
"type": "string"
}
}
}One public water by id or slug: stocking history, species, and depth or water level when we have them, plus its castthewater.com page URL. A closed state is not available.
| Argument | Type | Description |
|---|---|---|
| slug | string | Public slug or waters path, such as ny/essex/lake-placid |
| water_id | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"type": "string",
"maxLength": 180,
"minLength": 1,
"description": "Public slug or waters path, such as ny/essex/lake-placid"
},
"water_id": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
}
}Full water body detail for a state open for indexing: identity, size/shoreline, structured nearest_town + nearest_town_label, stocking, natural species, surveys, editorial content (incl. gauge_relationship / gauge_notes), gallery, regs link, gauge. Pass id or seo_path (state/county/slug). A closed state is not available. Admin listing/writes are HTTP/Central only.
| Argument | Type | Description |
|---|---|---|
| id | string | |
| seo_path | string | e.g. ny/essex/lake-placid |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string"
},
"seo_path": {
"type": "string",
"description": "e.g. ny/essex/lake-placid"
}
}
}Search US census places (cities/towns) by name in states open for indexing. Use the lat/lon of a hit with find_nearby.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | |
| state | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"minLength": 2
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2
}
}
}Search water bodies by name (or nearest town name). Optional state filter. Only states open for indexing are returned. Prefer this over county browse.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | Water body or town name fragment |
| state | string | Optional US state abbreviation |
| stocked_only | boolean | Only waters with stocking history (default false) |
| publishable_only | boolean | Only sitemap-listed waters (publishable and stocked in the last 730 days; default false) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 40,
"minimum": 1
},
"query": {
"type": "string",
"minLength": 2,
"description": "Water body or town name fragment"
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Optional US state abbreviation"
},
"stocked_only": {
"type": "boolean",
"description": "Only waters with stocking history (default false)"
},
"publishable_only": {
"type": "boolean",
"description": "Only sitemap-listed waters (publishable and stocked in the last 730 days; default false)"
}
}
}Search public waters by name. Optional two-letter state. Only states open for indexing are returned, each with its castthewater.com page URL. At most 25 hits.
| Argument | Type | Description |
|---|---|---|
| query* | string | Water name or fragment |
| state | string | Optional US state abbreviation. Closed states are not available. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Water name or fragment"
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Optional US state abbreviation. Closed states are not available."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.