Skip to content

AI & MCP

MCP tools

Every tool the Thinger.io MCP server offers to AI agents, with its parameters, and every resource type the agents can reach.

Reference25 min read

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.

PackageVersion
@thinger-io/cli0.3.0
@thinger-io/cli-core0.4.2

Tools ​

ToolDescription
thinger_resource_describeDescribes a resource type.
thinger_resource_listLists the resources of a type, one JSON record per line, a page at a time.
thinger_resource_getReads one resource as JSON.
thinger_resource_createCreates a resource from body, with the fields thinger_resource_describe shows.
thinger_resource_updateUpdates a resource with the fields in body and keeps the fields you leave out.
thinger_resource_deleteDeletes a resource.
thinger_resource_cloneCopies a resource under a new ID.
thinger_resource_callRuns an action of a resource that is not create, read, update or delete.
thinger_device_resource_listLists the device resources a connected device exposes, with their inputs and outputs.
thinger_device_resource_callCalls a device resource of a connected device and returns its output.
thinger_device_data_sendSends data to the server on behalf of an HTTP device, as the device itself would.
thinger_device_overviewDaily 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_callCalls an API resource of a product for the product as a whole, as an external system that feeds data in would.
thinger_bucket_data_readQueries the time series of a Data Bucket.
thinger_bucket_data_writeWrites samples to a Data Bucket whose data source accepts writes from the API.
thinger_storage_file_listLists the files of a file storage with their path, size and modification time, optionally only under a folder.
thinger_storage_file_readReads a text file of a file storage.
thinger_storage_file_writeCreates or overwrites files in a file storage, and the folders on their path.
thinger_storage_file_deleteDeletes a file of a file storage.
thinger_dashboard_initCreates a dashboard app.
thinger_dashboard_devReturns 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_publishUploads the build of an app to a public file storage and points dashboards at it.
thinger_plugin_callCalls the API that an installed plugin serves, at a path of its own.
thinger_doc_readReads the guides for agents that come with the CLI.
thinger_profile_listLists 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:

  • type names the kind of resource: device, bucket, dashboard, alarm_rule…
  • id names one resource of that type, for example the device ID.
  • parent names the resource a child type hangs from. A device_property belongs to a device, so its parent is the device ID; a device_bucket_tag belongs 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 ​

ParameterTaken byDescription
profileEvery tool except thinger_profile_listProfile 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.
userMost tools that work on an accountAccount 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.

