Skip to main content
Glama

AetherEdge

Code Check License Rust Version Status

Product site: aetheriot.ai · Developer site: aetheriot.dev

Documentation: docs.aetheriot.ai · Getting started · User journeys · Connect devices · Protocol adapters · Connect AI · 中文

Connect physical devices, prove the data path, and commission deterministic behavior—without making the cloud, a browser, or an AI model part of the control loop.

AetherEdge is an open-source, industry-neutral IoT edge kernel, six-service runtime, CLI, and Rust SDK for Linux gateways. Shared memory is authoritative for live point state; embedded SQLite stores desired state, history, audit, and a durable outbox. The default distribution needs no Redis, PostgreSQL, cloud service, browser, or LLM.

AI is a replaceable client behind the same typed, governed application boundary as every other client. Device control is deny-by-default, explicitly confirmed, and audited. Already commissioned acquisition, safety, rules, and alarms keep running deterministically when every external client is disconnected.

Is AetherEdge the right starting point?

You want to…

Start with…

Connect field devices and run local behavior on a Linux gateway

AetherEdge

Deploy an energy-management solution and operator Console

AetherEMS

Coordinate an edge fleet or cloud jobs

AetherCloud

Implement or validate a shared protocol

AetherContracts

AetherEdge's direct users are device manufacturers, system integrators, solution builders, application developers, and edge operators. It deliberately does not pretend to be a finished application for every industry.

Related MCP server: thingworx-mcp

From a blank host to a useful Edge

The product journey is:

safe-empty install -> operator identity -> disabled device channel
  -> physical/logical point mapping -> read-only data proof
  -> reviewed behavior -> explicit commissioning -> audit and operation

Every consequential change follows:

inspect -> plan -> validate -> confirm -> apply -> audit -> observe -> revise

Creating configuration never silently enables hardware.

1. Install a safe-empty runtime

Download the matching .run package and checksum from GitHub Releases, then verify and run the fresh-install package on the target Linux host:

sha256sum -c AetherEdge-<arch>-<version>.run.sha256
chmod +x AetherEdge-<arch>-<version>.run
sudo ./AetherEdge-<arch>-<version>.run

The installer creates the six services, aether CLI, private bootstrap credentials, embedded database, and an empty configuration. It does not add a device, enable a rule, or install a domain solution.

2. Establish identity and prove the empty runtime

Start with the local health gate:

aether doctor

A healthy first boot has six healthy services and valid SHM. Sign in with the private bootstrap credential, change that password immediately, create a dedicated account for normal operation, and export its signed AETHER_ACCESS_TOKEN. Then prove that nothing was commissioned implicitly:

aether channels list --json
aether models instances list --json
aether rules list --json

The channel, instance, and rule collections should all be empty. Getting Started covers the exact bootstrap and token flow.

3. Create one channel—still disabled

Choose a protocol included in the installed IO build. A governed create command requires authentication and confirmation, but the new channel remains disabled unless --enabled true is explicitly requested:

AETHER_ACCESS_TOKEN='<signed access JWT>' aether channels create \
  --name "PLC#1" \
  --protocol modbus_tcp \
  --params '{"host":"192.168.1.10","port":502}' \
  --confirmed

Before enabling it, declare the physical points, map protocol addresses, bind the required points to a logical instance supplied by a Domain Pack, and review unresolved mappings. Follow Connect Devices for that complete workflow and the Protocol Adapter Reference for the exact feature, runtime ID, transport, and mapping matrix.

4. Prove observation before control

device -> aether-io -> authoritative SHM -> API and embedded history -> client

Verify channel health, timestamps, quality, freshness, topology generation, historical samples, and unmapped points. A connected socket without fresh data is not a healthy acquisition path, and a missing value is not zero.

Once the mapping is complete, enable the channel with the latest desired-state revision returned by the channel query:

AETHER_ACCESS_TOKEN='<signed access JWT>' aether channels enable <CHANNEL_ID> \
  --expected-revision <REVISION> \
  --confirmed

The first useful milestone is a read-only data path. Do not add physical commands merely to prove acquisition.

5. Add and commission deterministic behavior

Add logical models, calculations, alarms, and local rules through a downstream Domain Pack or application composition. Draft rules and control paths stay disabled until their inputs, targets, permissions, failure behavior, and audit path have been reviewed.

review disabled behavior -> validate -> confirm -> enable
  -> inspect audit evidence -> observe the physical outcome

A successful command acceptance is not proof that the physical device reached the requested state. Observe that outcome separately.

