Skip to main content

Model Context Protocol (MCP)

Unizo offers an MCP server that integrates asset management platforms with any LLM provider supporting the MCP protocol. This enables your AI agent to discover assets, query configuration items, explore asset relationships, and manage ownership across ServiceNow, Freshservice, and other CMDB solutions via a single MCP server.

Supported Tools & Use Cases

The following tools are available in the Asset Management MCP Server:

Tool NameDescription
cmdb_list_connectorsGet list of available asset management services
cmdb_list_integrationsGet integrations for a specific asset management service
cmdb_list_organizationsBrowse organizations
cmdb_get_organizationRetrieve organization details
cmdb_list_assetsBrowse assets
cmdb_get_assetRetrieve asset details
cmdb_list_asset_relationshipsBrowse relationships for an asset
cmdb_get_asset_relationshipRetrieve asset relationship details
cmdb_list_ownersBrowse asset owners
cmdb_get_ownerRetrieve owner details

Tool Reference

Service Discovery Tools

cmdb_list_connectors

Get list of available asset management services

Parameters: None

Returns: List of available asset management services (e.g., ServiceNow, Freshservice)

Example Response:

[
{"name": "servicenow"},
{"name": "freshservice"}
]

cmdb_list_integrations

Get integrations for a specific asset management service

Parameters:

  • connector (string, required): Name of the service (e.g., "servicenow", "freshservice")

Returns: List of integrations available for the specified service

Example Response:

[
{
"id": "integration-123",
"name": "Production ServiceNow CMDB"
},
{
"id": "integration-456",
"name": "Development Freshservice"
}
]

Organization Tools

cmdb_list_organizations

Browse organizations

Parameters:

  • integration_id (string, required): Unique identifier for the integration

Returns: List of organizations

Example Response:

{
"status": "success",
"message": "Retrieved 2 organizations",
"data": {
"organizations": [
{
"id": "ORG-001",
"name": "Engineering Division",
"status": "Active",
"hierarchy": {
"parentId": "ORG-000",
"level": 2,
"path": "ORG-000/ORG-001"
},
"location": {
"locationName": "San Francisco HQ",
"country": "United States"
},
"financials": {
"costCenter": "CC-ENG-001",
"budget": 5000000.00,
"currency": "USD"
},
"riskProfile": {
"businessCriticality": "High",
"complianceRequirements": ["SOC2", "HIPAA"],
"dataClassification": "Confidential"
}
}
],
"pagination": {
"total": 2,
"offset": 0,
"limit": 20,
"next": null,
"previous": null
},
"total_count": 2
}
}

cmdb_get_organization

Retrieve organization details

Parameters:

  • integration_id (string, required): Unique identifier for the integration
  • organization_id (string, required): Unique identifier of the organization

Returns: Organization details

Example Response:

{
"status": "success",
"message": "Retrieved organization details for ORG-001",
"data": {
"organization": {
"id": "ORG-001",
"name": "Engineering Division",
"status": "Active",
"hierarchy": {
"parentId": "ORG-000",
"level": 2,
"path": "ORG-000/ORG-001"
},
"location": {
"locationName": "San Francisco HQ",
"address": "100 Market Street",
"city": "San Francisco",
"state": "CA",
"country": "United States",
"postalCode": "94105"
},
"financials": {
"costCenter": "CC-ENG-001",
"budget": 5000000.00,
"currency": "USD"
},
"riskProfile": {
"businessCriticality": "High",
"complianceRequirements": ["SOC2", "HIPAA"],
"dataClassification": "Confidential"
},
"changeLog": {
"createdDateTime": "2024-01-15T10:00:00Z",
"lastUpdatedDateTime": "2025-11-01T14:30:00Z"
}
}
}
}

Asset Management Tools

cmdb_list_assets

Browse assets

Parameters:

  • integration_id (string, required): Unique identifier for the integration

Returns: List of assets

Example Response:

{
"status": "success",
"message": "Retrieved 3 assets",
"data": {
"assets": [
{
"type": "hardware",
"asset": {
"id": "ASSET-001",
"name": "PROD-WEB-01",
"description": "Production web server",
"status": "active"
},
"network": {
"ipAddress": "10.0.1.50",
"macAddress": "00:1A:2B:3C:4D:5E",
"fqdn": "prod-web-01.internal.example.com"
},
"os": {
"name": "Ubuntu 22.04 LTS"
},
"ownership": {
"owner": {
"id": "OWN-001",
"name": "John Doe",
"email": "[email protected]"
}
},
"location": {
"id": "LOC-001",
"name": "US-East Data Center"
},
"security": {
"criticality": "high"
}
}
],
"pagination": {
"total": 3,
"offset": 0,
"limit": 20,
"next": null,
"previous": null
},
"total_count": 3
}
}

