mcpField
A
AssetLab

AssetLab

VerifiedFeaturedRemote
assetlab.caProductivity0Updated 3w ago

About AssetLab

AssetLab’s hosted MCP server lets facilities, fleet, and municipal infrastructure teams query and manage AssetLab records through natural-language requests. It spans maintenance, assets, capital projects, and infrastructure, with scoped access and auditing.

Key features

  1. 01Read and update maintenance records
  2. 02Manage assets and lifecycle strategies
  3. 03Work with capital projects and budgets
  4. 04Query infrastructure networks and features
  5. 05Control access with scoped API keys

Use cases

  1. 01Find overdue work orders and PM schedules
  2. 02Create work orders for buildings or equipment
  3. 03Review project status, costs, and risks
  4. 04Filter infrastructure by condition or size

MCP support

Exposes AssetLab data and operations to MCP clients through a hosted server, with a local stdio option. Supports read and write tools, governed by API-key scopes.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.assetlab.ca/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

AssetLab MCP Server

npm version weekly downloads types license

Talk to your assets. Connect Claude, ChatGPT, Microsoft Copilot, or any MCP-compatible client to your AssetLab account through the Model Context Protocol - ask about work orders, PM schedules, capital plans, and infrastructure networks in plain language, and create or update records hands-free.

480+ tools across 100+ resources · scoped, tenant-bound, audited · read and write · hosted or local


Quick start

Claude.ai (hosted - easiest)
  1. Create an API key in AssetLab → Settings → API Keys
  2. In Claude.ai: Settings → Connectors → Add connector
  3. Paste the connector URL: https://mcp.assetlab.ca
  4. When prompted for auth, paste your API key (al_live_...)
ChatGPT
  1. Create an API key in AssetLab → Settings → API Keys
  2. In ChatGPT: Settings → Apps & Connectors → Add new connector
  3. Name it (e.g. AssetLab) and enter the server URL: https://mcp.assetlab.ca
  4. Set authentication to OAuth and click Create - the OAuth endpoints are auto-discovered
  5. On the AssetLab authorization page, paste your API key (al_live_...)
Microsoft Copilot (via Copilot Studio)

Copilot chat has no "add a server" field, so one person builds an agent once and publishes it; staff then use that agent inside ordinary Microsoft 365 Copilot.

  1. Create an API key in AssetLab → Settings → API Keys
  2. In Copilot Studio, open an agent with generative orchestration and choose Tools → Add a tool → New tool → Model Context Protocol
  3. Server URL: https://mcp.assetlab.ca/mcp?profile=core
  4. Authentication API key, type Header, header name Authorization; the connection value is Bearer al_live_...
  5. Publish the agent to the Microsoft 365 Copilot channel and have an admin approve it

Use the ?profile=core address here. Copilot Studio caps an agent at 128 tools and recommends 25-30; this server publishes 480+, and the core profile answers with 28 covering sites, buildings, assets, work orders, work requests, PM schedules and vendors. Claude and ChatGPT have no such cap and should use the plain URL.

Claude Desktop / Claude Code (local, stdio)

This package runs as a local MCP server over stdio - nothing is exposed on the network.

{
  "mcpServers": {
    "assetlab": {
      "command": "npx",
      "args": ["-y", "@assetlab/mcp-server"],
      "env": {
        "ASSETLAB_API_KEY": "al_live_...",
        "ASSETLAB_API_URL": "https://<your-project>.supabase.co/functions/v1/api-gateway"
      }
    }
  }
}

Your AssetLab administrator can provide the API URL for your organization.


What can you ask?

You sayIt does
"Show me all overdue work orders"Lists them, sorted, with links back to AssetLab
"Create a work order for the broken pump in Building 3"Looks up the building and asset, then creates it
"Which projects are at risk or delayed?"Scans project status and risks
"What's the total cost history for Asset X?"Aggregates every cost record
"List watermains over 500 mm in poor condition"Filters infrastructure features by diameter and condition
"Add a crack-sealing event to the sidewalk strategy at $4 per square metre"Maintains your lifecycle strategies
"What PM schedules are due this month?"Checks every schedule's next due date
"Update the priority on WO-1234 to urgent"Edits the record (with your write scope)

What's new in 2.7

A curated tool profile for Microsoft Copilot. Adding ?profile=core to the hosted server URL publishes 28 tools instead of 480+, which is what makes the server usable in clients that cap how many tools one agent may host - Microsoft Copilot Studio allows 128 and recommends 25-30. An unrecognized profile name is rejected rather than quietly serving the full catalog. Claude and ChatGPT are unaffected and keep the full tool set.


