MCP Server

The Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools in a structured, permission-aware way. Asset Alert ships an MCP server so any compatible agent—Claude, ChatGPT, or your own—can score crypto setups, fetch recommendations, and check incident history without custom glue code.

Claude Desktop configuration

Add the following to your claude_desktop_config.json:

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

json
{
  "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

json
{
  "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

json
{
  "platforms": [
    {
      "name": "Coinbase",
      "type": "exchange",
      "brand": "coinbase",
      "assets_usd": 12000,
      "has_2fa": true
    },
    {
      "name": "My Ledger",
      "type": "hardware_wallet",
      "brand": "ledger",
      "assets_usd": 38000,
      "has_2fa": null,
      "firmware_version": "2.3.0"
    }
  ]
}

Example response

json
{
  "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

json
{
  "type": "object",
  "required": [
    "platforms"
  ],
  "properties": {
    "platforms": {
      "type": "array",
      "description": "Same format as score_setup",
      "items": {
        "type": "object"
      }
    }
  }
}

Output schema

json
{
  "recommendations": [
    "string"
  ]
}

Example request

json
{
  "platforms": [
    {
      "name": "Coinbase",
      "type": "exchange",
      "brand": "coinbase",
      "assets_usd": 50000,
      "has_2fa": false
    }
  ]
}

Example response

json
{
  "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."
  ]
}

get_incidents

Get recent security incidents for a crypto platform by its brand slug.

Input schema

json
{
  "type": "object",
  "required": [
    "brand"
  ],
  "properties": {
    "brand": {
      "type": "string",
      "description": "Platform brand slug (e.g. coinbase, binance, ledger)"
    }
  }
}

Output schema

json
{
  "brand": "string",
  "incidents": [
    {
      "title": "string",
      "severity": "string",
      "incident_date": "string",
      "resolved": "boolean",
      "funds_lost_usd": "number | null"
    }
  ]
}

Example request

json
{
  "brand": "coinbase"
}

Example response

json
{
  "brand": "coinbase",
  "incidents": [
    {
      "title": "Account takeover via SIM swap",
      "severity": "high",
      "incident_date": "2023-08-14",
      "resolved": true,
      "funds_lost_usd": null
    }
  ]
}