6. Choose a replaceable client

All clients enter through authenticated aether-api:6005:

Client

Use it for

aether CLI

Installation, commissioning, diagnostics, and operations

HTTP/OpenAPI

Dedicated applications and generated clients

Read-only MCP

AI-assisted inspection and explanation

Temporary write-enabled MCP

One bounded, explicitly authorized maintenance task

aether-edge-sdk

A downstream solution or embedded composition

Downstream Console

A domain-specific operator experience, such as AetherEMS

The other five process APIs stay on loopback. Clients must not proxy them or write SHM or SQLite directly. AetherEdge ships no universal Web Console; a UI is a replaceable application client, never a second state authority.

To attach an existing runtime to Claude in the default read-only mode:

claude mcp add aether -- aether mcp

Set AETHER_ACCESS_TOKEN for the session. Use SSH stdio or an HTTPS ingress for a remote Edge—never expose an internal service port. See Connect AI Assistants.

Developing without field hardware

Run the industry-neutral SDK composition or a protocol verification simulator. Neither commissions a physical device:

cargo run -p aether-example-minimal-gateway
cargo run -p simulator -- \
  --scenario tools/simulator/scenarios/modbus_protocol_verification.yaml \
  --port 5020

A source checkout is a developer path, not the normal operator installation flow. See Getting Started.

Build a downstream solution

cargo add aether-edge-sdk --features local-runtime

aether-edge-sdk, imported as aether_sdk, is the supported Rust application facade. A downstream product combines the SDK, a Domain Pack, and a dedicated application or agent in its own repository. Domain processors, models, and Consoles do not become dependencies of the AetherEdge kernel. AetherEMS is the reference energy-domain implementation of this model.

Runtime model

Process

Responsibility

aether-io

Protocol acquisition and sole telemetry/status writer

aether-automation

Instances, rules, and audited control dispatch

aether-alarm

Alarm evaluation and lifecycle

aether-history

Embedded history and optional history adapters

aether-api

Authenticated remote application API and WebSocket

aether-uplink

Durable legacy Cloud/MQTT delivery and experimental CloudLink foundation

Devices -> aether-io -> authoritative SHM
                         |-> automation and alarms
                         |-> API and embedded history
                         `-> durable outbox -> optional cloud

              domain <- ports <- application <- runtime/interfaces
                        ^
                        `---- downstream static Rust adapters (out of tree)

AetherEdge currently delivers the integrator-grade runtime, application contracts, governed commands, MCP foundations, Pack v1, and SDK facade. The complete conversational intent compiler, simulation, temporary behavior, and continuous outcome evaluation remain product direction. See the platform status for the exact delivery boundary.

Contributing

Development setup and verification live in CONTRIBUTING.md. Repository rules for agents and contributors live in AGENTS.md.

License

Licensed under either MIT or Apache-2.0, at your option.

Available Tools

16 tools
alarms_listA

List active alarms, optionally filtered by channel/level/keyword

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
sizeNoPage size
levelNoFilter by warning level (1=low, 2=medium, 3=high)
channelNoFilter by channel ID
keywordNoKeyword search across rule name, channel, point

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states listing active alarms but does not disclose pagination behavior, ordering, or scope of results (all vs. user-accessible). Schema adds pagination params but behavioral details are minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no fluff, front-loaded with purpose and key behavior. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description adequately covers the core behavior. It lacks details on return format or pagination specifics, but the schema handles parameter context. Slightly above average for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for each parameter. The description adds only a brief summary of available filters ('channel/level/keyword'), which adds minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action 'list' and the resource 'active alarms', and mentions optional filters. It effectively distinguishes from siblings like alarms_rule_get (single rule) and alarms_rules_list (list rules).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives like alarms_stats or history_latest. Usage context is implied but not clarified (e.g., only active alarms, no historical).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alarms_rule_getB

Get a specific alarm rule by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAlarm rule ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It implies a read operation ('Get') but does not explicitly state that it is non-destructive, requires any permissions, or has rate limits. For a simple retrieval, more could be said about its safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded with the key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and sibling tools that return lists, the description could mention the return format or that it returns the full rule object. It is minimal and leaves the agent guessing about complete behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameter description, and the description adds no additional meaning beyond what the schema already provides for the 'id' parameter. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Get), resource (alarm rule), and scope (by ID). It effectively distinguishes from sibling tools like alarms_rules_list (list) and rules_get (different resource).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as alarms_rules_list for listing or rules_get for a different rule type. The description only states the basic action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alarms_rules_listA

