# Building MCPB (MCP Bundle) for Claude Desktop
This guide explains how to package the Manim MCP server as a `.mcpb` file for one-click installation in Claude Desktop.
## What is MCPB?
MCPB (.mcpb) files are zip archives that bundle an MCP server with a manifest for single-click installation in Claude Desktop, similar to browser extensions.
## Prerequisites
1. **Install MCPB CLI:**
```bash
npm install -g @anthropic-ai/mcpb
```
2. **Install Python dependencies:**
```bash
pip install -e .
```
3. **Ensure icon.png exists** (512x512 PNG file in the root directory)
## Building the MCPB
### Method 1: Using MCPB CLI (Recommended)
```bash
# Build the .mcpb file
mcpb pack
# This creates: manim-mcp-0.1.0.mcpb
```
The MCPB CLI will:
- Validate manifest.json
- Bundle all necessary files
- Create a signed .mcpb archive
### Method 2: Manual Build Script
```bash
# Run the build script
./build_mcpb.sh
```
This script:
1. Validates manifest.json
2. Copies necessary files to dist/
3. Creates the .mcpb bundle
4. Cleans up temporary files
## What Gets Bundled?
The MCPB includes:
- `manifest.json` - Extension metadata and configuration
- `icon.png` - Extension icon (512x512)
- `src/` - Python source code
- `pyproject.toml` - Python package configuration
- `requirements.txt` - Python dependencies
- `LICENSE` - License file
## Installing the MCPB
Once built, users can install via:
1. **Double-click** the `.mcpb` file
2. **Drag and drop** into Claude Desktop
3. **File menu**: Developer → Extensions → Install Extension
## Testing
Before distributing:
1. **Install locally:**
```bash
# On macOS
open manim-mcp-0.1.0.mcpb
# On Windows
start manim-mcp-0.1.0.mcpb
```
2. **Verify in Claude Desktop:**
- Check extension appears in Developer → Extensions
- Test both tools (create_math_animation and get_manim_example)
- Verify video output is created
3. **Test on both platforms:**
- macOS (darwin)
- Windows (win32)
## System Requirements
Users will need:
- **Python 3.10+** installed and in PATH
- **System dependencies** for Manim:
- macOS: `brew install py3cairo ffmpeg && brew install --cask mactex-no-gui`
- Windows: `choco install manimce`
- Linux: See README.md for apt packages
## Troubleshooting
### "Command not found: mcpb"
- Install MCPB CLI: `npm install -g @anthropic-ai/mcpb`
- Verify: `mcpb --version`
### "Missing icon.png"
- Run `python3 create_icon.py` or create manually
- Must be 512x512 PNG in root directory
### "Invalid manifest.json"
- Validate: `mcpb validate manifest.json`
- Check JSON syntax
- Ensure all required fields present
### Bundle too large
- Remove unnecessary files (.git, __pycache__, etc.)
- These are automatically excluded by .mcpbignore
## Distribution
### For Internal Use
- Share the `.mcpb` file directly
- Users double-click to install
- No code signing required for internal use
### For Public Distribution
See [Submitting to Anthropic Directory](https://docs.anthropic.com/en/build-with-claude/mcp/directory-submission) for:
- Code signing requirements
- Privacy policy requirements
- Submission process
- Review guidelines
## File Structure
```
manim-mcp/
├── manifest.json # MCPB manifest (required)
├── icon.png # Extension icon (recommended)
├── src/manim_mcp/ # Source code
│ ├── __init__.py
│ ├── __main__.py
│ └── server.py
├── pyproject.toml # Package config
├── requirements.txt # Dependencies
├── LICENSE # License file
└── README.md # Documentation
```
## Learn More
- [MCPB Repository](https://github.com/anthropics/mcpb)
- [MCPB Manifest Spec](https://github.com/anthropics/mcpb/blob/main/MANIFEST_SPEC.md)
- [MCP Documentation](https://modelcontextprotocol.io/)
- [Claude Desktop Extensions Guide](https://docs.anthropic.com/en/build-with-claude/mcp/desktop-extensions)