{
  "markdown": "# avanan-legacy-mcp\n\nMCP server for the **Avanan MSP SmartAPI** (the \"legacy\" Avanan MSP tenant management\nAPI — distinct from `avanan-mcp`, which targets the Checkpoint Harmony Email & Collaboration\nHEC API).\n\nImplements the Jan 2024 Avanan MSP SmartAPI Reference Guide:\n\n| Group | Tools |\n| --- | --- |\n| Child MSPs | `avanan_list_msp_partners`, `avanan_create_msp_partner`, `avanan_delete_msp_partner` |\n| MSP users | `avanan_list_msp_users`, `avanan_get_msp_user`, `avanan_create_msp_user`, `avanan_update_msp_user`, `avanan_delete_msp_user` |\n| Customer tenants | `avanan_list_tenants`, `avanan_get_tenant`, `avanan_create_tenant`, `avanan_delete_tenant` |\n| Licenses | `avanan_list_licenses`, `avanan_list_addons`, `avanan_assign_license` |\n| Usage | `avanan_get_monthly_usage`, `avanan_get_daily_usage` |\n\n## Features\n\n- **Interactive tenant card (MCP Apps, SEP-1865)**: `avanan_get_tenant` renders as an\n  interactive card in MCP Apps hosts (Claude Desktop/web) showing domain, status,\n  deployment mode, license package, protected users, PoC dates, and add-ons. The card is\n  read-only, neutral by default, and brandable via `window.__BRAND__` injection or\n  `MCP_BRAND_*` env vars (`MCP_BRAND_NAME`, `MCP_BRAND_LOGO_URL`, `MCP_BRAND_PRIMARY_COLOR`,\n  `MCP_BRAND_ACCENT_COLOR`, `MCP_BRAND_BG`, `MCP_BRAND_TEXT`). Plain-JSON behavior is\n  unchanged in other hosts. Rebuild the embedded card HTML after editing `ui/` with\n  `npm run build:ui`.\n\n## Configuration\n\n| Env var | Required | Description |\n| --- | --- | --- |\n| `AVANAN_APP_ID` | yes | Application ID provided by Avanan Support (`x-av-app-id`). |\n| `AVANAN_TOKEN` | yes | Token from the Avanan auth handshake (`x-av-token`). |\n| `AVANAN_SECRET` | yes | Shared secret used to compute the `x-av-sig` HMAC. |\n| `AVANAN_REGION` | no | `us` \\| `eu` \\| `ca` \\| `ap`. Defaults to JWT region claim, then `us`. |\n| `MCP_TRANSPORT` | no | `stdio` (default) or `http`. |\n| `MCP_HTTP_PORT` | no | HTTP transport port (default 8080). |\n| `LOG_LEVEL` | no | `debug` \\| `info` \\| `warn` \\| `error` (default `info`). |\n\nIn **gateway mode**, credentials are taken per-request from headers:\n`X-Avanan-App-Id`, `X-Avanan-Token`, `X-Avanan-Secret`, optionally `X-Avanan-Region`.\n\n## Status\n\n> [!IMPORTANT]\n> The `x-av-sig` signing algorithm is implemented as a **best-guess HMAC-SHA256**\n> because the MSP SmartAPI guide defers signing details to the parent Avanan API\n> Reference Guide. Replace the body of `signRequest()` in\n> [`src/utils/client.ts`](src/utils/client.ts) with the exact algorithm before\n> production use. The function is isolated so no other code needs to change.\n\n## Build\n\n```bash\nnpm install\nnpm run build\nnpm start\n```\n\n## Regional endpoints\n\n| Region | Base |\n| --- | --- |\n| US | `https://smart-api-production-1-us.avanan.net` |\n| EU | `https://smart-api-production-1-eu.avanan.net` |\n| CA | `https://smart-api-production-1-ca.avanan.net` |\n| AP | `https://smart-api-production-5-ap.avanan.net` |\n\nAll endpoints sit under `/v1.0/msp/...`.\n",
  "bytes": 3011,
  "sha": "94516299d1101c02c4d4d358f720c06cc97672ad9d5d17e064c0c1f3e106a0db",
  "repo_slug": "wyre-ai/avanan-legacy-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_wyre_ai_avanan_legacy_mcp_0536b0df/readme"
}