These are the tools an AI agent gets when you connect it to Thinger.io through the MCP server, and the resource types it can work with. The agent uses them with the permissions of your token: see Permissions. The lists on this page are generated from the MCP server itself.
Today you connect through the CLI
The MCP server runs with the thinger CLI (thinger mcp), as Connect an AI agent explains. The tools on this page are the ones of the CLI version below.
| Package | Version |
|---|---|
@thinger-io/cli | 0.3.0 |
@thinger-io/cli-core | 0.4.2 |
Tools
| Tool | Description |
|---|---|
thinger_resource_describe | Describes a resource type. |
thinger_resource_list | Lists the resources of a type, one JSON record per line, a page at a time. |
thinger_resource_get | Reads one resource as JSON. |
thinger_resource_create | Creates a resource from body, with the fields thinger_resource_describe shows. |
thinger_resource_update | Updates a resource with the fields in body and keeps the fields you leave out. |
thinger_resource_delete | Deletes a resource. |
thinger_resource_clone | Copies a resource under a new ID. |
thinger_resource_call | Runs an action of a resource that is not create, read, update or delete. |
thinger_device_resource_list | Lists the device resources a connected device exposes, with their inputs and outputs. |
thinger_device_resource_call | Calls a device resource of a connected device and returns its output. |
thinger_device_data_send | Sends data to the server on behalf of an HTTP device, as the device itself would. |
thinger_device_overview | Daily usage of all the devices of the account over the last month and, with locations, the last known position of each connected device. |
thinger_product_resource_call | Calls an API resource of a product for the product as a whole, as an external system that feeds data in would. |
thinger_bucket_data_read | Queries the time series of a Data Bucket. |
thinger_bucket_data_write | Writes samples to a Data Bucket whose data source accepts writes from the API. |
thinger_storage_file_list | Lists the files of a file storage with their path, size and modification time, optionally only under a folder. |
thinger_storage_file_read | Reads a text file of a file storage. |
thinger_storage_file_write | Creates or overwrites files in a file storage, and the folders on their path. |
thinger_storage_file_delete | Deletes a file of a file storage. |
thinger_dashboard_init | Creates a dashboard app. |
thinger_dashboard_dev | Returns a link that opens the app from its own development server (npm run dev, ng serve) as a standalone page connected to your server, with a temporary token and the context you choose. |
thinger_dashboard_publish | Uploads the build of an app to a public file storage and points dashboards at it. |
thinger_plugin_call | Calls the API that an installed plugin serves, at a path of its own. |
thinger_doc_read | Reads the guides for agents that come with the CLI. |
thinger_profile_list | Lists the profiles of the CLI. |
How the resource tools work
Most of what an agent does goes through eight generic tools, thinger_resource_describe, _list, _get, _create, _update, _delete, _clone and _call. Instead of one tool per resource, each one takes a type from the resource types table:
typenames the kind of resource:device,bucket,dashboard,alarm_rule…idnames one resource of that type, for example the device ID.parentnames the resource a child type hangs from. Adevice_propertybelongs to a device, so itsparentis the device ID; adevice_bucket_tagbelongs to a device and a Data Bucket, written<device>/<bucket>.
An agent starts with thinger_resource_describe: without arguments it lists every type and the concepts of the platform; with a type, it shows the fields and examples of that type, read from the API of your server. Then it lists resources to find their IDs, and reads, creates or changes them. Operations that are not create, read, update or delete, such as verifying a domain or testing an alarm rule, are actions run with thinger_resource_call.
Common parameters
| Parameter | Taken by | Description |
|---|---|---|
profile | Every tool except thinger_profile_list | Profile of the CLI to use for this call only: another server, or another account with its own credentials. Without it, the tool uses the default profile. See Profiles. |
user | Most tools that work on an account | Account to act on, for an administrator working on someone else's account. With a token that is not an administrator's, the call fails. See Permissions. |
A parameter that a tool does not take is never ignored: the call fails with an input_error that names the parameter and lists the ones the tool takes. This way a misspelled argument shows up at once.
Errors
A tool that fails returns an error with a code and a message, written as Error [code]: message, for example Error [not_found]: …. The codes are the same as in the JSON output of the CLI: unauthorized, not_found, already_exists, input_error, server_error and the others listed there. A call your token does not allow fails with unauthorized: Error [unauthorized]: Forbidden: the token or the account is not allowed to do this (not authorized).
Server resources
The eight thinger_resource_* tools work on every resource type of the catalog. See How the resource tools work.
thinger_resource_describe
Describes a resource type: its parent, its ID, the operations it supports and actions, and the fields and examples of its create, update and clone requests, read from the API of your server. Without type, it lists every type with a guide to the concepts of the platform: agents start here.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | No | Type to describe. Omit it to list every type. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_resource_list
Lists the resources of a type, one JSON record per line, a page at a time. Search by ID or name, and filter by product, asset type, asset group, project, labels or any field of the records.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type. See Resource types. |
parent | string | No | ID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag. |
filter | object | No | Filters as an object, for example {"product": "greenhouse"}. A field of the records filters by exact value; nested fields use dots. Alarm instances also filter by state and severity. |
search | string | No | Text to look for in IDs and names, partial and case insensitive. |
count | number | No | Page size. |
index | number | No | Position of the first record, to read the next pages. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_resource_get
Reads one resource as JSON. Single resources (device_callback, product_profile_code) take only parent.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type. See Resource types. |
parent | string | No | ID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag. |
id | string | No | Resource ID. |
full | boolean | No | For plugins of the catalog: include the product code and the console dashboard of the plugin. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_resource_create
Creates a resource from body, with the fields thinger_resource_describe shows. A projects list in the body also adds the new resource to those projects.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type. See Resource types. |
parent | string | No | ID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag. |
id | string | No | Resource ID, when the body does not carry it. |
body | object or array | No | Fields of the new resource. An array creates several at once, where the type allows it (properties). |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_resource_update
Updates a resource with the fields in body and keeps the fields you leave out. Property values are replaced, unless you set merge. A projects list in the body sets the projects the resource belongs to.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type. See Resource types. |
parent | string | No | ID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag. |
id | string | No | Resource ID. |
body | object | Yes | Fields to change. |
merge | boolean | No | Merge the body into the saved value (JSON merge) instead of replacing it. For properties and brands. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_resource_delete
Deletes a resource. It is immediate and cannot be undone: agents are told to confirm with you first.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type. See Resource types. |
parent | string | No | ID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag. |
id | string | No | Resource ID. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_resource_clone
Copies a resource under a new ID. The body holds the new ID in the ID field of the type, for example {"device": "sensor_02"}, and optionally a new name, description and enabled state.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type. See Resource types. |
parent | string | No | ID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag. |
id | string | Yes | ID of the resource to copy. |
body | object | Yes | New ID and the fields to change in the copy. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_resource_call
Runs an action of a resource that is not create, read, update or delete: verify a domain, restart a host, call an endpoint, export a product, test an alarm rule. See Actions.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Resource type. Only the types with actions. |
action | string | Yes | Action name, for example verify. |
parent | string | No | ID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag. |
id | string | No | Resource ID. |
body | any | No | Input of the action, when it takes one. |
query | object | No | Query parameters of the action, when it takes them. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
Devices and products
thinger_device_resource_list
Lists the device resources a connected device exposes, with their inputs and outputs: the ones its firmware declares and the API resources its product adds. The device must be online.
| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | Device ID. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_device_resource_call
Calls a device resource of a connected device and returns its output. With inputs it runs the resource; without them it only reads its output.
| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | Device ID. |
resource | string | Yes | Name of the device resource. |
inputs | any | No | Input value or object the device resource expects. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_device_data_send
Sends data to the server on behalf of an HTTP device, as the device itself would. The server runs the callback configured for the device: write a Data Bucket, set a property or call an endpoint.
| Parameter | Type | Required | Description |
|---|---|---|---|
device | string | Yes | Device ID of an HTTP device. |
data | any | Yes | JSON payload, for example {"temperature": 21.5}. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_device_overview
Daily usage of all the devices of the account over the last month and, with locations, the last known position of each connected device.
| Parameter | Type | Required | Description |
|---|---|---|---|
locations | boolean | No | Include the location of the devices. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_product_resource_call
Calls an API resource of a product for the product as a whole, as an external system that feeds data in would. The API resource needs a device resolver in the product code to find the device of each payload. To call it for one device, use thinger_device_resource_call.
| Parameter | Type | Required | Description |
|---|---|---|---|
product | string | Yes | Product ID. |
resource | string | Yes | Name of the API resource in the product profile. |
data | any | No | JSON payload, or an array with one payload per device. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
Data Buckets
thinger_bucket_data_read
Queries the time series of a Data Bucket: the latest samples, a time range or the last minutes, with optional aggregation by time window. With device, it reads only the records of that device.
| Parameter | Type | Required | Description |
|---|---|---|---|
bucket | string | Yes | Data Bucket ID. |
device | string | No | Device ID, to read only its records. The Data Bucket needs the device tag (product buckets have it). |
items | number | No | Number of samples to return. |
minutes | number | No | Read the last minutes, instead of min_ts and max_ts. |
min_ts | number | No | Start of the range, in Unix milliseconds. |
max_ts | number | No | End of the range, in Unix milliseconds. 0 means now. |
sort | string | No | desc (newest first, the default) or asc. |
agg | string | No | Aggregation window, for example 5m or 1h. |
agg_type | string | No | How each window is reduced: mean, max, min, sum, count, first, last, mode, median, spread or stddev. |
tz | string | No | IANA time zone of the aggregation windows, for example Europe/Madrid. Default UTC. |
fields | string or array | No | Fields to return, comma-separated or as an array. Without it, an aggregation covers the numeric fields. |
group_by | string | No | Tag to group by, for example device, to get one series per device of a product bucket. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_bucket_data_write
Writes samples to a Data Bucket whose data source accepts writes from the API: one object with the current time or ts, or an array of objects, each with its own ts. To load a long history, import a CSV file with the import action of the Data Bucket.
| Parameter | Type | Required | Description |
|---|---|---|---|
bucket | string | Yes | Data Bucket ID. |
data | object or array | Yes | Sample fields, for example {"temperature": 21.5}, or an array of samples with ts. |
ts | number | No | Time of the sample, in Unix milliseconds. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
File storages
thinger_storage_file_list
Lists the files of a file storage with their path, size and modification time, optionally only under a folder.
| Parameter | Type | Required | Description |
|---|---|---|---|
storage | string | Yes | File storage ID. |
path | string | No | Folder to list. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_storage_file_read
Reads a text file of a file storage.
| Parameter | Type | Required | Description |
|---|---|---|---|
storage | string | Yes | File storage ID. |
path | string | Yes | Path of the file in the storage, for example web/index.html. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_storage_file_write
Creates or overwrites files in a file storage, and the folders on their path. Write text with content, or upload a file or folder of your computer as is (binary files too) with local.
| Parameter | Type | Required | Description |
|---|---|---|---|
storage | string | Yes | File storage ID. |
path | string | No | Path of the file in the storage. With local, a file defaults to its own name and a folder goes under path or the root. |
content | string | No | Text of the file at path. |
local | string | No | File or folder of your computer to upload instead of content. Use it for large or binary files. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_storage_file_delete
Deletes a file of a file storage. It cannot be undone: agents are told to confirm with you first.
| Parameter | Type | Required | Description |
|---|---|---|---|
storage | string | Yes | File storage ID. |
path | string | Yes | Path of the file in the storage. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
Dashboard apps
These tools build custom dashboards as web apps on the Dashboard SDK. The workflow is in Build dashboards with AI.
thinger_dashboard_init
Creates a dashboard app: a TypeScript project on the Dashboard SDK from one of the templates of the SDK package (React by default, or Angular), with a thinger.json manifest for thinger_dashboard_dev and thinger_dashboard_publish, and an AGENTS.md with the rules of the dashboard frame.
| Parameter | Type | Required | Description |
|---|---|---|---|
dir | string | Yes | New or empty folder for the app: absolute, or relative to the folder the MCP server runs in. |
template | string | No | Template of the SDK package: react (default) or angular. |
to | object | No | Where the app is published, as in thinger_dashboard_publish: {type, id} or {dashboard}. The development link uses its context too. |
storage | string | No | File storage the app is published to. By default, a new name made from the folder name. |
from | string | No | SDK package to take the template from: a version or tag on npm (default, the latest release), or a local folder or .tgz file. |
ci | boolean | No | Add a GitHub workflow that publishes the app on every push to main. |
install | boolean | No | Run npm install in the new project. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_dashboard_dev
Returns a link that opens the app from its own development server (npm run dev, ng serve) as a standalone page connected to your server, with a temporary token and the context you choose. The app gets real data and reloads on every change. Each call replaces the token of the previous link.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Address of the app on its development server, for example http://localhost:5173/. |
to | object | No | Destination whose context the app gets, as in thinger_dashboard_publish. |
context | object | No | Or the context itself: device, product, asset type, asset group or project IDs. |
route | string | No | Initial route of the app, for example /devices. |
dir | string | No | Project folder of the app, to check that its SDK works with your server. Default, the folder the MCP server runs in. |
hours | number | No | How long the temporary token lasts, in hours. Default 8. |
allow_remote | boolean | No | Allow an address that is not on your computer. The link carries a token with full access: use it only for a development server you trust. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_dashboard_publish
Uploads the build of an app to a public file storage and points dashboards at it. Both parts are optional: upload a new build, point more dashboards at an app already uploaded, or both. It warns when the SDK of the app needs a newer server, when a newer SDK is on npm, or when a page loads the deprecated thinger-dashboard.js script.
| Parameter | Type | Required | Description |
|---|---|---|---|
storage | string | No | Public file storage of the app, created if it does not exist. Required unless there is one destination. |
dir | string | No | Folder of your computer to upload, with its subfolders, for example the build output. |
files | object | No | Or the files inline, as an object of paths and contents. |
prune | boolean | No | Delete the files of the storage that are not in this upload. |
to | array | No | Destinations: {dashboard} for a dashboard of the Dashboards list, or {type, id} with type device, product, asset_type, asset_group or project. |
bump | boolean | No | Make consoles that have the app open reload it at once, instead of on their next load. |
preview | boolean or number | No | Also return standalone links to review or share each destination in a browser, with a read-only token. true, or the number of hours the links last. |
point | boolean | No | false only builds the preview links, without pointing the dashboards again. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
Plugins
thinger_plugin_call
Calls the API that an installed plugin serves, at a path of its own. What it offers depends on the plugin: see its page in the plugin catalog.
| Parameter | Type | Required | Description |
|---|---|---|---|
plugin | string | Yes | Plugin ID. |
path | string | No | Path in the API of the plugin, for example /api/status. |
method | string | No | HTTP method. Default get. One of get, post, put, patch, delete. |
body | any | No | JSON body, for post, put and patch. |
query | object | No | Query parameters. |
user | string | No | Account to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
Docs and profiles
thinger_doc_read
Reads the guides for agents that come with the CLI: concepts of the platform, product code, server administration and the Dashboard SDK reference. Without id, it lists them. See Docs and resources.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | No | Guide ID, from the list. |
profile | string | No | CLI profile (server and credentials) for this call only. Omit it to use the default profile. See thinger_profile_list. |
thinger_profile_list
Lists the profiles of the CLI: each one is a server with its own credentials. Pass a profile name as profile to any other tool to use that server for one call. Another account on the same server is reached with user, not with a profile.
It takes no parameters.
Resource types
Every type the thinger_resource_* tools can reach. The operations name the tool that runs each one:
| Operation | Tool |
|---|---|
| list | thinger_resource_list |
| get | thinger_resource_get |
| create | thinger_resource_create |
| update | thinger_resource_update |
| merge | thinger_resource_update with merge: true: merges the body into the saved value. |
| delete | thinger_resource_delete |
| clone | thinger_resource_clone |
| projects | The projects field of a create or update body: the projects the resource belongs to. |
Types marked Administrator are the administration of the server: they need an administrator token. See Permissions.
| Type | Description | Parent | Operations | Administrator |
|---|---|---|---|---|
device | Devices of the account: IOTMP, MQTT, HTTP and virtual devices. | list, get, create, update, delete, clone, projects | ||
product | Products: the shared configuration and profile of a fleet of devices. | list, get, create, update, delete, clone, projects | ||
bucket | Data Buckets: time series data. Read and write their data with thinger_bucket_data_read and thinger_bucket_data_write. | list, get, create, update, delete, clone, projects | ||
dashboard | Dashboards. Custom ones are apps on the Dashboard SDK, published with thinger_dashboard_publish. | list, get, create, update, delete, clone, projects | ||
endpoint | Endpoints: outgoing HTTP calls, emails and notifications. | list, get, create, update, delete, clone, projects | ||
storage | File storages. Their files are handled with the thinger_storage_file_* tools. | list, get, create, update, delete, clone, projects | ||
asset_type | Asset types: a category of devices, with its own properties. | list, get, create, update, delete, clone, projects | ||
asset_group | Asset groups: a set of devices, such as a site, with its own properties. | list, get, create, update, delete, clone, projects | ||
project | Projects: group resources of any type to share them or show them together. | list, get, create, update, delete, clone | ||
token | Access tokens of the account, with their permissions. | list, get, create, update, delete, clone, projects | ||
alarm_rule | Alarm rules: conditions on device or bucket data that raise alarms. | list, get, create, update, delete, clone, projects | ||
alarm_instance | Alarms raised by the rules. Update one to acknowledge, shelve or clear it. | list, get, update, delete, projects | ||
claim | Device claims: codes that let end users take ownership of a device. | list, get, create, update, delete, clone, projects | ||
property | Properties of the account: JSON values stored on the account. | list, get, create, update, merge, delete, clone | ||
role | Roles: named sets of permissions for the members of a project. | list, get, create, update, delete, clone | ||
sync | Syncs: shared semaphores with slots that devices or scripts take to coordinate. | list, get, create, update, delete, clone, projects | ||
plugin | Plugins installed on the account. Install and control them with their actions; call their API with thinger_plugin_call. | list, get | ||
user | User accounts of the server. | list, get, create, update, delete | Yes | |
host | Hosts of the server cluster. | list, get, create, update, delete | Yes | |
domain | Custom domains the server answers on. | list, get, create, update, delete | Yes | |
brand | Brands: the look and the email settings of the console on a domain. | list, get, create, update, merge, delete | Yes | |
oauth_client | OAuth2 clients: applications allowed to sign users in against the server. | list, get, create, update, delete | Yes | |
identity_provider | Identity providers: external sign-in for the console (OpenID Connect, OAuth2). | list, get, create, update, delete | Yes | |
proxy | Proxies: services the server exposes through its own address. | list, get, create, update, delete | Yes | |
sync_lock | Locks of a sync: the slots currently taken. | sync: <sync> | list, get, create, update, delete | |
device_property | Properties of a device: its structured state, such as configuration or calibration. | device: <device> | list, get, create, update, merge, delete, clone | |
device_token | Access tokens limited to one device and some of its device resources. | device: <device> | list, create, delete | |
device_bucket | Data Buckets that hold data of a device (list only). | device: <device> | list | |
device_bucket_tag | Tags of a Data Bucket for one device. | device_bucket: <device>/<bucket> | list, get | |
device_service | Services a device exposes, such as a web interface or VNC. | device: <device> | list, get | |
device_callback | HTTP callback of a device: what the server does with the data it receives. | device: <device> | get, update (single resource, no id) | |
product_property | Properties of a product. | product: <product> | list, get, create, update, merge, delete, clone | |
product_profile_api | API resources a product adds to its devices. | product: <product> | list, get, create, update, delete | |
product_profile_bucket | Data Buckets a product keeps for each of its devices. | product: <product> | list, get, create, update, delete | |
product_profile_property | Properties a product writes on each of its devices. | product: <product> | list, get, create, update, delete | |
product_profile_autoprovision | Autoprovisioning rules: which connecting devices join the product. | product: <product> | list, get, create, update, delete | |
product_profile_flow | Data flows of a product. | product: <product> | list, get, create, update, delete | |
product_profile_code | Code of a product: the JavaScript the server runs for its devices. | product: <product> | get, update (single resource, no id) | |
product_service | Services a product exposes on its devices. | product: <product> | list, get, create, update, delete | |
bucket_tag | Tags of a Data Bucket and their values. | bucket: <bucket> | list, get | |
bucket_export | Exports of a Data Bucket: files generated from its data. | bucket: <bucket> | list, create, delete | |
plugin_property | Properties of a plugin, usually its configuration. | plugin: <plugin> | list, get, create, update, merge, delete, clone | |
asset_type_property | Properties of an asset type. | asset_type: <type> | list, get, create, update, merge, delete, clone | |
asset_group_property | Properties of an asset group. | asset_group: <group> | list, get, create, update, merge, delete, clone | |
project_property | Properties of a project. | project: <project> | list, get, create, update, merge, delete, clone | |
project_member | Members a project is shared with, and their roles. | project: <project> | list, get, create, update, delete | |
project_role | Roles defined in a project. | project: <project> | list, get, create, update, delete, clone |
Actions
Actions are run with thinger_resource_call, giving the type, the action and, for most of them, the id. Use thinger_resource_describe with the type to see the body an action takes.
| Type | Action | Description |
|---|---|---|
device | stats | Daily usage of the device over the last month: traffic and calls. |
product | export | The product with everything it depends on, as one JSON document, to back it up or recreate it. |
bucket | import | Loads the records of a CSV file already uploaded to a file storage into the Data Bucket. The way to load a long history. |
endpoint | call | Runs the endpoint with body as its payload and returns its answer. |
alarm_rule | test_rule | Evaluates a rule, saved or given in body, without raising alarms or sending notifications. |
alarm_rule | test_source | Reads one data source as the rule would. |
alarm_rule | test_notification | Sends the notification of the rule for real, through its endpoints: people receive it. |
alarm_instance | stats | How many alarms there are in each state, without listing them. |
plugin | install | Installs a plugin of the catalog with the settings in body. It is installed stopped: start it next. |
plugin | upgrade | Upgrades the plugin to another version, keeping its data. It is left stopped: start it next. |
plugin | remove | Uninstalls the plugin and deletes its files, data and properties. |
plugin | start | Starts the plugin. |
plugin | stop | Stops the plugin. |
plugin | restart | Restarts the plugin. |
plugin | pause | Pauses the plugin. |
plugin | unpause | Resumes a paused plugin. |
plugin | kill | Kills the plugin. |
plugin | public | Makes the web interface of the plugin reachable without signing in. |
plugin | private | Makes the web interface of the plugin require signing in again. |
host | logs | The last lines of the log of the host, as text. |
host | restart | Restarts the host: its devices and users lose the connection meanwhile. |
host | read_settings | Reads the settings of the host. |
host | update_settings | Replaces the settings of the host with body. |
domain | verify | Checks that the domain resolves to the server, after you configure its DNS. |
brand | test_email | Sends a test email with the email settings of the brand. |
product_profile_api | replace_all | Replaces every API resource of the product at once with body. |
product_profile_bucket | replace_all | Replaces every bucket of the product profile at once with body. |
product_profile_property | replace_all | Replaces every property of the product profile at once with body. |
product_profile_autoprovision | replace_all | Replaces every autoprovisioning rule of the product at once with body. |
product_profile_flow | replace_all | Replaces every data flow of the product at once with body. |
Docs and resources
The MCP server also serves guides written for agents. They come with the CLI and are offered in two ways, with the same content:
- As MCP resources, with the URIs below. Clients that support resources let you attach them to a conversation.
- With the tool
thinger_doc_read, for agents and clients that only use tools. Withoutidit lists the guides.
| Guide | Resource | Content |
|---|---|---|
concepts | thinger://concepts | How projects, devices, products, Data Buckets, asset types and groups, properties, alarms, endpoints, file storages, tokens, dashboards and events relate, and which data source fits each need. |
product-code | thinger://product-code | The JavaScript a product runs: functions that compute device resources (virtual devices), payload transforms and the device resolver. |
server-admin | thinger://server-admin | For administrators: host settings and restarts, custom domains and brands, user accounts, OAuth2 clients, identity providers and proxies, with their side effects. |
dashboard-sdk | thinger://dashboard-sdk | The Dashboard SDK reference: install it, run apps in the console or standalone, routing, context and every call. |
dashboard-sdk-types | thinger://dashboard-sdk-types | The TypeScript declarations of the Dashboard SDK. |
These guides are not the documentation of this site. To give an agent this documentation, see Docs for agents.