Skip to content

bunnyapp/bunny-plugin

v0.2.0MIT

Bunny for AI agents — operate a live Bunny billing account through MCP tools, plus developer skills for docs, GraphQL and SDK integration

Bunny Agent Plugin

Connect your AI assistant to Bunny. This repository is an Agent Plugin (spec 1.0) bundling two things:

  • Developer skills — Bunny's GraphQL API, the official Node and Ruby SDKs, the @bunnyapp/components React library, webhooks, and the customer portal.
  • Operator skills + MCP tools — work with a live Bunny account from chat: look up customers, answer revenue questions, preview invoices, build pricing, and raise quotes.

For more context see docs.bunny.com/developer.

Install

Pick your assistant. Every route installs the same plugin from this repository.

Claude Code

Run these two commands in a chat:

/plugin marketplace add bunnyapp/skills
/plugin install bunny-plugin@bunny-ai-toolkit

VS Code (GitHub Copilot)

Open the Command Palette (Cmd+Shift+P / Ctrl+Shift+P), run Chat: Install Plugin From Source, and paste the repository URL:

https://github.com/bunnyapp/skills

VS Code clones the repo and reads plugin.json, skills/ and mcp.json directly — it implements Agent Plugins 1.0.

Gemini CLI

gemini extensions install https://github.com/bunnyapp/skills

Cursor

Install Bunny from the Cursor Marketplace.

OpenAI Codex

In the Codex CLI run /plugins, search for Bunny, and select Add to Codex.

Any other Agent Plugins host

Hosts that implement Agent Plugins 1.0 — Google's Agents CLI and Data Agent Kit among them — load a plugin from a directory path. The spec does not define a distribution mechanism, so clone the repo and point the host at it:

git clone https://github.com/bunnyapp/skills bunny-plugin

Individual skills only

For any agentskills.io-compatible tool, when you want one skill rather than the whole plugin:

npx skills add bunnyapp/skills --skill <skill-name>

Connect your Bunny account

Installing the plugin gives you the skills. The MCP tools — everything that reads or changes real data — need one more step, because Bunny's MCP endpoint is per account:

https://<your-subdomain>.bunny.com/api/mcp

There is no shared host, so the URL shipped in mcp.json is a placeholder. Replace YOUR-SUBDOMAIN with your own, and create an API client in Bunny under Settings → API Clients to authenticate. Full walkthrough, including the OAuth redirect URI that most often trips people up, is in MCP.md.

Without this step the developer skills still work; the operator skills have no tools to call.

How it is packaged

The repository root is the plugin, conforming to Agent Plugins 1.0. Hosts implementing the spec consume it directly — no build step, no per-platform repackaging:

plugin.json          # manifest: $schema + name, plus optional metadata
mcp.json             # MCP servers, each with an explicit transport type
skills/<name>/       # one directory per skill, each holding a SKILL.md

Those locations are fixed by the spec, and the same tree feeds the vendor-specific manifests kept alongside it (.claude-plugin/, .cursor-plugin/, .codex-plugin/, gemini-extension.json) — one copy of every skill, many distribution targets. CI validates conformance on every PR.

What you get

  • Docs and schema-aware help: search Bunny's developer documentation and GraphQL schema from inside your editor
  • SDK-guided integration: correct setup and usage patterns for the Node (@bunnyapp/api-client) and Ruby (bunny_app) SDKs
  • React components: guided integration of @bunnyapp/components (BillingDetails, Invoice, Signup, Subscriptions, Quote, Quotes, Transactions)
  • Webhook handlers: correct patterns for platform and workflow webhooks
  • Lifecycle flows: quote → apply → subscription; renewals, upgrades, cancellation; invoices, payments, credit notes

Available skills

SkillCovers
bunny-graphqlDirect GraphQL API: endpoint, auth, pagination, common operations
bunny-node-sdk@bunnyapp/api-client (Node / TypeScript)
bunny-ruby-sdkbunny_app gem (Ruby / Rails)
bunny-components@bunnyapp/components React library
bunny-webhooksPlatform and workflow webhook handling
bunny-customer-portalPopup, standalone, and signup portal variants
bunny-catalogProducts, plans, features, price lists, coupons
bunny-quotingQuote lifecycle (create → share → accept → apply)
bunny-subscriptionsSubscription lifecycle: renewals, upgrades, cancellation, usage
bunny-billingInvoices, payments, credit notes, reconciliation
bunny-analyticsMRR / ARR / churn, RevRec schedules, reporting exports
bunny-agent-toolsOperating a live Bunny account through the MCP tool set
bunny-agent-dataReading and interpreting Bunny data via MCP
bunny-agent-changesMaking changes via MCP: quote lifecycle, catalogue, cancellation

Each lives at skills/<name>/SKILL.md.

Credential safety

Every code sample in this plugin reads tokens from environment variables. When integrating Bunny, never hardcode, log, or commit access tokens. Rotate tokens regularly and scope them to the minimum set of permissions you need.

Feedback

Open an issue in this repository. For broader questions about Bunny's API, see docs.bunny.com/developer.

Contributing

This repo is maintained by the Bunny team. See CONTRIBUTING.md for the authoring rubric, skill shape, and PR conventions. External pull requests may be considered on a case-by-case basis — please open an issue first to discuss.