cmdb_get_asset

Retrieve asset details

Parameters:

  • integration_id (string, required): Unique identifier for the integration
  • asset_id (string, required): Unique identifier of the asset

Returns: Asset details

Example Response:

{
"status": "success",
"message": "Retrieved asset details for ASSET-001",
"data": {
"asset": {
"type": "hardware",
"asset": {
"id": "ASSET-001",
"name": "PROD-WEB-01",
"description": "Production web server hosting the main application",
"status": "active"
},
"network": {
"ipAddress": "10.0.1.50",
"macAddress": "00:1A:2B:3C:4D:5E",
"fqdn": "prod-web-01.internal.example.com"
},
"os": {
"name": "Ubuntu 22.04 LTS"
},
"ownership": {
"owner": {
"id": "OWN-001",
"name": "John Doe",
"email": "[email protected]"
}
},
"location": {
"id": "LOC-001",
"name": "US-East Data Center"
},
"security": {
"criticality": "high"
},
"changeLog": {
"createdDateTime": "2024-06-15T10:00:00Z",
"lastUpdatedDateTime": "2025-11-01T14:30:00Z"
}
}
}
}

cmdb_list_asset_relationships

Browse relationships for an asset

Parameters:

  • integration_id (string, required): Unique identifier for the integration
  • asset_id (string, required): Unique identifier of the asset

Returns: List of asset relationships

Example Response:

{
"status": "success",
"message": "Retrieved 2 relationships for asset ASSET-001",
"data": {
"relationships": [
{
"type": "depends_on",
"relation": {
"id": "REL-001",
"sourceAssetId": "ASSET-001",
"targetAssetId": "ASSET-005",
"isBusinessServiceLink": true,
"direction": "downstream",
"confidenceScore": 0.95
},
"changeLog": {
"effectiveFrom": "2024-06-15T10:00:00Z",
"createdDateTime": "2024-06-15T10:00:00Z"
}
}
],
"pagination": {
"total": 2,
"offset": 0,
"limit": 20
}
}
}

cmdb_get_asset_relationship

Retrieve asset relationship details

Parameters:

  • integration_id (string, required): Unique identifier for the integration
  • asset_id (string, required): Unique identifier of the asset
  • relationship_id (string, required): Unique identifier of the relationship

Returns: Asset relationship details


cmdb_list_owners

Browse asset owners

Parameters:

  • integration_id (string, required): Unique identifier for the integration

Returns: List of asset owners

Example Response:

{
"status": "success",
"message": "Retrieved 2 owners",
"data": {
"owners": [
{
"type": "user",
"owner": {
"id": "OWN-001",
"username": "john.doe",
"name": "John Doe",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"jobTitle": "Senior DevOps Engineer",
"department": "Engineering"
}
}
],
"pagination": {
"total": 2,
"offset": 0,
"limit": 20
}
}
}

cmdb_get_owner

Retrieve owner details

Parameters:

  • integration_id (string, required): Unique identifier for the integration
  • owner_id (string, required): Unique identifier of the owner

Returns: Owner details


Installation

Prerequisites

  • A Unizo API key
  • An active Asset Management integration (ServiceNow, Freshservice)
  • Node.js v20 or higher

MCP Configuration

Here is an example configuration for setting up the Unizo Asset Management MCP server:

{
"mcpServers": {
"unizo": {
"command": "npx",
"args": [
"mcp-remote",
"https://api.unizo.ai/mcp",
"--header",
"apikey:${UNIZO_API_KEY}",
"--header",
"x-mcp-scopes:CMDB"
],
"env": {
"UNIZO_API_KEY": "your_api_key"
}
}
}
}

Client Setup

For detailed setup instructions with specific AI clients:

Environment Variables

The following environment variables are required:

  • UNIZO_API_KEY: Your Unizo API key

Error Handling

All tools return errors in a consistent format:

{
"status": "error",
"message": "Asset 'ASSET-001' not found",
"traceback": "..."
}