CAMARON MCP Tools

Connect your favorite AI agent (ChatGPT, Claude Desktop, Cursor) to your CAMARON account with the Model Context Protocol. Tools run as the signed-in user via OAuth 2.1 — the agent never sees your password.

Connect your client

Server URL
https://ewrrjkgyeffqofvzjojz.supabase.co/functions/v1/mcp
OAuth issuer
https://ewrrjkgyeffqofvzjojz.supabase.co/auth/v1
Transport
Streamable HTTP (MCP 2025-06-18)
Auth
OAuth 2.1 with dynamic client registration

Rate limits

Each tool is limited to 60 calls per minute per user. Exceeding the quota returns a structured RATE_LIMITED error envelope with aretryAfterSeconds hint.

Error envelope

All tool errors follow one shape so agents can branch on the code:

  • UNAUTHENTICATED — OAuth session missing or expired
  • INVALID_INPUT — arguments failed semantic validation
  • NOT_FOUND — requested resource does not exist
  • FORBIDDEN_RLS — Postgres row-level security denied access
  • RATE_LIMITED — per-user, per-tool quota exceeded
  • INTERNAL — unexpected failure, message is sanitised
{
  "content": [{ "type": "text", "text": "[RATE_LIMITED] Rate limit exceeded for tool list_recent_logs. Try again in 42s. {...}" }],
  "structuredContent": {
    "error": {
      "code": "RATE_LIMITED",
      "message": "Rate limit exceeded for tool list_recent_logs. Try again in 42s.",
      "details": { "tool": "list_recent_logs", "retryAfterSeconds": 42, "limit": 60 }
    }
  },
  "isError": true
}

Tools

List recent crop data logs

list_recent_logsread-only

Return the signed-in user's most recent crop_data_logs entries (water quality, feed, mortality).

ParamTypeRequiredDescription
limitintegernoMax rows (default 10).
pond_idstring (uuid)noOptional pond UUID filter.

Request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_recent_logs",
    "arguments": { "limit": 3 }
  }
}

Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{ "type": "text", "text": "[ ...3 log rows... ]" }],
    "structuredContent": {
      "rows": [
        {
          "id": "6e0b...",
          "pond_id": "82b1...",
          "log_date": "2026-07-04",
          "dissolved_oxygen": 6.2,
          "ph": 7.8,
          "temperature": 28.4,
          "salinity": 15,
          "ammonia": 0.02,
          "feed_kg": 45.5,
          "mortality_count": 3,
          "average_body_weight": 18.1
        }
      ]
    }
  }
}

List notifications

list_notificationsread-only

Return the signed-in user's most recent notifications (info, warning, critical).

ParamTypeRequiredDescription
limitintegernoMax rows (default 10).
unread_onlybooleannoIf true, return only unread notifications.

Request

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "list_notifications",
    "arguments": { "limit": 5, "unread_only": true }
  }
}

Response

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "structuredContent": {
      "rows": [
        {
          "id": "n_01",
          "title": "Low DO alert",
          "message": "Pond A dropped below 4 mg/L",
          "severity": "warning",
          "is_read": false,
          "created_at": "2026-07-05T02:14:00Z"
        }
      ]
    }
  }
}

Look up species profile

lookup_speciesread-only

Search CAMARON's species reference (optimal water params, growth rates, stocking densities, FCR). Case-insensitive name match.

ParamTypeRequiredDescription
querystringyesSpecies common or scientific name fragment, e.g. 'vannamei'.
limitintegerno

Request

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "lookup_species",
    "arguments": { "query": "vannamei", "limit": 1 }
  }
}

Response

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "structuredContent": {
      "rows": [
        {
          "common_name": "Pacific White Shrimp",
          "scientific_name": "Litopenaeus vannamei",
          "water_nature": "Brackish",
          "optimal_temp_min": 26,
          "optimal_temp_max": 32,
          "optimal_ph_min": 7.5,
          "optimal_ph_max": 8.5,
          "target_fcr": 1.4,
          "typical_stocking_density": 60
        }
      ]
    }
  }
}