USGS Water Services MCP for AI. Monitor streamflow and groundwater levels from the US.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
USGS Water Services MCP Server gives you direct access to real-time and historical water data from the US Geological Survey.
You can pull streamflow, groundwater levels, and site metadata across the entire country using simple prompts. Need to know how high a river was last week or where a specific monitoring station is located? This server handles it all: instant readings, daily averages, specialized aquifer tracking, and full site searches.
What your AI can do
Get daily values
Retrieves historical daily summaries (mean, median, max, min) of water data.
Get groundwater levels
Pulls historical readings for manually-recorded groundwater levels in an aquifer.
Get instantaneous values
Gets near real-time water data, usually at 15-minute intervals, based on site location filters.
Search and retrieve metadata for USGS monitoring sites using geographic filters (state, county, HUC).
Fetch current water levels and streamflow data at 15-minute intervals.
Retrieve daily summaries (min, max, mean) for historical flow rates and water levels over long periods.
Generate monthly or annual statistical reports based on approved data sets.
Access historical, manually-recorded data specific to subsurface aquifer levels.
Ask an AI about this
Waiting for input…
USGS Water Services MCP Server: 5 Tools for Hydrology Data Access
These five tools let you query specific USGS data points—from current river flow to historical aquifer records—making complex hydrological analysis simple.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using USGS Water Services on VinkiusGet Daily Values
Retrieves historical daily summaries (mean, median, max, min) of water data.
Get Groundwater Levels
Pulls historical readings for manually-recorded groundwater levels in an aquifer.
Get Instantaneous Values
Gets near real-time water data, usually at 15-minute intervals, based on site...
Get Sites
Searches for and retrieves metadata about specific USGS monitoring locations.
Get Statistics
Generates aggregated daily, monthly, or annual statistical reports on hydrological...
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with USGS Water Services, then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by USGS Water Services. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 5 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Checking water levels shouldn't require switching between five different USGS dashboards.
Today, if you need a single metric—say, the current streamflow at site 02236000—you might have to bookmark three different departmental pages. You check the main flow page for instantaneous data, then switch to a 'historical records' tab for daily averages, and maybe cross-reference a third dashboard just to find the location metadata.
With this MCP server, you tell your agent: 'What was the average streamflow at site 02236000 last Tuesday?' The agent handles all the navigation. You get one clean answer using `get_daily_values`, eliminating clicks and context switching entirely.
USGS Water Services MCP Server: Get groundwater levels with `get_groundwater_levels`
Normally, aquifer data is buried deep in specialized reports, requiring you to filter by specific monitoring unit codes and download separate Excel sheets. This process takes half a day just organizing the files.
Now, you ask your agent directly: 'Show me the last five years of groundwater levels for this county.' The server uses `get_groundwater_levels`, giving you clean, structured data right in your conversation flow. It’s fast, it's accurate, and it keeps surface water separate from subsurface.
What your AI can actually do with this
The USGS Water Services MCP gives your AI client direct access to real-time and historical water data from the US Geological Survey. You can pull streamflow, groundwater levels, and site metadata across the entire country using simple prompts. This server handles instant readings, daily averages, specialized aquifer tracking, and full site searches for monitoring stations.
To start, you'll use get_sites to search and grab all the metadata about specific USGS monitoring locations. You can narrow down your search fast by filtering for sites based on state, county, or HUC codes, letting you pinpoint exactly where you need data from. Once you have a site ID, you can check what kind of water measurements they collect.
If you need to know what's happening right now—or close enough—you use get_instantaneous_values. This tool pulls near real-time water data, typically at 15-minute intervals, based on a site location filter. It gives you current streamflow and water levels as they fluctuate minute by minute.
To see how things changed over the last few days or weeks, call get_daily_values. This retrieves historical daily summaries for flow rates and water levels, providing you with the mean, median, max, and min values for a given period. You're not just getting one number; you're getting a full picture of the day’s range.
For deeper statistical analysis over longer stretches, you use get_statistics. This tool generates aggregated reports—whether it's daily averages, monthly totals, or annual measurements—based on approved hydrological data sets. You can calculate macro-level trends without having to crunch massive spreadsheets yourself.
If your interest lies in subsurface water, you need the specialized function get_groundwater_levels. This tool pulls historical readings specifically for manually-recorded groundwater levels within an aquifer system. It doesn't deal with surface river flow; it tracks what's underground. You use this when you gotta know about the depth of the water table.
You don't have to jump between tools either. The server lets your agent manage all these data streams—from finding a specific station using get_sites, getting its current 15-minute reading via get_instantaneous_values, tracking that day’s min/max flow with get_daily_values, compiling annual stats through get_statistics, or pulling back years of deep aquifer data using get_groundwater_levels—all within your chat window.
019e3904-eedf-7011-a28d-dc6490b0f094 Here's how it actually works
The bottom line is: you ask your AI client what water data you need, and it runs the correct query to pull clean, actionable USGS figures back to you.
First, prompt your agent with the required filters (e.g., site ID and date range) for the water data.
The server routes this request to the appropriate tool—like get_daily_values or get_instantaneous_values—and executes the query against public USGS sources.
You receive a structured dataset containing the specific hydrological metrics (e.g., gage height, flow cubic feet per second) for that period.
Who is this actually for?
Environmental scientists who are tired of juggling multiple dashboard logins. Engineers needing immediate streamflow data for construction planning. Hydrologists doing long-term trend analysis on aquifer depletion.
Runs multi-year comparisons, using get_daily_values and get_statistics to model seasonal variations in discharge.
Checks current streamflow rates with get_instantaneous_values before designing infrastructure or planning flood mitigation.
Gathers specific site metadata using get_sites and cross-references it with groundwater readings via get_groundwater_levels for research papers.
What Changes When You Connect
Real-time monitoring is instant. Instead of manually checking a dashboard, you ask for get_instantaneous_values to get 15-minute interval readings right in your chat.
Deep historical dives are simple. Use get_daily_values to pull daily summaries (mean/median) over years, letting you spot long-term trends without data cleaning headaches.
Groundwater is separated from surface flow. The dedicated get_groundwater_levels tool keeps your aquifer data distinct and accurate for specialized analysis.
Site discovery takes seconds. Use get_sites to filter monitoring stations by state, county, or HUC code—you never have to guess a site ID again.
Annual reporting is automated. Running get_statistics generates monthly or annual summaries, saving hours of manual data aggregation for reports.
See it in action
Assessing Flood Risk Before a Season
A civil engineer needs to know if the Potomac River has dropped below critical levels. They use get_instantaneous_values filtered by the relevant site ID and date range. The agent returns current gage height, allowing them to adjust construction plans immediately.
Writing a Research Paper on Climate Change
An environmental scientist needs 10 years of data for one county. They first use get_sites to confirm the correct monitoring ID, then run get_daily_values and get_statistics across that ID for trend analysis.
Checking on an Aquifer's Health
A municipal planner needs subsurface data. They bypass surface river flow and use get_groundwater_levels, specifying the required filter to track aquifer depletion trends over time, which is crucial for resource allocation.
Quickly Checking River Conditions
An outdoor enthusiast needs to know if a local stream is safe. They prompt for current flow at a known site ID; the agent uses get_instantaneous_values and returns the immediate, actionable reading.
The honest tradeoffs
Confusing data types
Trying to get groundwater levels by asking for a general 'daily average' report. The system will fail because you need specialized aquifer data.
Use get_groundwater_levels instead of get_statistics. This tool is specifically designed for manually-recorded subsurface measurements, keeping it separate from surface water reports.
Over-querying general stats
Asking the agent to combine data by running both get_daily_values and get_statistics for the same time period. You're duplicating work.
Determine if you need raw daily metrics or just high-level summaries. If it’s a summary, use get_statistics. If you need min/max/mean for every single day, stick to get_daily_values.
Ignoring the location context
Asking for general 'streamflow data' without specifying a site ID or county. The server won't know where to look.
Always start with get_sites. Use it first to narrow down your target monitoring station by state, county, or HUC code, then pass the resulting ID into your main query tool.
When It Fits, When It Doesn't
Use this server if you need specific, structured water metrics: near-real-time flow rates, historical daily averages, or specialized groundwater levels. The key is knowing which type of data you're tracking—surface river flow requires get_instantaneous_values and get_daily_values; deep aquifer status requires get_groundwater_levels. Don't use this if your goal is general climate modeling that requires parameters like temperature or salinity, as those aren't covered. If you just need to know where the data comes from, start with get_sites first to validate the location ID.
Questions you might have
How do I find a new USGS monitoring location using get_sites? +
Run get_sites and provide the filters you know—like State Code or county code. This tool returns metadata, including IDs for all active sites in that area.
What's the difference between get_instantaneous_values and get_daily_values? +
Instantaneous values pull near real-time data (15-minute intervals). Daily values give you summarized records—the mean, max, min—for an entire 24-hour period.
Can I get historical groundwater levels with the get_groundwater_levels tool? +
Yes. get_groundwater_levels is dedicated to pulling manually recorded data for subsurface aquifers, keeping it separate from typical surface streamflow readings.
Which tool should I use if I need annual statistics? +
Use get_statistics. This tool specifically generates aggregated reports like daily, monthly, or annual stats, perfect for long-term trend analysis.
What access key do I use when calling get_instantaneous_values? +
You must pass 'PUBLIC' as your access key. Since this server uses publicly available USGS data, you don't need to set up custom credentials or API keys for initialization. Just include that public string in the initial service call.
What happens if I forget a required filter when using get_daily_values? +
The request fails because you must provide at least one major filter. The USGS API requires specific geographic or time constraints to run any query; don't try calling the tool without specifying location parameters.
How do I calculate a specific metric, like the median flow rate, using get_statistics? +
You define the desired statistical aggregation within the call. When using get_statistics, specify 'median' or 'mean' for the metrics you need and provide the correct date range for accurate calculations.
Should I combine multiple filters when searching sites with get_sites? +
Yes, combining filters improves accuracy and speed. Use AND logic by specifying both a State Code (stateCd) and a Hydrologic Unit Code (huc). This narrows the search to exactly what you need.
How can I find all water monitoring sites in a specific state? +
Use the get_sites tool and provide the 2-digit USPS state code (e.g., 'CA' for California) in the stateCd parameter. This will return a list of sites and their metadata for that state.
Can I get real-time streamflow data for a specific river station? +
Yes! Use get_instantaneous_values with the specific USGS site number in the sites parameter. You can also specify parameterCd as '00060' for discharge (streamflow).
Is it possible to retrieve long-term monthly averages for a site? +
Absolutely. Use the get_statistics tool with the statReportType set to 'monthly'. This will provide approved statistical summaries based on the historical record of the site.
We've already built the connector for USGS Water Services. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 5 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.