A Model Context Protocol (MCP) server implementation for interfacing with the Bunnyshell platform through its CLI.
This project creates an MCP server that enables AI assistants (like Claude) to interact with the Bunnyshell platform using the Bunnyshell CLI (bns
). The server provides a set of tools for managing your Bunnyshell resources through natural language commands.
- Organization Management: List and navigate organizations
- Project Management: Create, list, and delete projects
- Environment Management: Create, list, start, stop, and delete environments
- Component Operations: Deploy, debug, and SSH into components
- Variable & Secret Management: Manage environment variables and secrets
- Remote Development: Start remote development sessions and set up port forwarding
- Node.js 18+ and npm
- Bunnyshell CLI (
bns
) installed and configured - Claude Desktop
- Docker and Docker Compose (for Docker setup)
- Clone the repository:
git clone https://github.com/bunnyshell/bns-mcp.git
cd bns-mcp
- Run the setup script:
./setup.sh
- Clone the repository:
git clone https://github.com/bunnyshell/bns-mcp.git
cd bns-mcp
- Run the Docker setup script:
./docker-setup.sh
- Start or restart Claude Desktop
- Start a new conversation with Claude
- Click '+' to add an attachment and select 'Connect to MCP server'
- Choose 'bunnyshell-mcp' from the list of servers
- Set your Bunnyshell API token:
token: YOUR_API_TOKEN
You can ask Claude to:
- "List my organizations"
- "Create a new project called 'MyProject' in organization ABC123"
- "List all environments in project XYZ789"
- "Start environment ENV123"
- "Deploy component COMP456"
- "Create a variable called 'DATABASE_URL' in environment ENV123"
.
├── src/
│ ├── tools.ts # Tool implementations
│ ├── utils.ts # Utility functions
│ └── index.ts # Server entry point
├── .cursor/
│ └── mcp.json # Cursor MCP configuration
├── setup.sh # Local setup script
├── docker-setup.sh # Docker setup script
└── README.md # Documentation
The .cursor/mcp.json
file contains the configuration for the MCP server in Cursor:
{
"mcpServers": {
"bunnyshell-mcp": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"BNS_API_KEY": "YOUR_API_TOKEN_HERE"
}
}
}
}
For Docker setup, use:
{
"mcpServers": {
"bunnyshell-mcp": {
"command": "docker",
"args": ["exec", "-i", "bns-mcp-server", "node", "dist/index.js"],
"env": {
"BNS_API_KEY": "YOUR_API_TOKEN_HERE"
}
}
}
}
Note: By adding your Bunnyshell API token to the env
section, the MCP server will automatically use it for authentication without requiring you to provide it for each command. The code already checks for the BNS_API_KEY
environment variable. This is especially useful for development and personal use. For shared environments, it's recommended to omit the token from configuration files and provide it during the conversation instead.
npm install
npm run build
npm test
- API tokens are never stored in the code or configuration files
- Tokens can be provided via:
- Command line options
- Environment variable (BNS_API_KEY)
- Session storage (temporary, in-memory only)
- Command logging omits sensitive information
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request