Skip to main content
Glama

asset-health-mcp

An AI agent that decides whether to dispatch a field technician โ€” and refuses to act on data it can't trust.

Agentforce agent grounded on Salesforce Data Cloud, calling a custom MCP server for data-quality validation (Great Expectations) and anomaly scoring (Databricks), with a guarded Apex write-back that creates the WorkOrder.

๐ŸŽฅ 2-minute demo video โ€” watch the agent validate, score, create a work order, then refuse a corrupted batch.

Why this exists

Most agent demos let the LLM act on whatever data it retrieves. In field service, acting on a corrupted meter reading means dispatching a technician for nothing โ€” or worse, missing a failing asset. This project puts a data-trust gate in front of every agent decision:

readings โ”€โ”€โ–ถ Ingestion API โ”€โ”€โ–ถ Data Cloud (zero-copy grounding)
                                     โ”‚
                                     โ–ผ
                          Agentforce agent
                          โ”‚ 1. check_reading_quality   MCP / Great Expectations
                          โ”‚ 2. score_asset_anomaly     MCP / Databricks
                          โ”‚ 3. create work order       Apex (guarded write-back)
                                     โ”‚
                                     โ–ผ
                            Salesforce WorkOrder

Related MCP server: qc-validator-mcp

Design decisions

  • Two curated MCP tools, not a data dump. The agent gets judgment (trust + severity); raw history reaches it separately through Data Cloud zero-copy grounding. Stays far inside Agentforce's tool budget.

  • Guards live server-side. The Apex action refuses untrusted data and normal-severity requests even if the agent asks โ€” agent instructions are not a security boundary (OWASP LLM07).

  • Idempotent write-back. Agents retry; duplicate field dispatches cost real money. One open Asset Health WorkOrder per asset, enforced in Apex.

  • Runs with zero credentials. Deterministic Databricks mock + GX ephemeral context mean pytest is green on a fresh clone with no external services.

Stack

Python 3.11 ยท FastMCP (mcp 1.x) ยท Great Expectations 1.18 ยท Databricks (Unity Catalog) ยท Salesforce Data Cloud (Ingestion API, DMO grounding) ยท Agentforce ยท Apex

Repository layout

src/asset_health_mcp/    FastMCP server: tools, GX validation, Databricks client
pipeline/                Ingestion API pipeline โ†’ Meter Reading DMO (fallback path)
force-app/               Apex write-back action + tests
databricks/              PySpark scoring job โ†’ Unity Catalog Delta table with
                         UniForm (Iceberg) โ€” zero-copy File Federation ready
snowflake/               readings warehouse DDL + least-privilege key-pair
                         integration user for Query Federation
datacloud/               ZERO_COPY.md โ€” federation-mode decisions and setup
docs/                    AGENT_BUILD.md (Agentforce wiring), demo script
tests/                   smoke suite, green with zero external services

Zero-copy design in one line: readings stay in Snowflake (Query Federation, JDBC pushdown to an isolated XS warehouse), scores stay in Databricks (File Federation via UniForm/Iceberg, zero external compute) โ€” mode chosen per table on cost, not by default. Details: datacloud/ZERO_COPY.md.

Run it

pip install -e ".[dev]" && pytest          # zero-credential smoke suite
python -m asset_health_mcp.server          # stdio, for Claude Desktop
MCP_TRANSPORT=streamable-http \
  python -m asset_health_mcp.server        # HTTP, for Agentforce registry
sf project deploy start                    # Apex action + tests

Full build runbook: docs/SETUP.md (step by step, ordered around trial-licence constraints) ยท agent wiring: docs/AGENT_BUILD.md ยท what runs on which edition and what is documented rather than demonstrated: docs/ENVIRONMENTS.md.

Known limits

Demo-grade auth (PAT, not OAuth service principal), precomputed scores rather than real-time model serving, single-org. Listed deliberately โ€” the point of the project is the architecture, not production hardening.


Built by Yamyle โ€” Senior Salesforce Architect & Data/AI Engineer. 20+ Salesforce certifications ยท integration frameworks for utilities and financial services.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Agentic data quality MCP server โ€” runs structured validation rules against warehouses (DuckDB, BigQuery, Athena, Databricks, Postgres), diagnoses failures with LLM root cause analysis, and proposes SQL remediations. Full audit trail of every AI decision.
    6
    4
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.

  • Responsible-AI guardrails for agents: scoring with policy, injection & PII detection, DPDP.

  • Build, validate, and deploy multi-agent AI solutions from any AI environment.

View all MCP Connectors

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/yamylemerleremond/asset-health-mcp'

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