AssetOpsBenchBLOCK
AssetOpsBench - Industry 4.0: A unified benchmark and framework for building, orchestrating, and evaluating domain-specific AI agents for Industry 4.0 asset operations and maintenance, with 460+ scenarios, 5 specialist agents (IoT, FMSR, TSFM, Work Order,...), and multi-agent orchestration blueprint
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
AI Agents for Industrial Asset Operations & Maintenance
A unified, open framework for building, orchestrating, and evaluating domain-specific AI agents in Industry 4.0.
[](https://github.com/IBM/AssetOpsBench/stargazers) [](https://github.com/IBM/AssetOpsBench/network/members) [](LICENSE) [](#publications) [](#ai-competitions) [](#ai-competitions)
[](#) [](#) [](#publications) [](#publications) [](#publications) [](#publications) [](#publications) [](#publications)
📄 **Paper** · 🤗 **Dataset** · 🎮 **Playground** · 📢 **IBM Blog** · 🎥 [Video](https://www.youtube.com/watch?v=kXmB
76c35330ddcbOBSERVED · 2026-09-28Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add assetopsbench-mcp --env COUCHDB_PASSWORD=${COUCHDB_PASSWORD} --env LITELLM_API_KEY=${LITELLM_API_KEY} --env WATSONX_APIKEY=${WATSONX_APIKEY} -- uvx assetopsbench-mcp{
"mcpServers": {
"assetopsbench-mcp": {
"command": "uvx",
"args": [
"assetopsbench-mcp"
],
"env": {
"COUCHDB_PASSWORD": "${COUCHDB_PASSWORD}",
"LITELLM_API_KEY": "${LITELLM_API_KEY}",
"WATSONX_APIKEY": "${WATSONX_APIKEY}"
}
}
}
}Exposed tools (69)
58 read · 11 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
add_failure_modes | write | WRITE failure modes for an asset class to the database. |
assess_vibration_severity | read | Classify vibration severity per ISO 10816. |
asset_detail | read | Return registry details for one asset. |
asset_ids | read | List asset identifiers registered at one site. |
assets | read | List assets at one site with compact registry metadata. |
calculate_bearing_frequencies | read | Compute bearing characteristic frequencies (BPFO, BPFI, BSF, FTF) from geometry. |
compute_envelope_spectrum | read | Compute the envelope spectrum for bearing fault detection. |
compute_fft_spectrum | read | Compute FFT amplitude spectrum of a stored vibration signal. |
count_features | read | Count the feature catalog cards by kind. |
count_models | read | Count the models in the catalog. |
current_date_time | read | Provides the current date time as a JSON object. |
current_time_english | read | Returns the current time in English text. |
data_quality | read | Assess data quality for a time-series dataset and produce a cleaned file pointer. |
deprecate_feature | read | Mark a feature catalog card as deprecated. |
deprecate_model | read | Retire a model card by setting `status=deprecated`. |
describe_candidates | write | Return a shortlist of candidate models for a task, in catalog order. |
describe_features | read | Describe specific feature cards by name. |
describe_models | read | Return a compact record for each of the given model ids. |
diagnose_vibration | read | Full automated vibration diagnosis pipeline. |
extract_features | read | Compute scalar feature values from a series with the named extractors. |
find_assets_by_sensors | read | Find site assets by installed or measured sensor names. |
find_models | read | Filter the model catalog for a task and return a ranked shortlist. |
generate_failure_modes | read | GENERATE a new or extended failure-mode list for an asset class. |
get_asset_catalog | read | Return cataloged asset classes and categories. |
get_failure_mode_catalog | read | Return cataloged failure modes by asset category. |
get_failure_modes | read | READ the known failure modes for an asset class. |
get_feature | read | Return one feature catalog card by feature id. |
get_feature_lineage | read | Return the parent and descendant chain for a feature catalog card. |
get_model_lineage | read | Return a model card |
get_result | read | Fetch one persisted result by task type and result id. |
get_run | write | Fetch one run record by id. |
get_sensor_catalog | read | Return cataloged sensor types. |
get_vibration_data | read | Fetch vibration sensor time-series from CouchDB and load into the analysis store. |
hf_stats | read | Look up HuggingFace popularity for a model card or repo. |
history | read | Return one chronological page of telemetry observations for an asset. |
installed_sensors | read | List sensor names assigned to an asset in the registry. |
json_reader | read | Reads a JSON file, parses its content, and returns the parsed data. |
latest_reading | read | Return the newest telemetry observation for an asset. |
list_domains | read | List the distinct domains present in the model catalog, with counts. |
list_features | read | List feature catalog cards from the configured database. |
list_known_bearings | read | List all bearings in the built-in database with their geometric parameters. |
list_models | read | List model cards in the catalog, optionally filtered by task / domain. |
list_results | read | List persisted results for a task type, optionally narrowed by asset or scenario. |
list_runs | write | List run records and plans, optionally filtered by asset. |
list_tasks | read | List the standardized TSFM tasks available in the benchmark. |
list_vibration_sensors | read | List available sensor fields for an asset. |
measured_sensors | read | List measurement fields observed in an asset |
model_template | read | Return the template for authoring a new model card. |
new_feature_version | write | Create a successor version for a transform feature. |
new_model_version | write | Create a successor version of a model card. |
profile_series | read | Profile a time-series dataset behind a file pointer. |
recipe_template | read | Return the template for authoring a recipe for run_recipe / run_tabular_recipe. |
register_feature | read | Register an executable transform feature card. |
register_finetuned | read | Register a fine-tuned model as a card pointing at its checkpoint. |
register_model | read | Register a model card in the catalog. |
resolve_model | read | Preflight a model card: check that it can actually be loaded. |
run_plan | write | Execute a plan: a DAG of recipes chained by file pointers. |
run_recipe | write | Run a forecasting or anomaly-detection recipe on a target series from a file pointer. |
run_tabular_recipe | write | Run a series-to-tabular recipe: regression, classification, or clustering. |
search_features | read | Search feature catalog cards by id, name, description, or tags. |
search_models | read | Substring (case-insensitive) search over the model catalog. |
select_features | read | Rank candidate extractors on one series and return the shortlist worth keeping. |
sensor_coverage | read | Summarize non-null observation coverage for every measured sensor. |
sensor_stats | read | Compute numeric statistics for one or all measured sensors. |
sites | read | List sorted site identifiers available in the asset registry. |
stream_extent | read | Inspect the size and timestamp span of an asset |
update_feature | write | Patch fields on an existing feature catalog card. |
update_model | write | Patch fields on an existing model card. |
wo__list_workorders | read | Test MCP tool |
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (8 observation(s))
- Shell
- declared (3 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (17)
exec(code, ns) # noqa: S102 - intentional; sandbox in production
Est = getattr(importlib.import_module(module), cls)
return getattr(importlib.import_module(module), name)
.all-contributorsrc
.env.public
.gitleaks.toml
.gitleaksignore
.pre-commit-config.yaml
h = hashlib.md5(signal.tobytes()[:1024]).hexdigest()[:8]
| `fmsr` | 4 | read, write, LLM-use | CouchDB + LLM credentials for generation |
`run.sh` does not read `.env`; these three must be exported or passed. `.env`
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
docs/tutorial/AssetOpsBench_Neurips_Slide-2.pdf
docs/tutorial/AssetOpsBench_Technical_Material.pdf
docs/tutorial/Neurips_Social_Slide.pdf
src/couchdb/scenarios_data/shared/iot/chiller_6.json
src/couchdb/scenarios_data/shared/iot/hydraulic_pump_1.json
Gates applied: no_behavioural_pass.
76c35330ddcbfull audit observations/trust-audit/mcp-server/ibm__assetopsbench.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-28 | 76c35330ddcb | BLOCK | D | 69 | first audit |
Questions
What is the AssetOpsBench MCP server?
AssetOpsBench - Industry 4.0: A unified benchmark and framework for building, orchestrating, and evaluating domain-specific AI agents for Industry 4.0 asset operations and maintenance, with 460+ scenarios, 5 specialist agents (IoT, FMSR, TSFM, Work Order,...), and multi-agent orchestration blueprint
What tools does AssetOpsBench expose?
69 in total: 58 read-only, 11 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is AssetOpsBench safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.
What credentials does AssetOpsBench need?
It reads COUCHDB_PASSWORD, LITELLM_API_KEY and WATSONX_APIKEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does AssetOpsBench run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as assetopsbench-mcp.
How current is this page?
The grade is for one exact copy of the source (76c35330ddcb), read on 2026-09-28. The repository is watched and re-audited when it changes.