ParameterTypeRequiredDescription
typestringNoType to describe. Omit it to list every type.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
typestringYesResource type. See Resource types.
parentstringNoID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag.
filterobjectNoFilters 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.
searchstringNoText to look for in IDs and names, partial and case insensitive.
countnumberNoPage size.
indexnumberNoPosition of the first record, to read the next pages.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
typestringYesResource type. See Resource types.
parentstringNoID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag.
idstringNoResource ID.
fullbooleanNoFor plugins of the catalog: include the product code and the console dashboard of the plugin.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
typestringYesResource type. See Resource types.
parentstringNoID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag.
idstringNoResource ID, when the body does not carry it.
bodyobject or arrayNoFields of the new resource. An array creates several at once, where the type allows it (properties).
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
typestringYesResource type. See Resource types.
parentstringNoID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag.
idstringNoResource ID.
bodyobjectYesFields to change.
mergebooleanNoMerge the body into the saved value (JSON merge) instead of replacing it. For properties and brands.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
typestringYesResource type. See Resource types.
parentstringNoID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag.
idstringNoResource ID.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
typestringYesResource type. See Resource types.
parentstringNoID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag.
idstringYesID of the resource to copy.
bodyobjectYesNew ID and the fields to change in the copy.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
typestringYesResource type. Only the types with actions.
actionstringYesAction name, for example verify.
parentstringNoID of the parent resource, for child types: the device of a device_property, or <device>/<bucket> for a device_bucket_tag.
idstringNoResource ID.
bodyanyNoInput of the action, when it takes one.
queryobjectNoQuery parameters of the action, when it takes them.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
devicestringYesDevice ID.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
devicestringYesDevice ID.
resourcestringYesName of the device resource.
inputsanyNoInput value or object the device resource expects.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
devicestringYesDevice ID of an HTTP device.
dataanyYesJSON payload, for example {"temperature": 21.5}.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
locationsbooleanNoInclude the location of the devices.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
productstringYesProduct ID.
resourcestringYesName of the API resource in the product profile.
dataanyNoJSON payload, or an array with one payload per device.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
bucketstringYesData Bucket ID.
devicestringNoDevice ID, to read only its records. The Data Bucket needs the device tag (product buckets have it).
itemsnumberNoNumber of samples to return.
minutesnumberNoRead the last minutes, instead of min_ts and max_ts.
min_tsnumberNoStart of the range, in Unix milliseconds.
max_tsnumberNoEnd of the range, in Unix milliseconds. 0 means now.
sortstringNodesc (newest first, the default) or asc.
aggstringNoAggregation window, for example 5m or 1h.
agg_typestringNoHow each window is reduced: mean, max, min, sum, count, first, last, mode, median, spread or stddev.
tzstringNoIANA time zone of the aggregation windows, for example Europe/Madrid. Default UTC.
fieldsstring or arrayNoFields to return, comma-separated or as an array. Without it, an aggregation covers the numeric fields.
group_bystringNoTag to group by, for example device, to get one series per device of a product bucket.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
bucketstringYesData Bucket ID.
dataobject or arrayYesSample fields, for example {"temperature": 21.5}, or an array of samples with ts.
tsnumberNoTime of the sample, in Unix milliseconds.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
storagestringYesFile storage ID.
pathstringNoFolder to list.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
storagestringYesFile storage ID.
pathstringYesPath of the file in the storage, for example web/index.html.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
storagestringYesFile storage ID.
pathstringNoPath of the file in the storage. With local, a file defaults to its own name and a folder goes under path or the root.
contentstringNoText of the file at path.
localstringNoFile or folder of your computer to upload instead of content. Use it for large or binary files.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
storagestringYesFile storage ID.
pathstringYesPath of the file in the storage.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
dirstringYesNew or empty folder for the app: absolute, or relative to the folder the MCP server runs in.
templatestringNoTemplate of the SDK package: react (default) or angular.
toobjectNoWhere the app is published, as in thinger_dashboard_publish: {type, id} or {dashboard}. The development link uses its context too.
storagestringNoFile storage the app is published to. By default, a new name made from the folder name.
fromstringNoSDK package to take the template from: a version or tag on npm (default, the latest release), or a local folder or .tgz file.
cibooleanNoAdd a GitHub workflow that publishes the app on every push to main.
installbooleanNoRun npm install in the new project.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
urlstringYesAddress of the app on its development server, for example http://localhost:5173/.
toobjectNoDestination whose context the app gets, as in thinger_dashboard_publish.
contextobjectNoOr the context itself: device, product, asset type, asset group or project IDs.
routestringNoInitial route of the app, for example /devices.
dirstringNoProject folder of the app, to check that its SDK works with your server. Default, the folder the MCP server runs in.
hoursnumberNoHow long the temporary token lasts, in hours. Default 8.
allow_remotebooleanNoAllow 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.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
storagestringNoPublic file storage of the app, created if it does not exist. Required unless there is one destination.
dirstringNoFolder of your computer to upload, with its subfolders, for example the build output.
filesobjectNoOr the files inline, as an object of paths and contents.
prunebooleanNoDelete the files of the storage that are not in this upload.
toarrayNoDestinations: {dashboard} for a dashboard of the Dashboards list, or {type, id} with type device, product, asset_type, asset_group or project.
bumpbooleanNoMake consoles that have the app open reload it at once, instead of on their next load.
previewboolean or numberNoAlso 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.
pointbooleanNofalse only builds the preview links, without pointing the dashboards again.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
pluginstringYesPlugin ID.
pathstringNoPath in the API of the plugin, for example /api/status.
methodstringNoHTTP method. Default get. One of get, post, put, patch, delete.
bodyanyNoJSON body, for post, put and patch.
queryobjectNoQuery parameters.
userstringNoAccount to act on, when it is not yours. Needs an administrator token. Omit it to act on your own account.
profilestringNoCLI 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.

