Skip to main content

📦 roblox-assets-mcp


An MCP server for finding Roblox Creator Store assets.
Give an assistant a way to search, inspect, and retrieve what a game needs.

PyPI version Quality Python 3.12+ License Time spent


About

TL;DR: a local, asset-only MCP server for Roblox Creator Store. An assistant can search reusable assets, inspect their metadata and 2D thumbnails, and request a temporary download URL. It leaves downloading and working with the asset to the assistant's own environment.

Why it exists

I am building a Roblox game with friends and an AI agent. The agent can help with code, but it also needs the same raw material a human creator would look for: models, audio, decals, plugins, and other things already made for Roblox. This server gives it a small set of tools for that part of the work.

For example, I can ask the agent to find a free forest cabin, check who made it and whether it contains scripts, inspect its preview, and get a URL for the asset it chooses. The agent can then fetch and examine the file in its own workspace before using it in a project.

How it works

You ask an AI assistant for an asset. It calls the local roblox-assets-mcp server over stdio. The server searches Roblox Creator Store and reads asset details, gets a 2D preview from the Thumbnails API, and asks Asset Delivery for a temporary CDN URL. The assistant receives the results and fetches the file in its own workspace.

The assistant calls three tools over local stdio. The server sends HTTPS requests to Roblox with HTTPX, using an Open Cloud API key for Creator Store and Asset Delivery. It reads 2D previews from the public Thumbnails API. The API key stays in the server process and is never part of a tool response.

Philosophy

Only the asset workflow.
The three tools follow the path from a search to an inspected asset to a URL that the agent can fetch. Universe and place management belong to a different set of tools.

Let the assistant choose.
Search returns structured names, creators, prices and IDs. Details add a preview and script flag when Roblox provides them. The agent has enough information to compare candidates before downloading one.

Keep the key local.
Roblox authentication happens in the MCP process. The agent sees asset data and temporary URLs, while the key remains in the process environment. Access is checked before the server announces itself to the client.

Leave files with the caller.
The server obtains the CDN location; the assistant decides where to fetch, inspect and store the asset. This keeps filesystem access and game integration in the environment that already owns the project.

What it can do

Tool What it returns
search_assets Matching Creator Store assets, including names, creators, prices when available, and a token for the next page
get_asset_details One asset's metadata and the state and URL of its 2D PNG thumbnail when ready
prepare_asset_download A temporary HTTPS CDN URL for one asset; the tool does not save the file

The search tool accepts these asset types:

Asset type Description Example
Audio Sound effects and music Footsteps in a forest
Place A saved Roblox world and its contents A starter map
Model A group of objects that can include geometry and scripts A forest cabin
Decal An image applied to a surface A warning sign
Plugin A tool that extends Roblox Studio A terrain editor
MeshPart A custom 3D shape A rock mesh
Video A clip for an in-game screen A looping display
FontFamily A font for interface text A pixel-style font

Search starts with free models. The assistant can choose another type, include paid results, and request more pages. Thumbnail images may still be pending, and download URLs expire. The server returns the URL; the assistant fetches the file in its own workspace.

Getting an API key

Create a Roblox Open Cloud API key with both scopes below. On startup, the server checks Creator Store and Asset Delivery access and exits if the API key is missing, invalid, or lacks the required scopes. Later authorization or rate-limit failures appear as tool errors.

Scope Used for
creator-store-product:read Searching Creator Store and reading asset details
legacy-asset:manage Asking Asset Delivery for an asset's download location

If you enable IP restrictions, allow the address of the machine running the MCP server. The public 2D thumbnail endpoint needs no additional scope. Keep the key in your MCP client's environment configuration, never in a project file that you commit. A key used only for testing can be revoked afterward.

Installation

Roblox Assets MCP is published on PyPI and runs locally over stdio. Choose your client below and replace YOUR_ROBLOX_OPEN_CLOUD_API_KEY with your key.

Hermes Agent (Pepper)

Add a server to your Hermes profile's mcp_servers configuration. Pepper's existing profiles use this uvx pattern:

mcp_servers:
  roblox-assets:
    command: uvx
    args: [roblox-assets-mcp]
    env:
      ROBLOX_API_KEY: "${ROBLOX_API_KEY}"

Set ROBLOX_API_KEY in the environment that starts Hermes. See Pepper's configuration for the wider setup.

Claude Code

Run this in a terminal. The user scope makes the server available across projects:

claude mcp add --transport stdio --scope user \
  --env "ROBLOX_API_KEY=YOUR_ROBLOX_OPEN_CLOUD_API_KEY" \
  roblox-assets -- uvx roblox-assets-mcp

Check the connection with claude mcp get roblox-assets or /mcp inside Claude Code. See the Claude Code MCP guide.

Claude Desktop

Open Settings → Developer → Edit Config and add this entry inside mcpServers:

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

Restart Claude Desktop after saving. See Claude Desktop local MCP setup.

OpenAI Codex

Add this to ~/.codex/config.toml. The same user config is used by Codex CLI and its IDE integrations:

[mcp_servers.roblox-assets]
command = "uvx"
args = ["roblox-assets-mcp"]
env = { ROBLOX_API_KEY = "YOUR_ROBLOX_OPEN_CLOUD_API_KEY" }

Restart Codex, then check the server with codex mcp list. See the Codex configuration reference.

OpenCode

Add this server under mcp in your user ~/.config/opencode/opencode.json or project opencode.json:

{
  "mcp": {
    "roblox-assets": {
      "type": "local",
      "command": ["uvx", "roblox-assets-mcp"],
      "environment": {
        "ROBLOX_API_KEY": "YOUR_ROBLOX_OPEN_CLOUD_API_KEY"
      },
      "enabled": true
    }
  }
}

