Skip to content

Commit ba858b6

Browse files
committed
revised tool section
Signed-off-by: Dhaval Patel <pateldha@us.ibm.com>
1 parent f021052 commit ba858b6

2 files changed

Lines changed: 20 additions & 8 deletions

File tree

INSTRUCTIONS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ Six FastMCP servers cover IoT data, time-series ML, work orders, vibration diagn
127127

128128
| Server | Tools | Categories | Backing service |
129129
| ----------- | ----- | ------------------------ | -------------------------------------- |
130-
| `iot` | 4 | read | CouchDB |
130+
| `iot` | 7 | read | CouchDB (telemetry + asset registry) |
131131
| `utilities` | 3 | read | none |
132132
| `fmsr` | 2 | read, LLM-use | LiteLLM + `failure_modes.yaml` |
133133
| `wo` | 14 | read, write | CouchDB |

docs/mcp-servers.md

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,17 @@ Six FastMCP servers expose the AssetOpsBench domain logic. Each is a standalone
1313

1414
## iot — IoT Sensor Data
1515

16+
The IoT server reads from **two** databases: telemetry readings (`IOT_DBNAME`, default `iot`) and an
17+
asset **registry** (`ASSET_DBNAME`, default `asset`, loaded from `asset_profile_sample.json`). The
18+
two answer different questions: `assets()`/`sensors()` reflect TELEMETRY — what actually streams (the
19+
**measured** set); `get_asset()`/`asset_sensors()`/`registry_assets()` reflect the REGISTRY — the
20+
asset nameplate and the **installed** sensor inventory (by name). Comparing `asset_sensors()` against
21+
`sensors()` surfaces sensors that are installed but not streaming. The registry also reconciles ids
22+
across systems (Maximo `assetnum`, telemetry `iot_asset_id`, work-order `wo_assetnum`), so an asset
23+
can be looked up by any of its ids.
24+
1625
**Path:** `src/servers/iot/main.py`
17-
**Requires:** CouchDB (`COUCHDB_URL`, `COUCHDB_USERNAME`, `COUCHDB_PASSWORD`, `IOT_DBNAME`)
26+
**Requires:** CouchDB (`COUCHDB_URL`, `COUCHDB_USERNAME`, `COUCHDB_PASSWORD`, `IOT_DBNAME`, `ASSET_DBNAME`)
1827

1928
**Sample assets shipped in the `iot` database** (loaded by `src/couchdb/couchdb_setup.sh`):
2029

@@ -26,12 +35,15 @@ Six FastMCP servers expose the AssetOpsBench domain logic. Each is a standalone
2635

2736
Synthetic motor vibration data (`asset_id: Motor_01`, from `motor_01.json`) ships in a separate `vibration` database for the vibration MCP server.
2837

29-
| Tool | Category | Arguments | Description |
30-
| --------- | -------- | ------------------------------------------ | ----------------------------------------------------------------------- |
31-
| `sites` | read || List all available sites |
32-
| `assets` | read | `site_name` | List all asset IDs for a site |
33-
| `sensors` | read | `site_name`, `asset_id` | List sensor names for an asset |
34-
| `history` | read | `site_name`, `asset_id`, `start`, `final?` | Fetch historical sensor readings for a time range (ISO 8601 timestamps) |
38+
| Tool | Arguments | Description |
39+
| ----------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
40+
| `sites` || List all sites, discovered dynamically from the asset registry (`siteid`) |
41+
| `assets` | `site_name` | List asset ids registered at a site (telemetry id where present, else `assetnum`) |
42+
| `sensors` | `site_name`, `asset_id` | List **measured** sensor names for an asset (union of keys across its telemetry docs) |
43+
| `history` | `site_name`, `asset_id`, `start`, `final?` | Fetch historical sensor readings for a time range (ISO 8601 timestamps) |
44+
| `get_asset` | `site_name`, `asset_id` | Registry/nameplate detail for one asset (description, assettype, status, location, vintage, installed count) |
45+
| `asset_sensors` | `site_name`, `asset_id` | List the **installed** sensors for an asset, by name (registry inventory) |
46+
| `registry_assets` | `site_name`, `assettype?` | List registry assets with metadata (assettype, vintage, sensor count), optionally filtered by assettype |
3547

3648
## utilities — Utilities
3749

0 commit comments

Comments
 (0)