npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

bunnycdn-mcp

v1.0.0

Published

MCP server for BunnyCDN — manage pull zones, DNS, storage, video streaming, edge scripting, security, and more.

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-mcp

Or 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-mcp

Or 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-mcp

See 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.js

How 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_KEY is set
  • Storage file tools (3 tools) — registered when BUNNY_STORAGE_KEY is 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