ParameterTypeRequiredDescription
idstringNoGuide ID, from the list.
profilestringNoCLI 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:

OperationTool
listthinger_resource_list
getthinger_resource_get
createthinger_resource_create
updatethinger_resource_update
mergethinger_resource_update with merge: true: merges the body into the saved value.
deletethinger_resource_delete
clonethinger_resource_clone
projectsThe 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.

TypeDescriptionParentOperationsAdministrator
deviceDevices of the account: IOTMP, MQTT, HTTP and virtual devices.list, get, create, update, delete, clone, projects
productProducts: the shared configuration and profile of a fleet of devices.list, get, create, update, delete, clone, projects
bucketData 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
dashboardDashboards. Custom ones are apps on the Dashboard SDK, published with thinger_dashboard_publish.list, get, create, update, delete, clone, projects
endpointEndpoints: outgoing HTTP calls, emails and notifications.list, get, create, update, delete, clone, projects
storageFile storages. Their files are handled with the thinger_storage_file_* tools.list, get, create, update, delete, clone, projects
asset_typeAsset types: a category of devices, with its own properties.list, get, create, update, delete, clone, projects
asset_groupAsset groups: a set of devices, such as a site, with its own properties.list, get, create, update, delete, clone, projects
projectProjects: group resources of any type to share them or show them together.list, get, create, update, delete, clone
tokenAccess tokens of the account, with their permissions.list, get, create, update, delete, clone, projects
alarm_ruleAlarm rules: conditions on device or bucket data that raise alarms.list, get, create, update, delete, clone, projects
alarm_instanceAlarms raised by the rules. Update one to acknowledge, shelve or clear it.list, get, update, delete, projects
claimDevice claims: codes that let end users take ownership of a device.list, get, create, update, delete, clone, projects
propertyProperties of the account: JSON values stored on the account.list, get, create, update, merge, delete, clone
roleRoles: named sets of permissions for the members of a project.list, get, create, update, delete, clone
syncSyncs: shared semaphores with slots that devices or scripts take to coordinate.list, get, create, update, delete, clone, projects
pluginPlugins installed on the account. Install and control them with their actions; call their API with thinger_plugin_call.list, get
userUser accounts of the server.list, get, create, update, deleteYes
hostHosts of the server cluster.list, get, create, update, deleteYes
domainCustom domains the server answers on.list, get, create, update, deleteYes
brandBrands: the look and the email settings of the console on a domain.list, get, create, update, merge, deleteYes
oauth_clientOAuth2 clients: applications allowed to sign users in against the server.list, get, create, update, deleteYes
identity_providerIdentity providers: external sign-in for the console (OpenID Connect, OAuth2).list, get, create, update, deleteYes
proxyProxies: services the server exposes through its own address.list, get, create, update, deleteYes
sync_lockLocks of a sync: the slots currently taken.sync: <sync>list, get, create, update, delete
device_propertyProperties of a device: its structured state, such as configuration or calibration.device: <device>list, get, create, update, merge, delete, clone
device_tokenAccess tokens limited to one device and some of its device resources.device: <device>list, create, delete
device_bucketData Buckets that hold data of a device (list only).device: <device>list
device_bucket_tagTags of a Data Bucket for one device.device_bucket: <device>/<bucket>list, get
device_serviceServices a device exposes, such as a web interface or VNC.device: <device>list, get
device_callbackHTTP callback of a device: what the server does with the data it receives.device: <device>get, update (single resource, no id)
product_propertyProperties of a product.product: <product>list, get, create, update, merge, delete, clone
product_profile_apiAPI resources a product adds to its devices.product: <product>list, get, create, update, delete
product_profile_bucketData Buckets a product keeps for each of its devices.product: <product>list, get, create, update, delete
product_profile_propertyProperties a product writes on each of its devices.product: <product>list, get, create, update, delete
product_profile_autoprovisionAutoprovisioning rules: which connecting devices join the product.product: <product>list, get, create, update, delete
product_profile_flowData flows of a product.product: <product>list, get, create, update, delete
product_profile_codeCode of a product: the JavaScript the server runs for its devices.product: <product>get, update (single resource, no id)
product_serviceServices a product exposes on its devices.product: <product>list, get, create, update, delete
bucket_tagTags of a Data Bucket and their values.bucket: <bucket>list, get
bucket_exportExports of a Data Bucket: files generated from its data.bucket: <bucket>list, create, delete
plugin_propertyProperties of a plugin, usually its configuration.plugin: <plugin>list, get, create, update, merge, delete, clone
asset_type_propertyProperties of an asset type.asset_type: <type>list, get, create, update, merge, delete, clone
asset_group_propertyProperties of an asset group.asset_group: <group>list, get, create, update, merge, delete, clone
project_propertyProperties of a project.project: <project>list, get, create, update, merge, delete, clone
project_memberMembers a project is shared with, and their roles.project: <project>list, get, create, update, delete
project_roleRoles 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.

