bunnycdn-mcp
v1.0.0
Published
MCP server for BunnyCDN — manage pull zones, DNS, storage, video streaming, edge scripting, security, and more.
Maintainers
Readme
bunnycdn-mcp
MCP server for BunnyCDN — manage pull zones, DNS, storage, video streaming, edge scripting, security, and Magic Containers right from your AI assistant.
Features
| Tool | Description | Data Source |
|------|-------------|-------------|
| bunny_get_account | Get account details and balance | bunny.net API |
| bunny_get_billing_summary | Get billing summary with charges | bunny.net API |
| bunny_get_statistics | Get CDN statistics (bandwidth, requests, cache hit rate) | bunny.net API |
| bunny_global_search | Search across all resources | bunny.net API |
| bunny_purge_url | Purge a URL from CDN cache | bunny.net API |
| bunny_list_regions | List CDN edge regions | bunny.net API |
| bunny_list_countries | List countries for geo-blocking | bunny.net API |
| bunny_list_pull_zones | List pull zones with search and pagination | bunny.net API |
| bunny_get_pull_zone | Get pull zone details | bunny.net API |
| bunny_create_pull_zone | Create a pull zone | bunny.net API |
| bunny_update_pull_zone | Update pull zone settings | bunny.net API |
| bunny_delete_pull_zone | Delete a pull zone | bunny.net API |
| bunny_purge_pull_zone_cache | Purge entire pull zone cache | bunny.net API |
| bunny_manage_pull_zone_hostnames | Add or remove custom hostnames | bunny.net API |
| bunny_manage_edge_rules | Add, update, delete, or toggle edge rules | bunny.net API |
| bunny_list_dns_zones | List DNS zones | bunny.net API |
| bunny_get_dns_zone | Get DNS zone with all records | bunny.net API |
| bunny_create_dns_zone | Create a DNS zone | bunny.net API |
| bunny_update_dns_zone | Update DNS zone settings | bunny.net API |
| bunny_delete_dns_zone | Delete a DNS zone | bunny.net API |
| bunny_manage_dns_record | Add, update, or delete DNS records | bunny.net API |
| bunny_get_dns_statistics | Get DNS query statistics | bunny.net API |
| bunny_list_storage_zones | List storage zones | bunny.net API |
| bunny_get_storage_zone | Get storage zone details | bunny.net API |
| bunny_create_storage_zone | Create a storage zone | bunny.net API |
| bunny_get_storage_zone_statistics | Get storage zone usage statistics | bunny.net API |
| bunny_list_storage_files | List files and directories | Storage API |
| bunny_download_storage_file | Download file content | Storage API |
| bunny_delete_storage_file | Delete a file or directory | Storage API |
| bunny_list_video_libraries | List video libraries | bunny.net API |
| bunny_get_video_library | Get library details | bunny.net API |
| bunny_create_video_library | Create a video library | bunny.net API |
| bunny_update_video_library | Update library settings | bunny.net API |
| bunny_list_videos | List videos with search and pagination | Stream API |
| bunny_get_video | Get video details | Stream API |
| bunny_create_video | Create video object, optionally fetch from URL | Stream API |
| bunny_update_video | Update video metadata | Stream API |
| bunny_delete_video | Delete a video | Stream API |
| bunny_get_video_statistics | Get view statistics | Stream API |
| bunny_get_video_heatmap | Get attention heatmap data | Stream API |
| bunny_reencode_video | Re-encode a video | Stream API |
| bunny_list_collections | List video collections | Stream API |
| bunny_get_collection | Get collection details | Stream API |
| bunny_manage_collection | Create, update, or delete collections | Stream API |
| bunny_list_edge_scripts | List edge scripts | bunny.net API |
| bunny_get_edge_script | Get script details | bunny.net API |
| bunny_get_edge_script_code | Get script source code | bunny.net API |
| bunny_set_edge_script_code | Upload script code (saved as draft) | bunny.net API |
| bunny_manage_edge_script | Create, update, or delete scripts | bunny.net API |
| bunny_publish_edge_script | Publish a release to edge servers | bunny.net API |
| bunny_manage_edge_script_variables | Manage environment variables and secrets | bunny.net API |
| bunny_list_shield_zones | List shield security zones | bunny.net API |
| bunny_get_shield_zone | Get zone by shield zone ID or pull zone ID | bunny.net API |
| bunny_get_waf_rules | Get WAF rules and profiles | bunny.net API |
| bunny_manage_waf_custom_rule | Create, update, or delete custom WAF rules | bunny.net API |
| bunny_list_rate_limit_rules | List rate limiting rules | bunny.net API |
| bunny_manage_rate_limit_rule | Create, update, or delete rate limit rules | bunny.net API |
| bunny_get_shield_metrics | Get security metrics overview | bunny.net API |
| bunny_get_bot_detection | Get or update bot detection settings | bunny.net API |
| bunny_list_mc_apps | List Magic Container applications | bunny.net API |
| bunny_get_mc_app | Get application details | bunny.net API |
| bunny_get_mc_app_overview | Get app overview with real-time metrics | bunny.net API |
| bunny_manage_mc_app | Create, update, or delete applications | bunny.net API |
| bunny_mc_app_lifecycle | Deploy, undeploy, or restart applications | bunny.net API |
| bunny_list_mc_registries | List container registries | bunny.net API |
| bunny_list_mc_regions | List deployment regions | bunny.net API |
| bunny_get_mc_app_statistics | Get application statistics | bunny.net API |
| bunny_get_origin_errors | Get origin error logs for a pull zone | bunny.net API |
Data sources: Tools marked Storage API require BUNNY_STORAGE_KEY. Tools marked Stream API require BUNNY_STREAM_KEY. All other tools use BUNNY_API_KEY.
Prerequisites
- Node.js >= 18
- A bunny.net account with an API key
- Optional: Stream library API key (for video tools)
- Optional: Storage zone password (for file tools)
Setup
No installation needed — just configure your MCP client:
Add to .vscode/mcp.json:
{
"servers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}Add to .cursor/mcp.json:
{
"mcpServers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}Add to claude_desktop_config.json:
{
"mcpServers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}claude mcp add --transport stdio bunnycdn -- npx -y bunnycdn-mcpOr add to .mcp.json (shared with team):
{
"mcpServers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}Add to settings.json:
{
"context_servers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}Open Settings → Tools → AI Assistant → MCP, click +, and paste:
{
"mcpServers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}gemini mcp add bunnycdn -- npx -y bunnycdn-mcpOr add to ~/.gemini/settings.json:
{
"mcpServers": {
"bunnycdn": {
"command": "npx",
"args": ["-y", "bunnycdn-mcp"],
"env": {
"BUNNY_API_KEY": "your-api-key"
}
}
}
}Any MCP client that supports stdio transport can use this server. The command is:
npx -y bunnycdn-mcpSee the full list of MCP clients.
Optional environment variables
| Variable | Description |
|----------|-------------|
| BUNNY_STREAM_KEY | Video library API key — enables Stream video and collection tools |
| BUNNY_STORAGE_KEY | Storage zone password — enables Storage file tools |
| BUNNY_STORAGE_REGION | Storage region code (default: empty for Falkenstein) |
| BUNNY_STORAGE_ZONE | Default storage zone name |
Add these to the env block in your MCP client configuration above.
Local development
git clone https://github.com/anvme/bunnycdn-mcp.git
cd bunnycdn-mcp
npm install
npm test
node index.jsHow It Works
This MCP server connects to the bunny.net API using your API key. It registers up to 68 tools depending on which API keys are provided:
- Core tools (55 tools) — always available with
BUNNY_API_KEY - Stream tools (11 tools) — registered when
BUNNY_STREAM_KEYis set - Storage file tools (3 tools) — registered when
BUNNY_STORAGE_KEYis set
All read operations are cached in-memory with a short TTL for performance. Every tool includes MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) so clients can make informed decisions about tool approval.
License
MIT
