The MCP server

GageLog hosts a Model Context Protocol server — an open standard that lets a client discover and call an API as self-describing tools. Point Claude, Cursor, Zed, ChatGPT, or any MCP-compatible client at one URL, sign in with your GageLog account when it asks, and your tracked gages, 15-minute readings, and the full analytics suite become tools the client can call while you work. Included on the Field plan and above.

Nothing to provision and nothing to paste but the URL. The client opens a GageLog sign-in the first time it connects (Google or email, with 2FA if you use it), you approve it once, and it stays connected until you disconnect it.

Connect

https://gagelog.com/mcp

Claude Code

claude mcp add --transport http gagelog https://gagelog.com/mcp

Or commit a .mcp.json so a whole project connects the same way — every collaborator signs in as themselves:

{
  "mcpServers": {
    "gagelog": { "type": "http", "url": "https://gagelog.com/mcp" }
  }
}

Claude Cowork, Claude Desktop, claude.ai

Open the connector settings, add a custom connector, paste the endpoint, and approve the sign-in window that opens.

Cursor, Zed, ChatGPT, and others

Add an HTTP MCP server at the endpoint above. Any client that implements the MCP authorization flow signs you in the same way. A client that can only send a fixed header can use a Research-plan API key as Authorization: Bearer <key> instead.

What you can ask

The tool set mirrors the REST API, read-only. Each tool documents its units (CFS), date format (YYYY-MM-DD), and cost tier, so a client can plan a query without guessing.

  • Your gageslist_sources (tracked), list_available_sources, gage_metadata.
  • Readingsget_readings (raw or interval, paginated), get_latest_reading, water_year_daily, water_year_stats.
  • Analyticsflow_summary, rolling_stats, threshold_compliance, water_volume, data_quality, flow_trend, dyl_periods, compare_gages, multi_gage_summary.
  • Accountget_usage (today's quota), list_plans.

Exports and monitor changes are deliberately not tools: reads are safe to hand an assistant-style client, writes are not.

Limits and quota

Every tool call is executed against the REST API on your behalf, so it draws from the same daily quota and per-minute cost tiers described in the REST API guide — light, medium, and heavy tools cost 1, 2, and 5 units respectively. get_usage is exempt so a client can always check where it stands after a rate-limit response. Reads follow the same tracked-gage rules as the site: a tool sees the gages you track.

Connected apps and disconnecting

Every client you approve appears on your MCP server page with a Disconnect button. Disconnecting deletes that client's session immediately; it will ask you to sign in again on its next call. Sessions also end on their own if your plan drops below Field.

How the sign-in works

The server implements the MCP authorization specification: OAuth 2.1 with PKCE, dynamic client registration, and protected-resource metadata at /.well-known/oauth-protected-resource/mcp, which names GageLog as the authorization server. Access tokens are short-lived and scoped to the MCP server only — a token a client holds cannot be used to manage API keys, billing, or anything outside the tool set. If you build your own client, the discovery document is at /.well-known/oauth-authorization-server.