Adafruit IO MCP by usefulapi
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Read Adafruit IO feeds, data, groups and dashboards; publish a data point or create a feed.
| Author | io.usefulapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 318 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Adafruit IO MCP by usefulapi": {
"url": "https://adafruit-io.usefulapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (17)
adafruitio_get_userread-onlyThe Adafruit IO account this key belongs to: id, name, username, time zone, created/updated times, plus the data rate limit when reported. GET /api/v2/user.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_throttleread-onlyThe account's data rate limit (data-record modifications per minute: 30 on free accounts, 60 on Plus) and the current active data rate. Check it before publishing many points. GET /api/v2/{username}/throttle.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_list_feedsread-onlyList all of the account's feeds with key, name, description, unit, visibility, enabled flag, last value and last update. GET /feeds.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_feedread-onlyOne feed by key: name, description, unit, visibility, last value, status settings and the groups it belongs to. GET /feeds/{feed_key}.
Parameters:
feed_key(required) — string — Feed key (the URL-safe key shown in Adafruit IO, for example 'temperature'; 'group-key.feed-key' also works).
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_feed_detailsread-onlyA feed with its details block: first and last data point and the number of stored points. GET /feeds/{feed_key}/details.
Parameters:
feed_key(required) — string — Feed key (the URL-safe key shown in Adafruit IO, for example 'temperature'; 'group-key.feed-key' also works).
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_list_feed_dataread-onlyData points of a feed (max 1000 per call). Newest first, except that with start_time the API returns the oldest page after that time. Filter by time range and limit; to read further back call again with the reply's next_page_args (the same filters plus `before`). GET /feeds/{feed_key}/data.
Parameters:
feed_key(required) — string — Feed key (the URL-safe key shown in Adafruit IO, for example 'temperature'; 'group-key.feed-key' also works).limit— integer — Maximum records to return, 1-1000 (default 100).before— string — Pagination token: next_before from the previous reply (keep the same other arguments).include— string — Comma-separated fields to return: value, lat, lon, ele, id, created_at.end_time— string — ISO 8601 date or date-time, e.g. 2026-10-01T00:00:00Z.start_time— string — ISO 8601 date or date-time, e.g. 2026-10-01T00:00:00Z.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_last_dataread-onlyThe most recent data point of a feed (value, location, created_at). GET /feeds/{feed_key}/data/last.
Parameters:
feed_key(required) — string — Feed key (the URL-safe key shown in Adafruit IO, for example 'temperature'; 'group-key.feed-key' also works).include— string — Comma-separated fields to return: value, lat, lon, ele, id, created_at.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_data_pointread-onlyOne stored data point of a feed by its id. GET /feeds/{feed_key}/data/{id}.
Parameters:
feed_key(required) — string — Feed key (the URL-safe key shown in Adafruit IO, for example 'temperature'; 'group-key.feed-key' also works).data_id(required) — string — Data point id (the `id` field of a data point).
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_feed_chartread-onlyAggregated chart data for a feed: values sliced by `resolution` minutes over the last `hours` (or a start/end range), using avg, sum, min, max, val or val_count. Good for trends without downloading every point. GET /feeds/{feed_key}/data/chart.
Parameters:
feed_key(required) — string — Feed key (the URL-safe key shown in Adafruit IO, for example 'temperature'; 'group-key.feed-key' also works).field— string — Aggregation (default avg).hours— integer — Hours of history (ignored when start_time and end_time are given).end_time— string — ISO 8601 date or date-time, e.g. 2026-10-01T00:00:00Z.resolution— Slice size in minutes.start_time— string — ISO 8601 date or date-time, e.g. 2026-10-01T00:00:00Z.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_list_groupsread-onlyList the account's groups (named sets of feeds) with their feeds. GET /groups.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_groupread-onlyOne group by key with its feeds. GET /groups/{group_key}.
Parameters:
group_key(required) — string — Group key.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_list_dashboardsread-onlyList the account's dashboards with key, name, description and visibility. GET /dashboards.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_get_dashboardread-onlyOne dashboard by key. GET /dashboards/{dashboard_key}.
Parameters:
dashboard_key(required) — string — Dashboard key.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_list_blocksread-onlyThe blocks (widgets: gauges, toggles, charts, sliders...) of a dashboard with their feeds, position and properties. Integration secrets in properties are removed. GET /dashboards/{dashboard_key}/blocks.
Parameters:
dashboard_key(required) — string — Dashboard key.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_list_activitiesread-onlyThe account's activity log (feed/data/dashboard changes), optionally within a time range. GET /activities.
Parameters:
limit— integer — Maximum entries, 1-1000.end_time— string — ISO 8601 date or date-time, e.g. 2026-10-01T00:00:00Z.start_time— string — ISO 8601 date or date-time, e.g. 2026-10-01T00:00:00Z.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
adafruitio_publish_data_pointdestructiveWRITE: publish one data point (a value) to a feed. This can drive REAL DEVICES: anything subscribed to the feed (relays, motors, lights, heaters, locks, dashboard toggles) will receive and may act on the value, and it cannot be undone from here. Only publish a value the user has asked for. Counts against the account's data rate limit (30 per minute on free accounts, 60 on Plus). POST /feeds/{feed_key}/data.
Parameters:
feed_key(required) — string — Feed key (the URL-safe key shown in Adafruit IO, for example 'temperature'; 'group-key.feed-key' also works).value(required) — The value to publish (text or number, up to 1000 characters).ele— number — Elevation of the reading in meters.lat— number — Latitude of the reading.lon— number — Longitude of the reading.
Hints: read-only no · destructive yes · idempotent no · open-world yes
adafruitio_create_feedWRITE: create a new, empty feed (private by default), optionally inside an existing group. Adds a feed only; it does not change or delete anything existing, and fails if the name is taken. POST /feeds.
Parameters:
name(required) — string — Feed name (the key is derived from it).group_key— string — Optional existing group key to create the feed in.description— string — Optional description.
Hints: read-only no · destructive no · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.