List alarm rules, optionally filtered by channel/enabled/level/keyword

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
sizeNoPage size
levelNoFilter by warning level (1=low, 2=medium, 3=high)
channelNoFilter by channel ID
enabledNoFilter by enabled/disabled state
keywordNoKeyword search across rule name, channel, point

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, yet the description omits any behavioral traits such as pagination, rate limits, or side effects. For a read operation, minimal transparency is offered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is highly concise, front-loaded with the core action, and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a listing tool with no output schema, the description is sufficient but could mention pagination or result ordering. However, it adequately covers the filtering options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 6 parameters have schema descriptions (100% coverage), so the tool description adds no new meaning beyond the optional filtering, providing baseline value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List alarm rules, optionally filtered by channel/enabled/level/keyword' clearly states the resource (alarm rules) and action (list), and distinguishes from siblings like alarms_list (alarms vs rules) and alarms_rule_get (single rule).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing with filters but provides no exclusions or comparisons to sibling tools like rules_list or alarms_stats, leaving the agent to infer when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

alarms_statsB

Get aggregate alarm statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. 'Get' suggests read-only, but no details on expected behavior (e.g., returns aggregated counts, may be faster than listing all alarms, always returns a single object). The lack of output schema or behavioral notes makes it hard for the agent to predict the call's outcome.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extraneous words. Perfectly concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite simplicity, the description lacks crucial context: what constitutes 'aggregate alarm statistics'? Expected return values (e.g., total count, breakdown by status, time range)? Without this, the agent cannot fully anticipate the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema coverage is 100% (empty). Per guidelines, 0 params baseline is 4. The description adds no parameter-specific information because there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get aggregate alarm statistics', which clearly identifies the verb (Get) and resource (aggregate alarm statistics). This distinguishes it from siblings like alarms_list (which lists individual alarms) and alarms_rule_get (which gets a specific rule). However, it could be more specific about what 'aggregate' means (e.g., counts, severity distribution).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The description implies usage for retrieving overall statistics, but does not contrast with sibling tools like alarms_list. An agent might infer that this is for summary data vs. detailed list, but the guidance is weak.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channels_mappingsB

Show a channel's point-to-instance mappings

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesChannel ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies a read-only operation with the word 'Show', and there is no contradiction with missing annotations. However, no additional behavioral details (e.g., permissions, rate limits, or side effects) are disclosed, leaving the agent with minimal insight beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundant words. It is front-loaded and efficient, stating the tool's purpose directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, no output schema, no annotations), the description is minimally adequate. It does not explain the return format or the nature of 'point-to-instance mappings', which would help an agent understand the output without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (channel_id described as 'Channel ID'), and the description adds no extra meaning beyond what is already in the schema. The tool's single parameter is adequately documented in the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Show' and the resource 'channel's point-to-instance mappings', giving a specific purpose. It distinguishes from siblings like channels_points (general points) and channels_points_mapping (mapping operations), but does not elaborate on what the mappings are.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No information is provided about when to use this tool versus alternatives such as channels_points_mapping or channels_unmapped_points. The description gives no contextual guidance or use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channels_pointsA

List points on a channel, optionally filtered by type (T/S/C/A)

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesChannel ID
point_typeNoOptional point-type filter: T | S | C | A

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states it lists points but does not disclose pagination, error handling, or other behavior. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, to the point, with no wasted words. Front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 2 parameters and no output schema, the description is minimally complete. It lacks details on result set size, ordering, or additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with both parameters documented. The description adds no new meaning beyond the schema, so baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'points on a channel', with an optional filter. It is specific and distinguishes from sibling tools like channels_mappings and channels_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions an optional filter but provides no explicit guidance on when to use this tool versus siblings or alternatives. Usage is implied but not detailed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channels_points_mappingC

Show the instance mapping for a single point

ParametersJSON Schema
NameRequiredDescriptionDefault
point_idYesPoint ID
channel_idYesChannel ID
point_typeYesPoint type: T | S | C | A

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description fails to disclose behavioral traits such as read-only, destructive potential, or rate limits. Only a brief purpose statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 3 parameters fully described in schema, no output schema or annotations. The description does not explain return format, error handling, or preconditions, leaving the agent with incomplete context for a single point lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; each parameter (point_id, channel_id, point_type) has a basic description in the schema. The tool description adds no additional meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Show' and resource 'instance mapping for a single point'. It distinguishes from sibling 'channels_mappings' which likely lists all mappings. However, 'instance mapping' could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like 'channels_mappings' or 'channels_points'. No context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channels_statusB

