{
  "markdown": "# Spanning Cloud Backup MCP Server\n\n[![CI](https://github.com/WYRE-AI/spanning-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/WYRE-AI/spanning-mcp/actions/workflows/ci.yml)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server exposing the\n[Spanning Cloud Backup](https://spanning.com/) API to Claude and other MCP\nclients.\n\n## What it does\n\nSurface SaaS backup posture for your M365, Google Workspace, or Salesforce\ntenants directly to AI assistants — list backed-up users, inspect covered\nservices, browse backup history, queue restores, and audit admin activity and\nlicense usage.\n\n- **Interactive backup status card (MCP Apps, SEP-1865)**: `spanning_get_user`\n  renders as a read-only interactive card in MCP Apps hosts (Claude\n  Desktop/web) showing the user's backup status, license state, last backup,\n  and per-service coverage; neutral by default, brandable via\n  `window.__BRAND__` injection or `MCP_BRAND_*` env vars\n  (`MCP_BRAND_NAME`, `MCP_BRAND_LOGO_URL`, `MCP_BRAND_PRIMARY_COLOR`,\n  `MCP_BRAND_ACCENT_COLOR`, `MCP_BRAND_BG`, `MCP_BRAND_TEXT`). Plain-JSON\n  behavior is unchanged in other hosts. Rebuild the embedded card with\n  `npm run build:ui` after editing `ui/`.\n\n## Tools\n\n| Tool | Purpose |\n| --- | --- |\n| `spanning_list_users` | List backed-up users in the org |\n| `spanning_get_user` | Fetch a single user's detail |\n| `spanning_list_services` | List services covered for a user |\n| `spanning_list_backups` | List backup runs for a user + service |\n| `spanning_queue_restore` | Queue a restore (DESTRUCTIVE — requires confirmation) |\n| `spanning_get_restore_status` | Check restore progress |\n| `spanning_list_audit_log` | Admin audit log (date-range elicitation) |\n| `spanning_get_license_usage` | Seats used vs purchased |\n| `spanning_status` | Server status / health |\n\n## Credentials\n\n### Local (env mode)\n\n```sh\nexport SPANNING_PLATFORM=\"m365\"        # or \"gws\" or \"salesforce\"\nexport SPANNING_ADMIN_EMAIL=\"...\"\nexport SPANNING_API_TOKEN=\"...\"\n```\n\n### Hosted (gateway mode)\n\nThe WYRE MCP Gateway injects credentials per request via headers:\n\n- `X-Spanning-Platform` (required, one of `m365` | `gws` | `salesforce`)\n- `X-Spanning-Admin-Email` (required)\n- `X-Spanning-API-Token` (required, secret)\n\n## Run\n\n```sh\nnpm install\nnpm run build\nnpm start                       # stdio\nMCP_TRANSPORT=http npm start    # HTTP on :8080\n```\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE).\n",
  "bytes": 2567,
  "sha": "216669ea06e339e28cd247f7d9e9466c13805db19f91b0586afc46e77c1affe1",
  "repo_slug": "wyre-technology/spanning-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_wyre_technology_spanning_mcp_a59ac776/readme"
}