MCP Server
The Model Context Protocol (MCP) is an open standard for connecting AI assistants to external tools. Asset Alert's MCP server lets any compatible agent—Claude, ChatGPT, or your own—score crypto setups, fetch recommendations, and check incident history without writing any integration code.
Claude Desktop configuration
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"asset-alert": {
"type": "http",
"url": "https://assetalert.dev/api/mcp"
}
}
}Available tools
score_setup
Score a crypto wallet/exchange setup for security health. Returns a 0–100 score, letter grade, and prioritised risk list.
Input schema
{
"type": "object",
"required": [
"platforms"
],
"properties": {
"platforms": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"type",
"brand",
"assets_usd",
"has_2fa"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"exchange",
"hardware_wallet",
"software_wallet",
"defi",
"bridge"
]
},
"brand": {
"type": "string"
},
"assets_usd": {
"type": "number"
},
"has_2fa": {
"type": [
"boolean",
"null"
]
},
"firmware_version": {
"type": "string"
},
"open_approvals": {
"type": "number"
},
"last_audit_date": {
"type": "string"
}
}
}
}
}
}Output schema
{
"score": {
"score": "number (0–100)",
"grade": "string (A+, A, B+, B, C+, C, D, F)",
"total_risks": "number",
"risks_by_severity": {
"critical": "number",
"high": "number",
"medium": "number",
"low": "number"
},
"top_risks": [
{
"severity": "string",
"type": "string",
"title": "string",
"description": "string"
}
],
"recommendations": [
"string"
]
}
}Example request
{
"platforms": [
{
"name": "Coinbase",
"type": "exchange",
"brand": "coinbase",
"assets_usd": 12000,
"has_2fa": true,
"assets": [
{
"symbol": "BTC",
"name": "Bitcoin",
"approximate_usd": 8000
},
{
"symbol": "ETH",
"name": "Ethereum",
"approximate_usd": 4000
}
]
},
{
"name": "My Ledger",
"type": "hardware_wallet",
"brand": "ledger",
"assets_usd": 38000,
"has_2fa": null,
"firmware_version": "2.3.0",
"assets": [
{
"symbol": "BTC",
"name": "Bitcoin",
"approximate_usd": 38000
}
]
}
]
}Example response
{
"score": {
"score": 76,
"grade": "B+",
"total_risks": 2,
"risks_by_severity": {
"critical": 0,
"high": 0,
"medium": 2,
"low": 0
},
"top_risks": [
{
"severity": "medium",
"type": "hygiene",
"title": "Outdated firmware on My Ledger",
"description": "Current firmware 2.3.0 is behind the latest 2.4.0."
}
],
"recommendations": [
"Update firmware on My Ledger to 2.4.0."
]
}
}recommend_setup
Score a crypto setup and return only the prioritised improvement recommendations.
Input schema
{
"type": "object",
"required": [
"platforms"
],
"properties": {
"platforms": {
"type": "array",
"description": "Same format as score_setup",
"items": {
"type": "object"
}
}
}
}Output schema
{
"recommendations": [
"string"
]
}Example request
{
"platforms": [
{
"name": "Coinbase",
"type": "exchange",
"brand": "coinbase",
"assets_usd": 50000,
"has_2fa": false,
"assets": [
{
"symbol": "BTC",
"name": "Bitcoin",
"approximate_usd": 30000
},
{
"symbol": "ETH",
"name": "Ethereum",
"approximate_usd": 20000
}
]
}
]
}Example response
{
"recommendations": [
"Enable 2FA on Coinbase to protect against account takeover.",
"Add a hardware wallet to move assets off centralised exchanges.",
"Diversify across multiple platform types."
]
}create_canvas
Create a shareable visual security report for a user's crypto setup. Returns a public URL the agent can send directly to the user — no account required.
Input schema
{
"type": "object",
"required": [
"platforms"
],
"properties": {
"platforms": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"type",
"brand",
"assets_usd",
"has_2fa"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"exchange",
"hardware_wallet",
"software_wallet",
"defi",
"bridge"
]
},
"brand": {
"type": "string"
},
"assets_usd": {
"type": "number"
},
"has_2fa": {
"type": [
"boolean",
"null"
]
},
"firmware_version": {
"type": "string"
},
"open_approvals": {
"type": "number"
},
"last_audit_date": {
"type": "string"
}
}
}
}
}
}Output schema
{
"url": "string",
"share_id": "string",
"score": "number (0–100)",
"grade": "string (A+, A, B+, B, C+, C, D, F)"
}Example request
{
"platforms": [
{
"name": "Coinbase",
"type": "exchange",
"brand": "coinbase",
"assets_usd": 12000,
"has_2fa": true,
"assets": [
{
"symbol": "BTC",
"name": "Bitcoin",
"approximate_usd": 8000
},
{
"symbol": "ETH",
"name": "Ethereum",
"approximate_usd": 4000
}
]
},
{
"name": "My Ledger",
"type": "hardware_wallet",
"brand": "ledger",
"assets_usd": 38000,
"has_2fa": null,
"firmware_version": "2.3.0",
"assets": [
{
"symbol": "BTC",
"name": "Bitcoin",
"approximate_usd": 38000
}
]
}
]
}Example response
{
"url": "https://assetalert.dev/setup/aB3xZ9qW",
"share_id": "aB3xZ9qW",
"score": 76,
"grade": "B+"
}get_incidents
Get recent security incidents for a crypto platform by its brand slug.
Input schema
{
"type": "object",
"required": [
"brand"
],
"properties": {
"brand": {
"type": "string",
"description": "Platform brand slug (e.g. coinbase, binance, ledger)"
}
}
}Output schema
{
"brand": "string",
"incidents": [
{
"title": "string",
"severity": "string",
"incident_date": "string",
"resolved": "boolean",
"funds_lost_usd": "number | null"
}
]
}Example request
{
"brand": "coinbase"
}Example response
{
"brand": "coinbase",
"incidents": [
{
"title": "Account takeover via SIM swap",
"severity": "high",
"incident_date": "2023-08-14",
"resolved": true,
"funds_lost_usd": null
}
]
}