roblox-devproducts-mcp
An MCP server that lets AI agents manage Roblox developer products and game passes through the Open Cloud API.
List and get details for developer products or game passes in a universe.
Create, update, bulk-create, and bulk-update developer products or game passes (name, price, description, on-sale status, optional icon upload).
Bulk operations are auto rate-limited to 3 writes/sec for developer products and 5 writes/sec for game passes.
Runs entirely locally; your API key stays on your machine.
Store or replace your API key with
setup, clear it withsetup --clear, or use theROBLOX_API_KEYenvironment variable as a fallback.Integrates with Claude Code via
claude mcp addor a project-level.mcp.jsonfile.
Manages Roblox developer products and game passes through the Open Cloud API, allowing creation, updating, listing, and bulk operations on products and game passes within a universe.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@roblox-devproducts-mcplist developer products for universe 123456789"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
roblox-devproducts-mcp
A local MCP server that lets AI agents (Claude Code, Codex, etc.) manage Roblox developer products and game passes through the Open Cloud API.
Runs entirely on your machine. Your API key is stored locally and never leaves your computer.
Tools
Tool | What it does |
| List a universe's developer products (id, name, price, description) |
| Get one product's full details by ID |
| Create a new developer product |
| Update a product's name, price, description, on-sale status, or icon |
| Create many products in one call (auto rate-limited to 3/sec) |
| Update many products in one call (auto rate-limited to 3/sec) |
| List a universe's game passes (id, name, price, description) |
| Get one game pass's full details by ID |
| Create a new game pass |
| Update a game pass's name, price, description, on-sale status, or icon |
| Create many game passes in one call (auto rate-limited to 5/sec) |
| Update many game passes in one call (auto rate-limited to 5/sec) |
All create/update tools accept an optional imagePath — a local file path, file:// URL, or
https:// URL to a .png/.jpg — uploaded as the item's icon (subject to Roblox moderation).
Related MCP server: weppy-railway
Setup
1. Get an Open Cloud API key
Go to the Creator Dashboard → Open Cloud → API Keys.
Create a key and add the Developer Products and/or Game Passes API systems — whichever you plan to use.
Scope each (read and/or write) to the universes you want to manage.
Use the narrowest scope you need — this key only needs the monetization access you'll use, not your whole account. (Game-pass tools require the Game Passes system on the key; without it they return "Scope not authorized".)
2. Install
npm install -g roblox-devproducts-mcp(Or clone this repo and run npm install && npm run build, then use node dist/cli.js as the command.)
3. Store your key
roblox-devproducts-mcp setupThis prompts for your key (hidden input) and saves it to your OS config directory. No secrets end up in any shared config file. Check it worked with:
roblox-devproducts-mcp status4. Connect it to Claude Code
Either register it:
claude mcp add roblox-devproducts -- roblox-devproducts-mcpor add a .mcp.json to your project (safe to commit — it contains no secret):
{
"mcpServers": {
"roblox-devproducts": {
"command": "roblox-devproducts-mcp"
}
}
}The tools appear as mcp__roblox-devproducts__* in your next session; /mcp shows status.
Managing your key
Command | Action |
| Store or replace the key |
| Delete the stored key |
| Show whether a key is configured and where it came from |
A key stored by setup takes precedence. If you haven't run setup, the ROBLOX_API_KEY environment variable is used as a fallback (handy for CI).
License
MIT
Available Tools
12 toolsbulk_create_developer_productsA
Create many developer products in one call. Use this instead of calling create_developer_product repeatedly. Items are created sequentially with automatic rate limiting (the API allows 3 writes/second). Returns a summary plus a per-item result (created 'id' or error); one failing item does not stop the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | The developer products to create. | |
| universeId | Yes | The Roblox universe (game) ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure burden. It discloses sequential creation, automatic rate limiting, and the partial failure behavior ('one failing item does not stop the rest'). It could add details about required permissions or whether the operation is atomic, but the existing disclosure is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph of three sentences, front-loading the key action and immediately providing the use-case alternative. Every sentence adds distinct value: purpose, usage guidance, and behavioral details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description covers the core functionality well. It explains input behavior (what happens to items), return structure, and partial failure semantics. It could mention what happens to the rest of the items on a failure (are they aborted or continue?) or specify the exact return type, but overall it's complete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the overall behavior (sequential, rate limited) and return format (summary plus per-item result), which goes beyond what the schema provides. However, it doesn't elaborate on what specific constraints each parameter must satisfy beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: creating many developer products in one call. It specifies the action ('create'), the resource ('developer products'), and distinguishes itself from the sibling tool 'create_developer_product' by emphasizing the bulk operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this instead of calling create_developer_product repeatedly, which provides clear guidance. It also mentions automatic rate limiting (3 writes/second), implying when this batch tool is appropriate for efficiency.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_create_game_passesA
Create many game passes in one call. Use this instead of calling create_game_pass repeatedly. Items are created sequentially with automatic rate limiting (the API allows 5 writes/second). Returns a summary plus a per-item result (created 'id' or error); one failing item does not stop the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | The game passes to create. | |
| universeId | Yes | The Roblox universe (game) ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits: sequential creation with automatic rate limiting, return summary with per-item result (id or error), and partial failure handling. Since no annotations are provided, the description carries the full burden; it covers most essential behavioral aspects, though it does not explicitly state whether the operation is idempotent or immutable, but that is less critical for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is 2 sentences, clearly front-loaded with the purpose and key benefit. It efficiently covers usage guidance, behavior, and error handling. Could be slightly more concise by removing redundant phrasing (e.g., 'Items are created sequentially' is implicit in 'Create many game passes in one call'), but overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch create tool with 2 parameters and no output schema, the description is complete enough: it explains the batch benefit, rate limiting, partial failure behavior, and return structure. It lacks explicit mention of output format (e.g., whether summary includes counts), but given no output schema, the description's mention of 'summary plus a per-item result' is sufficient for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents parameters (universeId and items with nested properties like name, isForSale, etc.). The description adds value by explaining the sequential creation and rate-limit context, which goes beyond basic schema docs, but does not provide additional parameter-level semantics (e.g., constraints on name length or special characters) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb ('Create many game passes') and resource ('game passes'), specifying it is a batch operation as an alternative to repeated calls of create_game_pass. This distinguishes it well from siblings like create_game_pass and bulk_update_game_passes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use this instead of calling create_game_pass repeatedly, implying efficiency and providing a clear when-to-use guideline. It also mentions automatic rate limiting (5 writes/second), which helps the agent decide based on throughput needs, and notes error handling (one failing item does not stop the rest).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_update_developer_productsA
Update many developer products in one call. Use this instead of calling update_developer_product repeatedly. Each entry targets one by ID and changes only the fields you provide. Items are updated sequentially with automatic rate limiting (3 writes/second). Returns a summary plus a per-item result; one failing item does not stop the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | The developer product updates to apply. | |
| universeId | Yes | The Roblox universe (game) ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully covers behavioral traits: sequential updates, rate limiting (3 writes/second), partial failure resilience, and return summary structure. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, each sentence adds distinct value (purpose, alternative, behavior, failure mode). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains return format (summary plus per-item result). It covers rate limiting, partial failure, and batching, providing complete context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context about how the 'updates' array is processed (each entry targets one by ID, changes only provided fields), which is helpful but not essential beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Update many developer products in one call' with a specific verb and resource, and explicitly distinguishes itself from sibling 'update_developer_product' by offering a batch alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly advises 'Use this instead of calling update_developer_product repeatedly.' Also mentions automatic rate limiting and sequential updates with partial failure handling, giving explicit when/why guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_update_game_passesA
Update many game passes in one call. Use this instead of calling update_game_pass repeatedly. Each entry targets one by ID and changes only the fields you provide. Items are updated sequentially with automatic rate limiting (5 writes/second). Returns a summary plus a per-item result; one failing item does not stop the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | The game pass updates to apply. | |
| universeId | Yes | The Roblox universe (game) ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers key behaviors: sequential updates with automatic rate limiting (5 writes/second), per-item results, and non-failing items. It does not disclose authentication requirements or potential side effects, but the provided detail is commendable for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. Front-loaded with purpose, then usage guidance, then behavioral details. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers bulk update behavior, rate limiting, error handling, and return structure. Does not mention prerequisites like permissions or universe ownership, but for a clearly described bulk update tool, this is adequate. No output schema exists, so the mention of summary and per-item results is helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds that each entry targets one by ID and only changes provided fields, reinforcing partial update semantics. This adds modest value beyond the schema which already describes each field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates many game passes in one call, distinguishing it from the sibling 'update_game_pass' which handles single updates. The verb 'Update' and resource 'game passes' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using this instead of repeatedly calling 'update_game_pass', providing clear when-to-use guidance. Does not mention cases where it should not be used, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_developer_productA
Create a new developer product in a universe. Only a name is required. To make it purchasable, also pass priceInRobux and isForSale: true — it cannot be put on sale without a price. Returns the created developer product including its new ID. Requires an API key scoped to write developer products.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The developer product name shown to buyers. | |
| isForSale | No | Whether it is available for purchase. Requires a price. | |
| universeId | Yes | The Roblox universe (game) ID. | |
| description | No | Optional description. | |
| priceInRobux | No | Price in Robux. Required before it can be sold. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behaviors: return value ('Returns the created developer product including its new ID'), a constraint ('it cannot be put on sale without a price'), and authorization requirements ('Requires an API key scoped to write developer products'). It does not mention idempotency or rate limits, but these are less critical for a create tool. Overall, adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the purpose, and each sentence adds essential information. No redundant or filler content. It is clear, direct, and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema or annotations, the description is incomplete. It incorrectly states 'Only a name is required,' while the schema shows universeId is also required. It does not mention that the 'description' parameter is optional. The return value and auth are covered, but the missing required field and the misleading statement about required fields significantly reduce completeness for a creation tool with 5 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the relationship between priceInRobux and isForSale ('To make it purchasable, also pass priceInRobux and isForSale: true — it cannot be put on sale without a price') and clarifies that only a name is required (though this is slightly inaccurate as universeId is also required). This extra context exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new developer product in a universe') with a specific verb and resource. It distinguishes from sibling tools (e.g., create_game_pass, update_developer_product) by focusing on developer products and creation. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (to create a developer product) and gives actionable guidance on optional parameters ('To make it purchasable, also pass priceInRobux and isForSale: true'). However, it does not explicitly compare with alternatives like bulk_create_developer_products or mention when not to use it, missing a small but helpful exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_game_passA
Create a new game pass in a universe. Only a name is required. To make it purchasable, also pass priceInRobux and isForSale: true — it cannot be put on sale without a price. Returns the created game pass including its new ID. Requires an API key scoped to write game passes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The game pass name shown to buyers. | |
| isForSale | No | Whether it is available for purchase. Requires a price. | |
| universeId | Yes | The Roblox universe (game) ID. | |
| description | No | Optional description. | |
| priceInRobux | No | Price in Robux. Required before it can be sold. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It clearly states the outcome (creates and returns the game pass with ID), the scope requirement (write permission), and the conditional behavior for making it purchasable. It does not mention idempotency, rate limits, or potential side effects, but for a creation tool this level of transparency is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each concise and front-loaded with the essential action: first sentence states the core purpose, second sentence adds conditional logic for purchasability, third sentence covers return value and auth requirement. No extraneous text; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by mentioning the return value (game pass with ID). It covers required/optional parameters, conditional logic, and auth scope. It does not detail error cases, validation rules, or default values, but overall it provides enough context for an agent to use the tool correctly for typical creation scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 applies. The description adds significant value beyond the schema by explaining the interplay between priceInRobux and isForSale, clarifying that only name and universeId are required, and stating that the response includes the new ID. This enriches the agent's understanding of parameter dependencies beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('a new game pass in a universe'), making the action unambiguous. It also distinguishes this tool from siblings like update/get/list by using 'Create' and specifying the resource, and it adds context that only a name is required, which helps differentiate from similar creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use additional parameters (priceInRobux and isForSale) to make the game pass purchasable, including a constraint ('cannot be put on sale without a price'). It also mentions the prerequisite of an API key with write scope. However, it does not contrast with sibling bulk_create_game_passes or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_developer_productA
Get the full details of a single developer product by its ID within a universe.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | The developer product ID. | |
| universeId | Yes | The Roblox universe (game) ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It states 'Get the full details'—implying a read-only, safe operation—but does not specify what 'full details' includes, rate limits, authentication requirements, or error behavior. The absence of output schema leaves the response structure ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the tool's core purpose without extraneous words, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with two fully-described parameters and no output schema, the description covers the essential purpose and parameters. It could be improved by hinting at the expected response fields (e.g., 'including name, price, etc.'), but is largely complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no meaning beyond the parameter names and types; it merely restates them ('by its ID within a universe'). No format, constraints, or usage hints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'a single developer product', and the scope 'by its ID within a universe'. It effectively distinguishes from list_developer_products (which returns multiple) and game pass tools (different resource type).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied—use when you have a specific product ID and universe ID to retrieve details. However, there is no explicit guidance on when not to use it (e.g., for a list of products or when creating/updating) nor any mention of alternatives such as list_developer_products or update_developer_product. Sibling tools are listed but not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_game_passA
Get the full details of a single game pass by its ID within a universe.
| Name | Required | Description | Default |
|---|---|---|---|
| gamePassId | Yes | The game pass ID. | |
| universeId | Yes | The Roblox universe (game) ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation via the word 'Get', which implies no side effects. Without any annotations, this sufficiently signals non-destructive behavior. However, it does not detail authentication needs, rate limits, or response structure, though for a simple retrieval this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence of 16 words, front-loaded with the verb and resource, and no extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required string params, no output schema, no nested objects), the description is complete enough to understand its purpose and usage. It does not describe the return value, but for a straightforward get operation, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described in the schema. The description adds no additional meaning beyond the schema (e.g., 'by its ID within a universe' mirrors the params). Baseline 3 is appropriate as the schema already carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('game pass'), and a scope ('by its ID within a universe'). It distinctly identifies the action and resource, differentiating from sibling tools like 'list_game_passes' (which lists all) or 'create_game_pass' (which creates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when retrieving details of a single known game pass, but provides no explicit guidance on when to use this tool versus alternatives such as 'list_game_passes', nor any exclusions or prerequisites. Usage is implied but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_developer_productsA
List the developer products for a Roblox universe (game). Returns each item's ID, name, price, description, and on-sale status. Use this to see a game's developer products or to find an ID before updating one.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | No | Token from a previous response to fetch the next page. | |
| universeId | Yes | The Roblox universe (game) ID. | |
| maxPageSize | No | Maximum number of results to return per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It correctly states that the tool returns a list of developer products with specific fields, implying a read-only operation. However, it does not mention pagination behavior, authentication requirements, or resource ownership, which are gaps for a listing tool. A 3 is appropriate as it adds useful context despite these omissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a secondary use-case statement, totaling ~25 words. Every phrase adds value: the verb, resource, scope, returned fields, and usage hint. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description adequately fills the gap by naming the returned fields (ID, name, price, description, on-sale status). The pagination parameters ('pageToken', 'maxPageSize') are self-explanatory from the schema, and the tool's complexity is low. The description is complete enough for this straightforward list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even with no extra param info in the description. The description does not add any parameter-specific meaning beyond what the schema already provides (e.g., it doesn't explain the 'pageToken' parameter in context). The description stays at the output/resource level, not the input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'developer products', and the scope 'for a Roblox universe (game)'. It also specifies the fields returned (ID, name, price, description, on-sale status), and includes a second use case ('find an ID before updating one'), which differentiates it from sibling tools like 'get_developer_product' or 'update_developer_product'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use this to see a game's developer products or to find an ID before updating one', which gives clear context for when to invoke this tool. However, it does not explicitly state when not to use it or provide alternatives like 'get_developer_product' for a single product retrieval, though the sibling context makes this implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_game_passesA
List the game passes for a Roblox universe (game). Returns each item's ID, name, price, description, and on-sale status. Use this to see a game's game passes or to find an ID before updating one.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | No | Token from a previous response to fetch the next page. | |
| universeId | Yes | The Roblox universe (game) ID. | |
| maxPageSize | No | Maximum number of results to return per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It correctly signals that the tool is read-only (list operation) and states the output fields. However, it does not mention pagination behavior, rate limits, authentication requirements, or whether the response is ordered. For a simple listing tool, this is adequate but not enriched beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first clearly states the purpose and output, second explains when to use it. Every word adds value with no redundancy or filler. The first sentence front-loads the core action and result, making it easy for an agent to quickly parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters (all with schema descriptions), no output schema, and moderate complexity (pagination), the description covers the purpose, output fields, and a key use case. It lacks details on pagination mechanics or result ordering, but for a straightforward listing tool, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema_description_coverage is 100%, the baseline is 3. The description adds no additional context for the parameters beyond what the schema already provides (universeId as the game identifier, pageToken and maxPageSize for pagination). It does not explain how pagination works or the format expected for universeId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'game passes', and the context 'for a Roblox universe (game)'. It also enumerates the returned fields (ID, name, price, description, on-sale status), which differentiates it from sibling tools like get_game_pass (single item) or update_game_pass (mutation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'to see a game's game passes or to find an ID before updating one'. It does not provide negative guidance (when not to use) or explicitly compare with siblings like list_developer_products, but the context is sufficient for an agent to make a correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_developer_productA
Update an existing developer product's name, description, price, or on-sale status. Only the fields you provide change. Putting it on sale (isForSale: true) requires a price. Returns the updated developer product. Requires an API key scoped to write developer products.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name. | |
| isForSale | No | Put on sale (true) or off sale (false). Selling requires a price. | |
| productId | Yes | The developer product ID to update. | |
| universeId | Yes | The Roblox universe (game) ID. | |
| description | No | New description. | |
| priceInRobux | No | New price in Robux. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates key behaviors: partial update ('Only the fields you provide change'), a validation rule ('Putting it on sale requires a price'), the return type ('Returns the updated developer product'), and authentication requirements ('Requires an API key scoped to write developer products'). This adds significant context beyond the input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at five sentences. Each sentence adds necessary information: purpose, partial update behavior, a validation rule, return value, and auth requirements. It is front-loaded and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no output schema, and no annotations, the description covers the essential aspects: what fields can be updated, the partial update nature, a critical validation rule, the return type, and auth scoping. It does not cover error scenarios or idempotency, but for a standard update operation this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds some value by clarifying the dependency between isForSale and priceInRobux, but otherwise repeats field names already listed in the schema. It does not provide deeper semantics (e.g., constraints, allowed patterns) beyond what schema descriptions already state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an existing developer product and lists the specific fields that can be changed (name, description, price, or on-sale status). It uses a specific verb ('Update') and resource ('developer product'), effectively distinguishing itself from sibling tools like list, get, or create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to modify a single developer product, but it does not explicitly state when to use this tool versus alternatives like bulk_update_developer_product or create_developer_product. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_game_passA
Update an existing game pass's name, description, price, or on-sale status. Only the fields you provide change. Putting it on sale (isForSale: true) requires a price. Returns the updated game pass. Requires an API key scoped to write game passes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name. | |
| isForSale | No | Put on sale (true) or off sale (false). Selling requires a price. | |
| gamePassId | Yes | The game pass ID to update. | |
| universeId | Yes | The Roblox universe (game) ID. | |
| description | No | New description. | |
| priceInRobux | No | New price in Robux. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It reveals key traits: partial update semantics ('only the fields you provide change'), return value ('Returns the updated game pass'), and a security requirement ('Requires an API key scoped to write game passes'). It does not discuss rate limits, idempotency, or failure modes, but these are not critical for a standard mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly three sentences with zero wasted words. Each sentence serves a distinct purpose: listing updatable fields, explaining update behavior, and stating return value and auth requirements. This is an excellent example of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, the description covers the essential usage (partial update, auth, return value) and a key cross-parameter constraint. It could mention that 'universeId' and 'gamePassId' are required (though already in schema), but this is minor. The presence of sibling tools for bulk operations is not referenced, but the description still feels complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by noting that only provided fields change and by linking the 'isForSale' and 'priceInRobux' parameters with a specific constraint. It does not explain each parameter individually since the schema already does that adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and the resource ('an existing game pass'), and names the specific fields that can be modified (name, description, price, on-sale status). This distinguishes it from sibling tools like 'create_game_pass' or 'get_game_pass'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use the tool (updating an existing game pass) and includes a conditional guideline ('Putting it on sale... requires a price'). However, it does not explicitly mention alternatives like 'bulk_update_game_passes' for updating multiple passes, leaving the agent to infer when to use this single-update version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v0.3.0- First observed
bulk_create_developer_products - First observed
bulk_create_game_passes - First observed
bulk_update_developer_products - First observed
bulk_update_game_passes - First observed
create_developer_product - First observed
create_game_pass - First observed
get_developer_product - First observed
get_game_pass - First observed
list_developer_products - First observed
list_game_passes - First observed
update_developer_product - First observed
update_game_pass
TDQS
The tools cleanly separate into two distinct domains: developer products and game passes. Within each domain, the operations follow a clear pattern (get, list, create, update, bulk_create, bulk_update) with no overlap or ambiguity.
All tool names consistently use the verb_noun pattern (e.g., get_developer_product, create_game_pass). Bulk operations follow bulk_verb_noun convention. No mixing of styles (camelCase, inconsistent verbs) is present.
With 12 tools covering two distinct product types (developer products and game passes), the count is well-scoped. Each tool serves a clear purpose, including both singular and bulk operations, without being excessive or too sparse.
For both developer products and game passes, the tool set provides full CRUD coverage (create, read via get/list, update) plus bulk operations. There are no obvious gaps—every necessary operation to manage these Roblox in-game items is present.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Cloudflare Workers MCP server: ai-agent-scratchpad
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- FlicenseAqualityCmaintenanceAn MCP server that bridges AI to Roblox Studio, enabling execution of Luau scripts, instance manipulation, play-testing control, and Open Cloud operations via natural language.21-
- FlicenseNot gradedqualityBmaintenanceMCP server for Roblox Studio integration, enabling AI agents to interact with Roblox through SSE transport and a local HTTP bridge for plugin communication.-
- AlicenseNot gradedqualityBmaintenanceMCP server that allows AI agents to execute code, inspect scripts, spy on remotes, and interact with a running Roblox game client.7615MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI agents to execute Lua code, inspect scripts, spy on remotes, and interact with running Roblox game clients, including support for mobile executors on Android and iOS.761MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/frrazer/roblox-devproducts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server