Skip to content

Adafruit IO MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Read Adafruit IO feeds, data, groups and dashboards; publish a data point or create a feed.

Deletes · 1Changes · 1

17 tools: 1 can delete or cancel things, 1 change things and 15 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http adafruit-io https://adafruit-io.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

17 tools

Deletes or cancels 1Claude Code: deny
  • adafruitio_publish_data_pointWRITE: publish one data point (a value) to a feed.No findings

    Why it is in this group

    • The name "adafruitio_publish_data_point" says "publish": a word for a change that another call does not undo.
    • The description says "cannot be undone".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: 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.

    Annotations the server declares

    • title: Publish data point
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 1Claude Code: ask
  • adafruitio_create_feedWRITE: create a new, empty feed (private by default), optionally inside an existing group.No findings

    Why it is in this group

    • The name "adafruitio_create_feed" says "create": a word for a change.
    Description, as the server wrote it
    WRITE: 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.

    Annotations the server declares

    • title: Create feed
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 15Claude Code: allow
  • adafruitio_get_dashboardOne dashboard by key.No findings

    Why it is in this group

    • The name "adafruitio_get_dashboard" says "get": a word for reading.
    Description, as the server wrote it
    One dashboard by key. GET /dashboards/{dashboard_key}.

    Annotations the server declares

    • title: Get dashboard
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_data_pointOne stored data point of a feed by its id.No findings

    Why it is in this group

    • The name "adafruitio_get_data_point" says "get": a word for reading.
    Description, as the server wrote it
    One stored data point of a feed by its id. GET /feeds/{feed_key}/data/{id}.

    Annotations the server declares

    • title: Get data point
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_feedOne feed by key: name, description, unit, visibility, last value, status settings and the groups it belongs to.No findings

    Why it is in this group

    • The name "adafruitio_get_feed" says "get": a word for reading.
    Description, as the server wrote it
    One feed by key: name, description, unit, visibility, last value, status settings and the groups it belongs to. GET /feeds/{feed_key}.

    Annotations the server declares

    • title: Get feed
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_feed_chartAggregated 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.No findings

    Why it is in this group

    • The name "adafruitio_get_feed_chart" says "get": a word for reading.
    Description, as the server wrote it
    Aggregated 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.

    Annotations the server declares

    • title: Get feed chart data
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_feed_detailsA feed with its details block: first and last data point and the number of stored points.No findings

    Why it is in this group

    • The name "adafruitio_get_feed_details" says "get": a word for reading.
    Description, as the server wrote it
    A feed with its details block: first and last data point and the number of stored points. GET /feeds/{feed_key}/details.

    Annotations the server declares

    • title: Get feed details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_groupOne group by key with its feeds.No findings

    Why it is in this group

    • The name "adafruitio_get_group" says "get": a word for reading.
    Description, as the server wrote it
    One group by key with its feeds. GET /groups/{group_key}.

    Annotations the server declares

    • title: Get group
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_last_dataThe most recent data point of a feed (value, location, created_at).No findings

    Why it is in this group

    • The name "adafruitio_get_last_data" says "get": a word for reading.
    Description, as the server wrote it
    The most recent data point of a feed (value, location, created_at). GET /feeds/{feed_key}/data/last.

    Annotations the server declares

    • title: Get latest data point
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_throttleThe account's data rate limit (data-record modifications per minute: 30 on free accounts, 60 on Plus) and the current active data rate.No findings

    Why it is in this group

    • The name "adafruitio_get_throttle" says "get": a word for reading.
    Description, as the server wrote it
    The 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.

    Annotations the server declares

    • title: Get data rate limit
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_get_userThe Adafruit IO account this key belongs to: id, name, username, time zone, created/updated times, plus the data rate limit when reported.No findings

    Why it is in this group

    • The name "adafruitio_get_user" says "get": a word for reading.
    Description, as the server wrote it
    The 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.

    Annotations the server declares

    • title: Get user
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_list_activitiesThe account's activity log (feed/data/dashboard changes), optionally within a time range.No findings

    Why it is in this group

    • The name "adafruitio_list_activities" says "list": a word for reading.
    Description, as the server wrote it
    The account's activity log (feed/data/dashboard changes), optionally within a time range. GET /activities.

    Annotations the server declares

    • title: List activity log
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_list_blocksThe blocks (widgets: gauges, toggles, charts, sliders...) of a dashboard with their feeds, position and properties.No findings

    Why it is in this group

    • The name "adafruitio_list_blocks" says "list": a word for reading.
    Description, as the server wrote it
    The 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.

    Annotations the server declares

    • title: List dashboard blocks
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_list_dashboardsList the account's dashboards with key, name, description and visibility.No findings

    Why it is in this group

    • The name "adafruitio_list_dashboards" says "list": a word for reading.
    Description, as the server wrote it
    List the account's dashboards with key, name, description and visibility. GET /dashboards.

    Annotations the server declares

    • title: List dashboards
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_list_feed_dataData points of a feed (max 1000 per call).No findings

    Why it is in this group

    • The name "adafruitio_list_feed_data" says "list": a word for reading.
    Description, as the server wrote it
    Data 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.

    Annotations the server declares

    • title: List feed data
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_list_feedsList all of the account's feeds with key, name, description, unit, visibility, enabled flag, last value and last update.No findings

    Why it is in this group

    • The name "adafruitio_list_feeds" says "list": a word for reading.
    Description, as the server wrote it
    List all of the account's feeds with key, name, description, unit, visibility, enabled flag, last value and last update. GET /feeds.

    Annotations the server declares

    • title: List feeds
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • adafruitio_list_groupsList the account's groups (named sets of feeds) with their feeds.No findings

    Why it is in this group

    • The name "adafruitio_list_groups" says "list": a word for reading.
    Description, as the server wrote it
    List the account's groups (named sets of feeds) with their feeds. GET /groups.

    Annotations the server declares

    • title: List groups
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http adafruit-io https://adafruit-io.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__adafruit-io__adafruitio_get_user",
      "mcp__adafruit-io__adafruitio_get_throttle",
      "mcp__adafruit-io__adafruitio_list_feeds",
      "mcp__adafruit-io__adafruitio_get_feed",
      "mcp__adafruit-io__adafruitio_get_feed_details",
      "mcp__adafruit-io__adafruitio_list_feed_data",
      "mcp__adafruit-io__adafruitio_get_last_data",
      "mcp__adafruit-io__adafruitio_get_data_point",
      "mcp__adafruit-io__adafruitio_get_feed_chart",
      "mcp__adafruit-io__adafruitio_list_groups",
      "mcp__adafruit-io__adafruitio_get_group",
      "mcp__adafruit-io__adafruitio_list_dashboards",
      "mcp__adafruit-io__adafruitio_get_dashboard",
      "mcp__adafruit-io__adafruitio_list_blocks",
      "mcp__adafruit-io__adafruitio_list_activities"
    ],
    "ask": [
      "mcp__adafruit-io__adafruitio_create_feed"
    ],
    "deny": [
      "mcp__adafruit-io__adafruitio_publish_data_point"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as adafruit-io. Review it before you use it.