See the OpenCode MCP server guide.

Gemini CLI

Run:

gemini mcp add --scope user \
  --env "ROBLOX_API_KEY=YOUR_ROBLOX_OPEN_CLOUD_API_KEY" \
  roblox-assets uvx roblox-assets-mcp

Check with gemini mcp list. See the Gemini CLI MCP guide.

Grok Build

Add this to ~/.grok/config.toml:

[mcp_servers.roblox-assets]
command = "uvx"
args = ["roblox-assets-mcp"]
env = { ROBLOX_API_KEY = "YOUR_ROBLOX_OPEN_CLOUD_API_KEY" }
enabled = true

Reload the MCP list in Grok Build after saving. See the Grok Build MCP guide.

DeepSeek Harness

Add this MCP client entry to your DeepSeek Harness Cordis profile. Start the harness with ROBLOX_API_KEY set in its environment:

- id: mcp-roblox-assets
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: roblox-assets
    transport: stdio
    command: uvx
    args: [roblox-assets-mcp]
    env:
      ROBLOX_API_KEY: !!js process.env.ROBLOX_API_KEY

See the DeepSeek Harness MCP client guide.

Cursor

Add this entry under mcpServers in .cursor/mcp.json:

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

See the Cursor MCP guide.

VS Code with GitHub Copilot

Create or edit .vscode/mcp.json:

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

Start the server from the MCP Servers view in Copilot Chat. See VS Code MCP setup.

Zed

Add this entry under context_servers in Zed's settings.json:

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

See the Zed MCP guide.

Cline and Roo Code

In either extension's MCP settings, add a local stdio server with command uvx, argument roblox-assets-mcp, and environment variable ROBLOX_API_KEY. Both provide an MCP settings editor in the extension UI. See the Cline MCP guide and Roo Code MCP guide.

Continue

Create .continue/mcpServers/roblox-assets.yaml:

name: Roblox Assets MCP
version: 1.0.0
schema: v1
mcpServers:
  - name: Roblox Assets
    command: uvx
    args:
      - roblox-assets-mcp
    env:
      ROBLOX_API_KEY: YOUR_ROBLOX_OPEN_CLOUD_API_KEY

See the Continue MCP guide.

Claude.ai and ChatGPT in a browser

These web apps connect to remote MCP servers. This package runs locally over stdio and does not publish a remote endpoint, so you cannot paste uvx roblox-assets-mcp into their connector settings. Connecting a web app requires a separately hosted or securely tunneled remote MCP endpoint. See Claude remote connectors and ChatGPT MCP connectors.

Technologies

      Technology Used for
Model Context Protocol The protocol between the assistant and the local tools
FastMCP Stdio server and typed tool registration
Python The language of the server
HTTPX Async HTTPS requests to Roblox
Pydantic Models for the data returned by tools
uv Dependencies, development and uvx distribution

What's inside

.
├── .github/
│   └── workflows/
│       ├── quality.yml        # formatting, lint, tests and build checks
│       └── release.yml        # build and publish a GitHub Release to PyPI
│
├── assets/                  # editable Excalidraw flow and its SVG for this README
│
├── src/roblox_assets_mcp/
│   ├── app.py               # stdio server, tools and startup check
│   ├── client.py            # Roblox HTTP requests and response parsing
│   ├── config.py            # environment settings and their defaults
│   └── models.py            # typed tool responses and asset categories
│
├── tests/                   # behavior checks for the server
├── Makefile                 # local quality commands
└── pyproject.toml           # package metadata and dependencies

Development

Requirements

  • Git to work with the repository.
  • uv to install Python and project dependencies.
  • GNU Make to run the project commands.

Setup

From the repository root:

# Install the dependencies pinned in uv.lock.
uv sync --locked --group dev

Coding

# Format the Python files after editing them.
make format-apply

# Check Python formatting.
make format-check

# Check Python code with Ruff.
make lint

Testing and building

# Run the server tests.
make test

# Build the source distribution and wheel in dist/.
make build

# Run formatting, lint, tests and build together.
make quality
  • roblox-with-swe is the collaborative Roblox game that motivated this server.
  • pepper documents the personal agent that will use it.

Disclaimer

This project is unofficial. It is not made by, affiliated with or endorsed by Roblox.

License

This repository is licensed under the MIT License.

References

Metadata

Release files for roblox-assets-mcp 0.2.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.2.0
File Size Uploaded Provenance Actions
roblox_assets_mcp-0.2.0.tar.gz 11.8 kB Without provenance Details for roblox_assets_mcp-0.2.0.tar.gz

Built distribution (wheel)

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

Total release size: 25.4 kB

Release files / roblox_assets_mcp-0.2.0.tar.gz

Download URL roblox_assets_mcp-0.2.0.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ecb8dc99015b04abafc42fadb458490e64ff0c98c853efdb758cc8646252771a
BLAKE2b-256 checksum
How to use checksums
99d22b43cfecc7e288c5eff330507f2023ea517ad74a7ad14c13b9741f48b4fa
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.2.0-py3-none-any.whl

Download URL roblox_assets_mcp-0.2.0-py3-none-any.whl
Size 13.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
24a6047e091e180d5fb1eb9e47e8fdd3d45362951d96f0c0e6cd4e1f33cc9246
BLAKE2b-256 checksum
How to use checksums
98e7154b66a61ce02722d2e6abd2f98e50336d9402a08ae9bcf54462386f3e6c
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.2.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.2.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