AssetTiger MCP by usefulapi
Find assets and stock, read asset events; create assets and check them in or out in AssetTiger.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWassettiger_get_inventory_stock_summary에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"assettiger": {
"url": "https://assettiger.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://assettiger.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (17)
🟢assettiger_list_assets(searchKeyword, searchType, categoryRefId, subCategoryRefId, siteRefId, ...)
List assets with optional filters by category, site, location, department, person or customer, plus search and paging. Good first call to find a refId. GET /v1/assets.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"categoryRefId": {
"description": "Filter by category refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"subCategoryRefId": {
"description": "Filter by subcategory refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"siteRefId": {
"description": "Filter by site refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"locationRefId": {
"description": "Filter by location refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"departmentRefId": {
"description": "Filter by department refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"personRefId": {
"description": "Filter by the person the asset is checked out to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"customerRefId": {
"description": "Filter by the customer the asset is checked out to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"fetchEvent": {
"description": "Include each asset's current event in the reply.",
"type": "boolean"
},
"fetchCustomFields": {
"description": "Include custom field values in the reply.",
"type": "boolean"
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_get_asset(refId, fetchEvent, fetchCustomFields)
Get one asset by refId, with its details and, if asked, its current event and custom fields. GET /v1/assets/{refId}.
입력 스키마
{
"type": "object",
"properties": {
"refId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's refId (the numeric id returned by a list call)."
},
"fetchEvent": {
"description": "Include the current event in the reply.",
"type": "boolean"
},
"fetchCustomFields": {
"description": "Include custom field values in the reply.",
"type": "boolean"
}
},
"required": [
"refId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_get_asset_events(refId, orderBy, sortOrder, offset, limit)
List the events of one asset (check-outs, check-ins, repairs, lost, broken and others). GET /v1/assets/{refId}/events.
입력 스키마
{
"type": "object",
"properties": {
"refId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's refId (the numeric id returned by a list call)."
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"refId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_get_asset_history(refId, fromDate, toDate, sortOrder, offset, ...)
Get the change history of one asset, optionally between two dates. GET /v1/assets/{refId}/histories.
입력 스키마
{
"type": "object",
"properties": {
"refId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's refId (the numeric id returned by a list call)."
},
"fromDate": {
"description": "Start date, yyyy-mm-dd.",
"type": "string"
},
"toDate": {
"description": "End date, yyyy-mm-dd.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"refId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_sites(searchKeyword, searchType, orderBy, sortOrder, offset, ...)
List sites (physical places an organisation owns or rents). GET /v1/sites.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_locations(siteRefId, searchKeyword, searchType, orderBy, sortOrder, ...)
List the locations (rooms, shelves, areas) inside one site. GET /v1/locations?siteRefId=.
입력 스키마
{
"type": "object",
"properties": {
"siteRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The site refId whose locations to list (required)."
},
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"siteRefId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_categories(searchKeyword, searchType, orderBy, sortOrder, offset, ...)
List asset categories. GET /v1/categories.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_persons(searchKeyword, searchType, orderBy, sortOrder, fetchSiteName, ...)
List persons (staff or users who can hold assets). GET /v1/persons.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"fetchSiteName": {
"description": "Include the site name in the reply.",
"type": "boolean"
},
"fetchLocationName": {
"description": "Include the location name in the reply.",
"type": "boolean"
},
"fetchDepartmentName": {
"description": "Include the department name in the reply.",
"type": "boolean"
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_customers(searchKeyword, searchType, orderBy, sortOrder, offset, ...)
List customers (external parties that can hold assets). GET /v1/customers.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_departments(searchKeyword, searchType, orderBy, sortOrder, offset, ...)
List departments. GET /v1/departments.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_maintenances(searchKeyword, searchType, siteRefId, locationRefId, orderBy, ...)
List maintenance records, optionally for one site or location. GET /v1/maintenances.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"siteRefId": {
"description": "Filter by site refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"locationRefId": {
"description": "Filter by location refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_contracts(searchKeyword, searchType, orderBy, sortOrder, offset, ...)
List contracts. Needs the Contracts feature on the customer's plan. GET /v1/contracts.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_list_inventories(searchKeyword, searchType, categoryRefId, subCategoryRefId, orderBy, ...)
List consumable inventory items (stock lines), with search and paging. Needs the Inventory feature on the plan. GET /v1/inventories.
입력 스키마
{
"type": "object",
"properties": {
"searchKeyword": {
"description": "Free-text search keyword.",
"type": "string"
},
"searchType": {
"description": "How searchKeyword matches (default Contains).",
"type": "string",
"enum": [
"Contains",
"Exact",
"StartWith",
"EndsWith"
]
},
"categoryRefId": {
"description": "Filter by category refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"subCategoryRefId": {
"description": "Filter by subcategory refId.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"orderBy": {
"description": "Field to sort by, named as the API names it.",
"type": "string"
},
"sortOrder": {
"description": "Sort direction.",
"type": "string",
"enum": [
"Asc",
"Desc"
]
},
"fetchCustomFields": {
"description": "Include custom field values in the reply.",
"type": "boolean"
},
"offset": {
"description": "Records to skip, for paging.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Records per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢assettiger_get_inventory_stock_summary(refId)
Get the stock summary (quantities in and out) of one inventory item. GET /v1/inventories/{refId}/stocksummary.
입력 스키마
{
"type": "object",
"properties": {
"refId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's refId (the numeric id returned by a list call)."
}
},
"required": [
"refId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴assettiger_create_asset(assetTagId, description, brand, model, serialNo, ...)
Create one asset in the organisation's AssetTiger account. assetTagId and description are required. Creates a new record each call, so do not retry blindly. POST /v1/assets/add.
입력 스키마
{
"type": "object",
"properties": {
"assetTagId": {
"type": "string",
"minLength": 1,
"description": "The asset tag (unique label on the item)."
},
"description": {
"type": "string",
"minLength": 1,
"description": "Short description of the asset."
},
"brand": {
"type": "string"
},
"model": {
"type": "string"
},
"serialNo": {
"type": "string"
},
"purchaseDate": {
"description": "Purchase date, yyyy-mm-dd.",
"type": "string"
},
"purchaseFrom": {
"description": "Vendor or supplier name.",
"type": "string"
},
"cost": {
"type": "number"
},
"siteRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"locationRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"categoryRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"subCategoryRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"departmentRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"dateAcquired": {
"description": "Acquisition date, yyyy-mm-dd.",
"type": "string"
},
"isDepreciable": {
"type": "boolean"
},
"initialCost": {
"type": "number"
},
"salvageValue": {
"type": "number"
},
"assetLife": {
"description": "Useful life, in the unit the account uses.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"assetTagId",
"description"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴assettiger_check_out_asset(refId, checkoutTo, personRefId, siteRefId, locationRefId, ...)
Check an asset out to a person, a customer or a site/location. Sends no email unless sendEmail is true. POST /v1/assets/{refId}/events/checkout/add.
입력 스키마
{
"type": "object",
"properties": {
"refId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's refId (the numeric id returned by a list call)."
},
"checkoutTo": {
"type": "string",
"enum": [
"Person",
"Customer",
"SiteLocation"
],
"description": "Who or what receives the asset."
},
"personRefId": {
"description": "Required when checkoutTo is Person.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"siteRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"locationRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"newSiteRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"newLocationRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"newDepartmentRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"date1": {
"description": "Check-out date and time, for example 2026-03-01T09:30:00.",
"type": "string"
},
"date2": {
"description": "Expected return date and time.",
"type": "string"
},
"notes": {
"type": "string"
},
"sendEmail": {
"default": false,
"description": "Send the notification email. Default false.",
"type": "boolean"
},
"overrideReservation": {
"default": false,
"description": "Check out even if a reservation exists. Default false.",
"type": "boolean"
}
},
"required": [
"refId",
"checkoutTo"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴assettiger_check_in_asset(refId, date1, siteRefId, locationRefId, newSiteRefId, ...)
Return a checked-out asset and optionally move it to a new site, location or department. Sends no email unless sendEmail is true. POST /v1/assets/{refId}/events/checkin/add.
입력 스키마
{
"type": "object",
"properties": {
"refId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The record's refId (the numeric id returned by a list call)."
},
"date1": {
"type": "string",
"description": "Local date and time, for example 2026-03-01T09:30:00."
},
"siteRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"locationRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"newSiteRefId": {
"description": "Move the asset to this site on check-in.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"newLocationRefId": {
"description": "Move the asset to this location on check-in.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"newDepartmentRefId": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"notes": {
"type": "string"
},
"sendEmail": {
"default": false,
"description": "Send the notification email. Default false.",
"type": "boolean"
}
},
"required": [
"refId",
"date1"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거