Skip to main content

🧱 roblox-assets-mcp


Find Roblox Creator Store assets and hand their download URLs to an AI assistant.

PyPI version Quality Python 3.12+ License


About

TL;DR: a local stdio MCP server that searches Roblox Creator Store assets, reads their details and 2D thumbnails, and gets temporary CDN URLs for downloading them. It does not write files or change assets.

Why it exists

An assistant building a Roblox experience needs to discover reusable models, audio, decals, plugins, and other Creator Store assets. This server exposes the asset part of Roblox Open Cloud as three focused tools. Pepper can choose an asset here, then fetch its temporary URL inside her own sandbox.

How it works

The server uses FastMCP over stdio and HTTPX for HTTPS requests. It sends ROBLOX_API_KEY only to Roblox's Open Cloud endpoints. Search and details use the Creator Store API; download URLs come from Asset Delivery; 2D previews come from the public Thumbnails API.

Tool What it returns
search_assets Creator Store assets matching a query, category, optional free-only filter, and page token
get_asset_details An asset's metadata, 2D thumbnail state, and PNG URL when ready
prepare_asset_download A temporary HTTPS CDN URL for an asset, without downloading it

search_assets accepts Audio, Place, Model, Decal, Plugin, MeshPart, Video, and FontFamily. It defaults to free Model assets. Use free_only=false to include paid results. For later pages, pass the returned next_page_token back as page_token. A thumbnail may still be pending, in which case thumbnail_url is null. CDN URLs are temporary; fetch them promptly, and handle compressed responses in the downloading environment.

Installation

Create a Roblox Open Cloud API key with these scopes:

  • creator-store-product:read for Creator Store search and asset details.
  • legacy-asset:manage for Asset Delivery download locations.

Allow the machine running the MCP server in the key's IP restrictions. The public 2D thumbnail endpoint needs no additional scope. Keep the key in your MCP client's environment configuration, and revoke temporary keys after use.

Once published to PyPI, most MCP clients can run it with uvx:

{
  "mcpServers": {
    "roblox-assets": {
      "command": "uvx",
      "args": ["roblox-assets-mcp"],
      "env": {
        "ROBLOX_API_KEY": "YOUR_ROBLOX_OPEN_CLOUD_API_KEY"
      }
    }
  }
}

For local development, use uv sync and launch uv run roblox-assets-mcp with ROBLOX_API_KEY set. Before starting MCP, the server makes one Creator Store search and one Asset Delivery request to check that the key works for both operations. It exits if the key is missing, blank, invalid, or lacks either scope. Roblox authorization and rate-limit failures during later tool calls are returned as explicit errors.

The server also reads .env from its working directory. The following values are optional; each uses the shown default when unset. Process environment variables take precedence over .env values.

Variable Default
CREATOR_STORE_URL https://apis.roblox.com/toolbox-service/v2/assets
DELIVERY_URL https://apis.roblox.com/asset-delivery-api/v1/assetId
THUMBNAILS_URL https://thumbnails.roblox.com/v1/assets
REQUEST_TIMEOUT 20.0 seconds

ROBLOX_API_KEY can also come from .env. The file is ignored by Git.

Development and release

After uv sync, run make quality to check formatting, lint, test, and build the package. Use make format-apply to format the code. The quality workflow calls the same Makefile targets for pull requests and pushes to main.

The release workflow follows FAM MCP: publish a GitHub Release tagged with the package version, such as v0.1.0. It checks that the tag matches pyproject.toml, builds the distributions, and publishes them to PyPI with GitHub OIDC. Before the first release, configure a PyPI Trusted Publisher for this repository and the PyPI - Production GitHub environment.

License

MIT. See LICENSE.md.

Metadata

Release files for roblox-assets-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for roblox-assets-mcp 0.1.0
File Size Uploaded Provenance Actions
roblox_assets_mcp-0.1.0.tar.gz 7.6 kB Without provenance Details for roblox_assets_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for roblox-assets-mcp 0.1.0
File Interpreter ABI Platform Actions
roblox_assets_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for roblox_assets_mcp-0.1.0-py3-none-any.whl

Total release size: 16.7 kB

Release files / roblox_assets_mcp-0.1.0.tar.gz

Download URL roblox_assets_mcp-0.1.0.tar.gz
Size 7.6 kB
Tags Source
SHA-256 checksum
How to use checksums
85fd7b9431afe7e7dc5c0454005cc49701c48bbbda1c087b1bfd3c11660f86c7
BLAKE2b-256 checksum
How to use checksums
3576e9fc15f3f87f0301228e9e485443e5f3675e1391cdccfad8d8543297a7fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / roblox_assets_mcp-0.1.0-py3-none-any.whl

Download URL roblox_assets_mcp-0.1.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d41dc12e1d84cd8761bf2f48b6908b47d810783caa6c6b3509c5b1e36deb080
BLAKE2b-256 checksum
How to use checksums
08d0f981942898894cc514722d51459be51e5d6c6d2975c8cb5884b8012621ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for roblox-assets-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page