MCP server for browsing, downloading, extracting, and converting Unity Asset Store packages. Works with Claude Code and other MCP-compatible AI agents.
# Clone and install dependencies
git clone <repo-url> && cd UnityStoreMCP
bun install- FBX to glTF:
brew install fbx2gltf(macOS) or install FBX2glTF - TGA/PSD to PNG: uses macOS
sipsby default, orffmpegas fallback
Add to your MCP client config (e.g. ~/.claude/settings.json):
{
"mcpServers": {
"unity-store": {
"command": "bun",
"args": ["run", "/path/to/UnityStoreMCP/src/index.ts"]
}
}
}The server authenticates using cookies from assetstore.unity.com:
- Log into https://assetstore.unity.com in your browser
- Open DevTools (F12) → Network tab
- Copy the full
Cookieheader value from any request - Use
configure-authwithmethod: "session_token"and paste the cookie string
The server exchanges these cookies for the internal tokens needed for downloads.
| Tool | Description |
|---|---|
configure-auth |
Authenticate with Unity Asset Store |
search-assets |
Search the store by query |
get-asset-details |
Get details for specific asset IDs |
list-my-assets |
List your purchased/owned assets |
download-asset |
Download a .unitypackage by ID |
list-local-packages |
List Unity Editor cached packages |
inspect-package |
Preview package contents without extracting |
extract-package |
Extract .unitypackage to disk |
convert-assets |
Convert Unity assets to Three.js formats (FBX→glTF, materials, textures) |
list-extracted |
List extracted/converted directories |
browse-files |
Browse files in asset directories |
Downloaded, extracted, and converted assets are stored in ~/.unity-mcp/. Override with UNITY_MCP_DATA_DIR environment variable.
Unity Asset Store packages are served as AES-256-CBC encrypted blobs. The download-asset tool handles this automatically:
- Fetches the download URL and a 96-character hex decryption key from Unity's Kharma API
- Downloads the encrypted file via streaming (supports files >2GB)
- Splits the key: first 32 bytes → AES key, last 16 bytes → IV
- Decrypts with
openssland outputs a standard.unitypackage(gzip tar)