Skip to content
Eden Engine

Ohio DNR GIS Layer Query: Records by Where Clause (ArcGIS)

ohiodnrgis/query-layer

Queries one layer of an Ohio Department of Natural Resources map service with a SQL where clause and returns the matching records' attributes (no geometry), 1 to 50 per page with an offset for further pages; for example earthquake epicenters with magnitude 4 or more from DGS_Services/Earthquakes_EB layer 4. Field names come from the layer details tool. A where clause the layer cannot run, or a layer that does not exist, is an upstream error. Dates are epoch milliseconds. Data from the Ohio Department of Natural Resources, served by Eden Engine; not an official Ohio DNR product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Data source

Ohio Department of Natural Resources

Data from the Ohio Department of Natural Resources (gis.ohiodnr.gov). Served by Eden Engine; not an official Ohio DNR product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "ohiodnrgis/query-layer" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "ohiodnrgis/query-layer" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "ohiodnrgis/query-layer", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "ohiodnrgis/query-layer", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 24, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "folder",
    "service",
    "layer_id",
    "where"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Records to return, 1 to 50. Defaults to 10."
    },
    "where": {
      "type": "string",
      "maxLength": 300,
      "minLength": 1,
      "description": "SQL where clause on the layer's field names, for example \"MAG >= 4\" or \"COUNTY = 'LAKE'\". Use \"1=1\" for no filter."
    },
    "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "maxLength": 80,
      "minLength": 1,
      "description": "Folder name from the folder list, for example 'DGS_Services' (geological survey), 'DOG_Services' (oil and gas) or 'DOW_Services' (wildlife)."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "description": "Records to skip, for reading further pages. Defaults to 0."
    },
    "service": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "maxLength": 80,
      "minLength": 1,
      "description": "Service name inside the folder, as listed without the folder prefix, for example 'Earthquakes_EB' or 'Ohio_Water_Wells'."
    },
    "layer_id": {
      "type": "integer",
      "maximum": 999,
      "minimum": 0,
      "description": "Layer id inside the service, for example 4."
    },
    "out_fields": {
      "type": "string",
      "default": "*",
      "pattern": "^(\\*|[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*)$",
      "maxLength": 300,
      "description": "Comma list of field names to return, or * for all. Defaults to *."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "features"
  ],
  "properties": {
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Name, type and alias of each returned field."
    },
    "features": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "object",
            "description": "The record's fields by name.",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "description": "One entry per matching record; empty when nothing matches."
    },
    "fieldAliases": {
      "type": "object",
      "additionalProperties": true
    },
    "displayFieldName": {
      "type": "string"
    },
    "exceededTransferLimit": {
      "type": "boolean",
      "description": "True when more records match than were returned; read the next page with offset."
    }
  },
  "additionalProperties": true
}