TypeActionDescription
devicestatsDaily usage of the device over the last month: traffic and calls.
productexportThe product with everything it depends on, as one JSON document, to back it up or recreate it.
bucketimportLoads the records of a CSV file already uploaded to a file storage into the Data Bucket. The way to load a long history.
endpointcallRuns the endpoint with body as its payload and returns its answer.
alarm_ruletest_ruleEvaluates a rule, saved or given in body, without raising alarms or sending notifications.
alarm_ruletest_sourceReads one data source as the rule would.
alarm_ruletest_notificationSends the notification of the rule for real, through its endpoints: people receive it.
alarm_instancestatsHow many alarms there are in each state, without listing them.
plugininstallInstalls a plugin of the catalog with the settings in body. It is installed stopped: start it next.
pluginupgradeUpgrades the plugin to another version, keeping its data. It is left stopped: start it next.
pluginremoveUninstalls the plugin and deletes its files, data and properties.
pluginstartStarts the plugin.
pluginstopStops the plugin.
pluginrestartRestarts the plugin.
pluginpausePauses the plugin.
pluginunpauseResumes a paused plugin.
pluginkillKills the plugin.
pluginpublicMakes the web interface of the plugin reachable without signing in.
pluginprivateMakes the web interface of the plugin require signing in again.
hostlogsThe last lines of the log of the host, as text.
hostrestartRestarts the host: its devices and users lose the connection meanwhile.
hostread_settingsReads the settings of the host.
hostupdate_settingsReplaces the settings of the host with body.
domainverifyChecks that the domain resolves to the server, after you configure its DNS.
brandtest_emailSends a test email with the email settings of the brand.
product_profile_apireplace_allReplaces every API resource of the product at once with body.
product_profile_bucketreplace_allReplaces every bucket of the product profile at once with body.
product_profile_propertyreplace_allReplaces every property of the product profile at once with body.
product_profile_autoprovisionreplace_allReplaces every autoprovisioning rule of the product at once with body.
product_profile_flowreplace_allReplaces 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. Without id it lists the guides.
GuideResourceContent
conceptsthinger://conceptsHow 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-codethinger://product-codeThe JavaScript a product runs: functions that compute device resources (virtual devices), payload transforms and the device resolver.
server-adminthinger://server-adminFor administrators: host settings and restarts, custom domains and brands, user accounts, OAuth2 clients, identity providers and proxies, with their side effects.
dashboard-sdkthinger://dashboard-sdkThe Dashboard SDK reference: install it, run apps in the console or standalone, routing, context and every call.
dashboard-sdk-typesthinger://dashboard-sdk-typesThe 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.

See also ​