FieldClimate MCP by usefulapi

Read weather station data, sensors, farms, fields and crop zones in FieldClimate.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
69%
Naming quality
74%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'fieldclimate_list_sensor_catalog' name length outside 3-30 rangein fieldclimate_list_sensor_catalog
  • LOWTool 'fieldclimate_list_station_sensors' name length outside 3-30 rangein fieldclimate_list_station_sensors
  • LOWTool 'fieldclimate_get_station_data_range' name length outside 3-30 rangein fieldclimate_get_station_data_range
  • LOWTool 'fieldclimate_get_last_station_data' name length outside 3-30 rangein fieldclimate_get_last_station_data
  • LOWTool 'fieldclimate_get_station_data_period' name length outside 3-30 rangein fieldclimate_get_station_data_period

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,134Tokens (tool definitions)
~720 BTypical response size
Moderate attention impact (1.67% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "fieldclimate": {
      "url": "https://fieldclimate.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://fieldclimate.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (16)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢fieldclimate_get_user

The FieldClimate account of the API key: username, company, address and settings. GET /user.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_sensor_catalog

The FieldClimate sensor catalogue: sensor codes, names and units, for reading station sensor data. GET /system/sensors.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_crops

The crops known to FieldClimate, for crop zones. GET /system/crops.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_stations

All weather stations and devices linked to the account, with names, positions and rights. GET /user/stations.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_get_station(stationId)

One station: name, position, rights, configuration and dates. GET /station/{stationId}.

Input Schema

{
  "type": "object",
  "properties": {
    "stationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_][A-Za-z0-9_.-]{0,63}$",
      "description": "Device (station) ID from fieldclimate_list_stations, for example an 8-character device ID."
    }
  },
  "required": [
    "stationId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_station_sensors(stationId)

The sensors of one station, with names, units and calibration. GET /station/{stationId}/sensors.

Input Schema

{
  "type": "object",
  "properties": {
    "stationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_][A-Za-z0-9_.-]{0,63}$",
      "description": "Device (station) ID from fieldclimate_list_stations, for example an 8-character device ID."
    }
  },
  "required": [
    "stationId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_get_station_data_range(stationId)

The first and last dates with data for one station. Use it before a data read to see if new data arrived. GET /data/{stationId}.

Input Schema

{
  "type": "object",
  "properties": {
    "stationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_][A-Za-z0-9_.-]{0,63}$",
      "description": "Device (station) ID from fieldclimate_list_stations, for example an 8-character device ID."
    }
  },
  "required": [
    "stationId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_get_last_station_data(stationId, dataGroup, timePeriod)

Station measurements for the last period (for example 24h or 7d) in one data group. GET /data/{stationId}/{dataGroup}/last/{timePeriod}.

Input Schema

{
  "type": "object",
  "properties": {
    "stationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_][A-Za-z0-9_.-]{0,63}$",
      "description": "Device (station) ID from fieldclimate_list_stations, for example an 8-character device ID."
    },
    "dataGroup": {
      "type": "string",
      "enum": [
        "raw",
        "hourly",
        "daily",
        "monthly"
      ],
      "description": "Data group: raw, hourly, daily or monthly."
    },
    "timePeriod": {
      "type": "string",
      "pattern": "^[1-9][0-9]{0,3}[hdwm]?$",
      "description": "How far back to read from now: for example 24h, 7d, 2w or 3m."
    }
  },
  "required": [
    "stationId",
    "dataGroup",
    "timePeriod"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_get_station_data_period(stationId, dataGroup, from, to)

Station measurements between two unix timestamps (seconds) in one data group. The vendor tier limits the history. GET /data/{stationId}/{dataGroup}/from/{from}/to/{to}.

Input Schema

{
  "type": "object",
  "properties": {
    "stationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_][A-Za-z0-9_.-]{0,63}$",
      "description": "Device (station) ID from fieldclimate_list_stations, for example an 8-character device ID."
    },
    "dataGroup": {
      "type": "string",
      "enum": [
        "raw",
        "hourly",
        "daily",
        "monthly"
      ],
      "description": "Data group: raw, hourly, daily or monthly."
    },
    "from": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4102444800,
      "description": "Start of the period: unix timestamp in seconds (UTC)."
    },
    "to": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4102444800,
      "description": "End of the period: unix timestamp in seconds (UTC)."
    }
  },
  "required": [
    "stationId",
    "dataGroup",
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_farms

All farms of the account. GET /farms.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_get_farm(farmID)

One farm of the account. GET /farms/{farmID}.

Input Schema

{
  "type": "object",
  "properties": {
    "farmID": {
      "type": "string",
      "pattern": "^[0-9a-f]{24}$",
      "description": "Farm ID (24 hex characters) from fieldclimate_list_farms."
    }
  },
  "required": [
    "farmID"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_farm_fields(farmID)

The fields of one farm. GET /farms/{farmID}/fields.

Input Schema

{
  "type": "object",
  "properties": {
    "farmID": {
      "type": "string",
      "pattern": "^[0-9a-f]{24}$",
      "description": "Farm ID (24 hex characters) from fieldclimate_list_farms."
    }
  },
  "required": [
    "farmID"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_fields

All fields of the account, across farms. GET /fields.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_get_field(fieldID)

One field: name, farm and boundary data. GET /fields/{fieldID}.

Input Schema

{
  "type": "object",
  "properties": {
    "fieldID": {
      "type": "string",
      "pattern": "^[0-9a-f]{24}$",
      "description": "Field ID (24 hex characters) from fieldclimate_list_fields or fieldclimate_list_farm_fields."
    }
  },
  "required": [
    "fieldID"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_list_crop_zones

All crop zones of the account: crops, sowing and harvest dates, and soil data. GET /crop-zones.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fieldclimate_get_crop_zone(cropzoneID)

One crop zone: crop, dates, boundary, soil and irrigation events. GET /crop-zones/{cropzoneID}.

Input Schema

{
  "type": "object",
  "properties": {
    "cropzoneID": {
      "type": "string",
      "pattern": "^[0-9a-f]{24}$",
      "description": "Crop zone ID (24 hex characters) from fieldclimate_list_crop_zones."
    }
  },
  "required": [
    "cropzoneID"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded16 tools