Platform · AI & MCP

Let AI agents operate your devices

The Thinger.io MCP server, run by the Thinger CLI, gives your AI agent the documented API. Ask in plain language, get answers from live telemetry, delegate routine operations.

AI agents·Model Context Protocol·REST API

The problem

An agent is only as good as its hands

A model can reason about pumps, but it cannot see yours. Ask it the same question with and without tools.

Model onlyno tools

YouWhich stations went silent overnight?

No tools to call

Agent

I can't see your stations from here. Open your monitoring dashboard, filter devices by last activity and look for gaps after midnight. If you paste the logs, I can help read them.

The operator goes looking

Same model+ Thinger.io MCP

YouWhich stations went silent overnight?

  1. thinger_resource_listtype: device · "PS-" 14 devices · 2 offline
  2. thinger_device_overviewPS-07 last seen 02:14
  3. thinger_device_overviewPS-11 last seen 02:31

Agent

Two of your 14 stations went silent: PS-07 at 02:14 and PS-11 at 02:31. The other twelve are online and reporting.

An answer that names the stations

Its tools reach

  • Devices and the resources they expose
  • Time series in data buckets
  • The rest of your account

The Thinger.io MCP

What the agent can do on your account

One set of tools over the documented API, bounded by your token. First a real run on a demo server, then what each family of tools reaches.

  • Cold test · demo server

    One operator question, answered from the data

    A fresh agent with no context, on the Smart Water demo: “Which points of the network had pressure or flow problems last night? Is any alarm open?” It listed the devices and the open alarms, read the night by device and checked the rule. 14 calls, none failed.

    It found three problems, and an alarm that only looked resolved.

    • SWP-06: Low pressure, 1.39 bar against a 2 bar threshold, 19:00 to 22:00.
    • SWP-05: Low flow, 40% of nominal flow.
    • SWP-01: Leak, 0.8 m³/h with the valve closed all night.
    • The leak alarm shows resolved only because irrigation opened the valve.
    Open the Smart Water demo
  • Resources

    One vocabulary for every resource

    List, get, create, update, delete and clone devices, products, buckets, dashboards, alarm rules, tokens, projects and more, picked by type. thinger_resource_describe teaches the agent each type and the platform's concepts before it writes anything.

  • Data

    Time series, by the hour and by device

    thinger_bucket_data_read reads any time range with aggregation, grouped by device and in your time zone. thinger_bucket_data_write loads history, and thinger_device_data_send sends a reading as a device would.

  • Live devices

    Read a sensor, drive an actuator

    thinger_device_overview returns status, properties, buckets and recent data in one call. thinger_device_resource_call reaches what a connected device exposes.

  • Apps

    Publish a complete custom app

    thinger_dashboard_publish publishes an HTML app built on the server's dashboard SDK. Agents built each of these eight live demos this way, from a human brief:

  • Files, plugins, docs

    And the rest of the account

    List, read, write and delete files in storages, call a plugin, and read the platform documentation with thinger_doc_read when the agent needs it.

  • Connect

    Runs through the Thinger CLI

    Install it with npm install -g @thinger-io/thinger-cli. It runs the MCP server locally over stdio for Claude Code, Claude Desktop, Cursor and other hosts, against any Thinger.io server you log in to. An MCP built into the server itself is coming.

  • Limits

    Exactly what its token allows

    The agent works through the REST API with the token of its profile, and nothing more. Deletes and overwrites act at once, so have your MCP host ask you before them.

Every tool, by nameEach takes an optional profile; most take user (admins only)

Resources

  • thinger_resource_describe
  • thinger_resource_list
  • thinger_resource_get
  • thinger_resource_create
  • thinger_resource_update
  • thinger_resource_delete
  • thinger_resource_clone
  • thinger_resource_call

Data

  • thinger_bucket_data_read
  • thinger_bucket_data_write
  • thinger_device_data_send

Live devices

  • thinger_device_overview
  • thinger_device_resource_list
  • thinger_device_resource_call
  • thinger_product_resource_call

Apps

  • thinger_dashboard_publish

Files, plugins, docs

  • thinger_storage_file_list
  • thinger_storage_file_read
  • thinger_storage_file_write
  • thinger_storage_file_delete
  • thinger_plugin_call
  • thinger_doc_read
  • thinger_profile_list

Dashboards built by agents are a product of their own. See custom dashboards

GROUNDED IN LIVE DEVICE DATA

The protocol

How MCP fits

The open Model Context Protocol links the agent to the platform. The platform keeps talking to your devices, as it always has.

An AI agent talks MCP to the Thinger.io MCP server, run locally by the Thinger CLI, which calls the Thinger.io REST API with a scoped token. The platform talks to the device fleet: pump stations, meters and gateways.

The agent never reaches a device directly. Every call goes through the platform and your permissions.

In practice

A morning with an agent on the fleet

Picking up the silent station from the top of the page: read, act, then build. An illustrative session, not a recording.

operations sessionillustrative example

operator> PS-07 went silent at 02:14. What happened before it dropped?

Agent tool calls:thinger_bucket_data_readthinger_resource_list

Battery fell from 3.9 V to 3.1 V through the evening while flow stayed normal, and no alarm fired. It points at the power supply, not the pump.

operator> Can PS-08 cover its zone until someone gets there?

Agent tool calls:thinger_device_overviewthinger_device_resource_list

Backup pump B at PS-08 is idle and healthy. Start it now?

operator> Yes, start it.

Agent tool calls:thinger_device_resource_call

Pump B is running at 12.4 l/s.

operator> Make sure we hear about this earlier, and give the night shift a view of it.

Agent tool calls:thinger_resource_createthinger_dashboard_publish

Drafted a rule for any station battery under 3.4 V, left disabled for your review. The Station power dashboard is up, with seven days of battery per station.

  1. Turn 1: Reads the history

    The same time series your dashboards plot, aggregated to the window that matters.

  2. Turn 2: Acts once you confirm

    It finds the right resource and asks first. The token decides what it may touch.

  3. Turn 3: Builds what was missing

    A rule waiting for your review and a dashboard made to measure.

Security

The agent gets a key, not your keys

Agents authenticate like any third party application: with an access token you create, scope and revoke.

There is no separate agent backdoor to audit. Every call an agent makes is an ordinary authenticated API request, subject to the same permissions as any other client.

  1. Per resource, per action

    A token can allow reading one bucket and nothing else, or operating a single device's resources. Reading and acting are separate grants.

  2. No shared passwords

    Tokens exist so applications never hold your credentials. The agent's key is not your login, and it cannot become one.

  3. Revocable at any time

    Tokens can be disabled or deleted from the console whenever you choose. Rotate them like any other machine credential.

A sober starting policy

  1. Read only first

    Telemetry and history answer most questions.

  2. Actuation, resource by resource

    Grant it once the workflow has earned it.

  3. A human confirms

    Keep a person in the loop for anything that moves water, power or money.

Token capabilities as described in the access tokens documentation.

Put an agent to work on your fleet

Create a free account, connect a device and add the Thinger CLI to your MCP client, logged in with a scoped token.