# Adafruit IO — how to use (mcp.ai)

Connect your Adafruit IO account and use 21 tools for internet of things straight from your AI agent. Connect with your own API key. Adafruit IO is a cloud platform for storing, visualizing, and acting on data from connected devices and Internet of Things projects.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_adafruit_io?ms=1787291340000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `adafruit_io_add_feeds_to_group`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/adafruit_io`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/adafruit_io/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/adafruit_io/add/feeds/to/group` — Sequentially add 1-10 existing feeds to one group using one documented provider request per feed. This is non-atomic: processing stops after the first failed or ambiguous attempt, while earlier succes
  - body: { feed_keys: string[], group_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/create/dashboard` — Create a dashboard for visualizing and controlling feed data.
  - body: { name: string, visibility?: string, description?: string, show_header?: boolean }
- `POST https://api.mcp.ai/api/adafruit_io/create/feed` — Create a feed, optionally within an existing group.
  - body: { name: string, enabled?: boolean, history?: boolean, group_key?: string, unit_type?: string, visibility?: string, description?: string, unit_symbol?: string }
- `POST https://api.mcp.ai/api/adafruit_io/create/group` — Create a group for organizing feeds.
  - body: { name: string, description?: string }
- `POST https://api.mcp.ai/api/adafruit_io/delete/dashboard` — Permanently delete one dashboard by exact key.
  - body: { dashboard_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/delete/data/point` — Permanently delete one feed data point by ID.
  - body: { data_id: string, feed_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/delete/data/points` — Permanently delete 1-30 feed data points sequentially through Adafruit IO's single-data-point DELETE endpoint, bounded by the Free-plan limit of 30 data mutations per minute. This operation is not ato
  - body: { data_ids: string[], feed_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/delete/feed` — Permanently delete one feed and its retained data by exact feed key.
  - body: { feed_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/delete/group` — Permanently delete one group by exact key.
  - body: { group_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/get/account/status` — Return compact identity, plan limits, and current data-write throttle usage for the connected Adafruit IO account.
- `POST https://api.mcp.ai/api/adafruit_io/get/dashboards` — List dashboards, or retrieve one dashboard and its blocks by key.
  - body: { dashboard_key?: string }
- `POST https://api.mcp.ai/api/adafruit_io/get/data/point` — Retrieve one feed data point by its exact ID.
  - body: { data_id: string, include?: string[], feed_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/get/feeds` — List feeds, or retrieve one feed by key with optional data summary details.
  - body: { feed_key?: string, include_details?: boolean }
- `POST https://api.mcp.ai/api/adafruit_io/get/groups` — List groups with feed summaries, or retrieve one group by key.
  - body: { group_key?: string }
- `POST https://api.mcp.ai/api/adafruit_io/list/feed/data` — Return one newest-first page of feed data with an opaque cursor for the next older page.
  - body: { limit?: integer, include?: string[], end_time?: string, feed_key: string, start_time?: string, next_cursor?: string }
- `POST https://api.mcp.ai/api/adafruit_io/publish/feed/data` — Publish one or multiple timestamped values to a feed, using the batch endpoint only when multiple points are supplied.
  - body: { data: object[], feed_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/remove/feeds/from/group` — Sequentially remove 1-10 feeds from one group using one documented provider request per feed. This is non-atomic: processing stops after the first failed or ambiguous attempt, while earlier successes 
  - body: { feed_keys: string[], group_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/update/dashboard` — Update an existing dashboard by exact dashboard key.
  - body: { name: string, visibility?: string, description?: string, show_header?: boolean, dashboard_key: string }
- `POST https://api.mcp.ai/api/adafruit_io/update/data/point` — Replace the value and optional metadata of one existing feed data point.
  - body: { ele?: number|string, lat?: number|string, lon?: number|string, value: string|integer|number|boolean, data_id: string, feed_key: string, created_at?: string }
- `POST https://api.mcp.ai/api/adafruit_io/update/feed` — Update an existing feed by exact feed key.
  - body: { name: string, enabled?: boolean, history?: boolean, feed_key: string, unit_type?: string, visibility?: string, description?: string, unit_symbol?: string }
- `POST https://api.mcp.ai/api/adafruit_io/update/group` — Update an existing group by exact group key.
  - body: { name: string, group_key: string, description?: string }

## Example prompts
- "What can I do in Adafruit IO?"
- "Show me a summary of my Adafruit IO account"

## More
- Page: https://mcp.ai/adafruit_io
- Agent spec (llms.txt): https://mcp.ai/adafruit_io/llms.txt
- Postman collection: https://mcp.ai/adafruit_io/postman.json