Get the connection status of a specific channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesChannel ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must fully convey behavioral traits. It only states 'Get the connection status' without detailing side effects, caching, or what the status entails (e.g., format, possible values). Insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words. However, it lacks details that might be expected for completeness (e.g., output description), so it is slightly undersized given the absence of annotations and output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should at least hint at the return format or possible values of the connection status. It does not, leaving the agent with incomplete context for a tool of moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (100%) and the schema already describes the single parameter (channel_id). The description adds no additional meaning beyond the schema, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Get) and resource (connection status of a specific channel). It is specific and distinguishable from sibling tools like channels_mappings or channels_points.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., when only need status vs. full channel details). The description lacks explicit when/when-not or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channels_unmapped_pointsA

List points on a channel that have no protocol address mapping (points not wired to a device register; instance routing is a separate concern)

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesChannel ID

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. While the tool name implies a read operation, the description does not explicitly state read-only behavior, required permissions, or any side effects. This omission limits transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently communicates the tool's purpose and scope, with no unnecessary words. It is front-loaded with the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and no output schema, the description adequately conveys what will be returned (unmapped points). However, it does not detail the output format or fields, which might be needed for precise invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for its single parameter (channel_id). The description adds no additional meaning beyond the schema's description, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists points on a channel lacking protocol address mapping, using a specific verb ('List') and resource ('unmapped points'). It differentiates from siblings like 'channels_points' (likely all points) and 'channels_points_mapping' (mappings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes that instance routing is a separate concern, indicating when not to use this tool. This helps the agent choose between this and related tools for routing or mapping queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

history_latestB

Get the latest historical value for a point

ParametersJSON Schema
NameRequiredDescriptionDefault
point_idYesPoint ID within that series
series_keyYesLogical key identifying the series, e.g. "io:1001:T"

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'get' implying read-only, but does not specify any other behavioral traits such as authentication needs, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, very concise and front-loaded. It avoids unnecessary words while clearly conveying the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description is too minimal. It does not explain what 'latest' means or describe the return format, leaving important contextual gaps for a tool with two parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The tool description does not add any additional meaning beyond the schema, so it meets the baseline of 3 without extra credit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('the latest historical value for a point'). It is specific and distinguishing from sibling tools like alarms_list or rules_list, which do not involve historical values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or context. It simply states what it does without indicating when it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

models_instancesA

List device instances, optionally filtered by product type

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoFilter by product type, e.g. "ESS", "Battery"

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the basic action (list) but does not disclose any behavioral traits such as return format, pagination, authorization requirements, or side effects. The description is too minimal for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with no unnecessary words. It is front-loaded and communicates the core function effectively. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description covers the basics. However, it lacks details on default behavior, pagination, or potential volume of results. The context of sibling tools suggests some overlap, but the description does not address this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, so baseline is 3. The description adds 'optionally filtered' which is already implied by the parameter being nullable, so marginal added value. No detailed format or constraints beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List device instances' with optional filtering by product type. The verb 'List' and resource 'device instances' are specific and unambiguous. It distinguishes from sibling tool 'models_products' which lists product types, making the purpose distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing instances with optional filter, but provides no explicit guidance on when to use this tool versus alternatives like 'models_products' or 'history_latest'. No when-not or alternative names given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

models_productsB

List available product types

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It only says 'List available product types', omitting any behavioral traits like authentication needs, rate limits, or result characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, no wasted words. It is appropriately sized for a simple tool, though could slightly expand on result details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description is adequate but minimal. It lacks details on pagination, sorting, or what constitutes a product type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema description coverage is 100%. The description adds no parameter info, which is acceptable given zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List available product types' clearly states the action and resource. It distinguishes from sibling tools like alarms_list or rules_list by focusing on product types, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as models_instances or other list tools. The description does not mention context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

routing_listA

List all M2C/C2M routing entries

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says 'list', which implies read-only behavior. It does not disclose any potential side effects, permissions, pagination, or return format. Basic transparency is achieved but could be improved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence with no unnecessary words. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool, the description is largely complete. However, it could mention whether the list is complete or paginated, and what fields are returned, but the absence is not critical given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100% by default. The description does not need to add parameter meaning. Per guidelines, 0 parameters yields a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and the specific resource (routing entries of type M2C/C2M), distinguishing it from sibling tools which deal with alarms, channels, rules, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. However, since there are no other routing-related tools, the usage context is implied but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_getB

Get a specific business rule by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_idYesRule ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as permissions required, side effects, or error handling (e.g., behavior when rule_id is not found). This leaves the agent without critical context for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using a single sentence that immediately conveys the core purpose. No extraneous information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (single parameter, no output schema, no nested objects), the description is minimally adequate. However, it would benefit from mentioning that the rule details are returned or clarifying the requirement for rule_id to be valid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'rule_id' described as 'Rule ID'. The tool description adds no additional semantic meaning beyond what the schema already provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'business rule by ID', distinguishing it from sibling tools like 'rules_list' which lists all rules. However, it lacks details on what constitutes a 'business rule' and what the response contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a specific rule ID is available, but no explicit guidance on when not to use this tool or alternatives like 'rules_list' or 'alarms_rule_get' is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_listB

List all business rules

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits. It only states it lists all business rules, implying a read-only operation, but omits details about pagination, limits, or output format. The description is insufficient for understanding side effects or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It is concise and directly conveys the tool's action. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description provides basic understanding. However, it lacks differentiation from sibling tools like 'alarms_rules_list', and omits any mention of scope or limitations, leaving some ambiguity about what 'business rules' encompasses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and the schema coverage is trivially 100%. The description adds no parameter details because none exist, which is acceptable. The baseline for no parameters is 4, and the description does not detract from this.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List all business rules' clearly states the action (list) and the resource (business rules), fulfilling the basic purpose. However, it does not differentiate from sibling tools like 'rules_get' or 'alarms_rules_list', which could cause ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'rules_get' (for a specific rule) or 'alarms_rules_list' (for alarm-specific rules). The description implies a generic listing scenario but lacks explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

templates_listB

List channel configuration templates, optionally filtered by protocol

ParametersJSON Schema
NameRequiredDescriptionDefault
protocolNoFilter by protocol, e.g. "modbus"

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'List', implying a read-only operation, but does not mention pagination, authorization requirements, or the structure of the response. For a simple listing tool, this is adequate but lacks detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the core purpose. Every word is necessary; there is no filler. It is appropriately concise for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description should explain what the output looks like or provide context about template types. It does not; it only repeats the filter option. For a complete description, more details on the return format or template structure are needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the single parameter 'protocol' has a description). The description's phrase 'optionally filtered by protocol' adds no new semantic value beyond the schema's 'Filter by protocol, e.g. "modbus"'. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'List' and the resource 'channel configuration templates', clearly stating the action and object. It also mentions optional filtering by protocol, which adds precision. The tool name 'templates_list' is sufficiently distinct from sibling tools like 'alarms_list' or 'routing_list'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'routing_list' or 'channels_mappings'. There is no mention of prerequisites, context, or scenarios where this tool should be preferred. The usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes, especially across different domains like alarms, history, models, and rules. However, the channels tools (channels_mappings, channels_points_mapping, channels_unmapped_points) have overlapping functionalities that could cause confusion, though descriptions mostly clarify the differences.