What's new in 2.5

Facility lifecycle strategies. The lifecycle strategy tools now cover buildings and equipment, not just linear infrastructure. Five new tools under the asset_lifecycle_events scope read and maintain condition-triggered interventions ("roof recoat at condition 70-85 adds five years"). Events attach to an asset type or an asset type group rather than to individual assets, so one event maintains a whole class of equipment.

Events say what work they become. Lifecycle events on both sides now carry a work_generation setting - plan only, work order, or project - so a due intervention records what it should turn into. Nothing is created on a schedule; the interventions lists remain where that decision is made.


Tool catalog

Tools follow one naming pattern throughout: list_* / get_* to read, create_* / update_* / delete_* to write. Read below means list/get; Write means create/update/delete (availability varies slightly per resource - the tool descriptions are the authority).

Assets & maintenance records (17 resources)
ResourceReadWrite
Assets✓✓
Asset comments · costs · documents · parts✓✓
Asset placements (floorplan pins)✓✓
Asset replacement plans✓✓
Asset condition assessments✓✓
Asset lifecycle events (strategies)✓✓
Asset risk history✓-
Asset statuses · types · type groups✓✓
Attachments (+ upload_file, create_upload_url)✓✓
Manufacturers✓✓
Parts · part categories✓✓
Work management (7 resources)
ResourceReadWrite
Work orders✓✓
Work order comments · schedules✓✓
Work requests✓✓
Work categories✓✓
PM schedules✓✓
PM templates✓✓
Sites, buildings & systems (11 resources)
ResourceReadWrite
Sites✓✓
Site FCI history✓-
Buildings · building types✓✓
Locations · location types✓✓
Systems · system classes · system groups✓✓
Floorplans · floorplan regions✓✓
Infrastructure (linear assets) (11 resources)
ResourceReadWrite
Feature classes✓✓
Networks✓✓
Features (segments & nodes, GeoJSON geometry)✓✓
Feature inspections✓✓
Lifecycle events (strategies)✓✓
Zones✓✓
Feature comments · costs · documents · parts✓✓
Feature risk history✓-
Projects & capital planning (20+ resources)
ResourceReadWrite
Projects✓✓
Tasks · task dependencies · milestones✓✓
Phases · phase categories✓✓
Budget items · time entries · cost snapshots✓✓
Comments · updates · risks · team members✓✓
Documents · document folder templates✓✓
Project links (assets, buildings, sites, locations, systems, infrastructure)✓✓
Service areas (+ site and system-class links)✓✓
Finance & vendors (10 resources)
ResourceReadWrite
Budgets✓✓
Expenses · invoices · purchase orders✓✓
Change orders✓✓
Cost categories✓✓
Contracts · contract sites · contract documents✓✓
Vendors · vendor site assignments✓✓
Compliance, forms & level of service (15 resources)
ResourceReadWrite
Compliance items · records✓✓
Form templates · template items✓✓
Form responses✓✓
Form response answers✓-
LoS measures · measurements✓✓
LoS proposed targets✓✓
LoS targets history✓-
LoS system targets · infrastructure targets✓✓
Criticality modifiers✓✓
LoS consequences✓✓
LoS status snapshots✓-
Admin & analytics (6 resources)
ResourceReadWrite
Users✓-
Custom field definitions · values✓✓
Dashboard summary · snapshots✓-
Bulk operations (bulk_create, bulk_update)-✓

Scopes

API keys use scopes to control exactly what your assistant can touch. Configure per-resource read and write access in Settings → API Keys - scopes are grouped by category (Operations, Facilities, Projects, Finance, Infrastructure, ...) with bulk-toggle controls.

Scope patternAccess
resource:readList and get records (e.g. assets:read, work_orders:read)
resource:writeCreate, update, and delete records (e.g. assets:write)
*:*Full access to all resources

Security

  • OAuth 2.0 + PKCE through mcp.assetlab.ca; your API key is encrypted in transit and never stored by the MCP server
  • Tenant-bound - every key is scoped to your organization only, and the server ignores any attempt to address another tenant
  • Audited - all data access is logged in AssetLab's audit log
  • Revocable - revoke a key any time in Settings → API Keys; it dies instantly
  • Read-only by default - write operations require explicit write scopes

Support

Questions or issues? Email [email protected].

Docs: assetlab.ca → Docs → AI & MCP

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.