backupradar-mcp
Provides MCP tools to interact with the Backup Radar v2 Backups API, enabling queries on backups, scheduled backups, inactive backups, and backup results.
README
backupradar-mcp
Backup Radar MCP server — exposes the Backup Radar v2 Backups API as MCP tools.
Naming note: app.mspbots.ai calls this integration "Backup Radar" (
sys_integration.subject_code = BACKUPRADAR).
Overview
This server implements the Model Context Protocol (Streamable HTTP/SSE transport) and follows the MSPbots Vendor MCP Service SOP: stateless, no stored credentials, per-request header authentication.
Backup Radar's own API authenticates with a static, long-lived API key sent in a header literally named ApiKey (not OAuth2 — confirmed against the vendor's own OpenAPI securitySchemes). This server never stores the key; it is forwarded per-request from the caller's X-BackupRadar-Api-Key header.
Scope note: MSPbots' Backup Radar integration references 2 endpoints from a retired API version
MSPbots' own Backup Radar integration (sys_integration_api) is configured with 6 interfaces. While researching this build, 2 of them were found to target the Backup Radar API v1, which the vendor retired on 2026-01-09 ("As of January 9, 2026, the Backup Radar API v1 has been retired and is no longer available... all integrations must use API v2"):
Backup Radar Policies—GET /policies(v1 only, no v2 equivalent)Backup Radar BG—GET /backups/bg(v1 only, no v2 equivalent)
The current v2 spec (https://api.backupradar.com/docs/2.0) has exactly 7 operations, all under a single Backups tag (/backups, /backups/{backupId}, /backups/{backupId}/results, /backups/filters, /backups/inactive, /backups/retired, /backups/overview) — there is no policies or bg concept in v2. Calling these 2 legacy endpoints today would fail, which conflicts with this build's "self-test must succeed" requirement.
Decision (confirmed with the requester): this MCP implements only the 4 of 6 MSPbots-configured interfaces that map cleanly onto the current, supported Backup Radar API v2 — Backup Radar Backups, Backup Radar Backup Scheduled, Backup Radar Inactive, and Backup Radar Backup Results. The 2 retired-v1-only interfaces are intentionally not implemented.
Quick Start
Docker (recommended)
docker compose up --build
The server starts on http://localhost:8080.
Local (uv)
uv sync
python -m backupradar_mcp
Health Check
curl http://localhost:8080/health
# {"status": "ok", "service": "backupradar-mcp", "transport": "http"}
No credentials are required for the health endpoint.
授权参数说明 (Authentication)
Every request to /mcp must include the following HTTP headers:
| Header | 类型 | 是否必填 | 默认值 | 枚举值 | 字段描述 | Example |
|---|---|---|---|---|---|---|
X-BackupRadar-Api-Key |
string | 必填 | 无 | 无(自由文本) | Backup Radar 的静态长期 API Key(非 OAuth2),与 vendor 自身 OpenAPI 规范里名为 ApiKey 的 header 认证方式一致;对应 MSPbots 现有 Backup Radar 集成配置里的 "API Key" 字段。 |
X-BackupRadar-Api-Key: <api_key> |
X-BackupRadar-Site |
string | 必填 | 无 | us、eu(或直接传完整域名 api.backupradar.com / api-eu.backupradar.com) |
选择调用美国还是欧洲区域的 Backup Radar API,对应 MSPbots 现有 Backup Radar 集成配置里的必填 "Site" 下拉字段。 | X-BackupRadar-Site: us |
Missing either header returns 401 Unauthorized.
Environment Variables
| Variable | Default | Description |
|---|---|---|
MCP_HTTP_PORT |
8080 |
Listening port |
MCP_HTTP_HOST |
0.0.0.0 |
Listening host |
MCP Endpoint
POST http://localhost:8080/mcp
Connect your MCP client with:
- Transport:
http(Streamable HTTP / SSE) - Headers:
X-BackupRadar-Api-Key: <api_key>(required),X-BackupRadar-Site: us|eu(required)
Tool List
4 tools — the subset of MSPbots' 6 configured Backup Radar interfaces that are still supported by the current (v2) Backup Radar API (see scope note above).
| Tool | 功能 | 参数 |
|---|---|---|
backupradar_get_backups |
分页查询备份列表,可按日期/公司/设备/任务名过滤 | page?, size?, date?, search_by_company_name?, search_by_device_name?, search_by_job_name?, statuses?, companies?, tags?, extra_params? |
backupradar_get_scheduled_backups |
查询已排程的备份任务及近期历史 | history_days?, size?, search_by_company_name?, search_by_device_name?, search_by_job_name?, extra_params? |
backupradar_get_inactive_backups |
分页查询不活跃(inactive)的备份 | page?, size?, search_by_company_name?, search_by_device_name?, search_by_job_name?, extra_params? |
backupradar_get_backup_results |
按 ID 查某个备份在指定日期的执行结果 | backup_id(必填), date? |
测试示例 (Test Example)
Fetch recent backups:
{
"method": "tools/call",
"params": { "name": "backupradar_get_backups", "arguments": { "size": 20, "date": "2026-07-01" } }
}
Equivalent curl against the running server (streamable HTTP MCP endpoint):
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "X-BackupRadar-Api-Key: <api_key>" \
-H "X-BackupRadar-Site: us" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "backupradar_get_backups", "arguments": { "size": 20 } }
}'
A parameterized call:
{
"method": "tools/call",
"params": {
"name": "backupradar_get_backup_results",
"arguments": { "backup_id": 3716317, "date": "2026-07-01" }
}
}
API Reference
- API v2 docs (Swagger UI):
https://api.backupradar.com/index.html(US) /https://api-eu.backupradar.com/index.html(EU) - OpenAPI JSON:
https://api.backupradar.com/docs/2.0
Known Gaps / Implementation Notes
- The 2 MSPbots-configured interfaces that reference the retired Backup Radar API v1 (
policies,backups/bg) are intentionally not implemented — see the scope note above. - Not yet tested against a live Backup Radar account — only protocol-level verification (health check, 401 on missing headers,
tools/listreturning all 4 tools) has been done so far. backupradar_get_backupsandbackupradar_get_scheduled_backupsboth call the same underlyingGET /backupsendpoint with different default filters, mirroring how MSPbots itself configured them as two distinct saved API calls.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.