Naming Consistency4/5

All tools use a consistent domain prefix followed by an underscore and a descriptive term. While the second part mixes verbs (get, query, list) and nouns (instances, products, status), the pattern is predictable and readable. Minor inconsistency with 'channels_points_mapping' vs 'channels_unmapped_points' but overall clear.

Tool Count4/5

With 17 tools, the set is slightly above the typical 3-15 range but still well-scoped for a multi-domain IoT management server. Each tool serves a clear purpose and the count feels appropriate for the breadth of functionality covered.

Completeness2/5

The toolset is heavily read-only, with only get/list/query operations. Missing create, update, or delete tools for alarms, channels, rules, and templates. This is a significant gap for lifecycle management, likely causing agent failures if any mutation is needed.

Maintenance

ActivityActive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with inSCADA systems via the Model Context Protocol, providing 39 tools for live data, alarms, scripts, historical analysis, charts, and more.
    39
    66
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for PTC ThingWorx, the IIoT platform, providing 8 tools for AI agents to read live state and trigger actions across the industrial asset graph with env-gated safety for writes and invocations.
    8
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with safe, governed read access to industrial control systems (OPC-UA, Modbus, S7, Mitsubishi, MTConnect, MQTT/Sparkplug) plus cross-protocol diagnostics for troubleshooting data breaks, alarm floods, and unhealthy tags.
    2
    153
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EvanL1/AetherEdge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server