Skip to main content
Glama
iwillwait4u

Roblox BedWars Creative Scripting Tool MCP

sync_directory

Uploads a project directory to Roblox BedWars Creative Code Sync, replacing the active connection and optionally auto-uploading future Lua changes.

Instructions

Upload a specified directory now and retain it as the active Code Sync connection. Inputs: sync_token (required string from the editor Sync tab); directory (required string, project root path); glob_pattern (optional string, default empty: bwconfig.lua syncGlob or scripts/**/*.lua); allow_empty (optional boolean, default false: permit clearing remote scripts when no files match); probe (optional boolean, default false: write scripts/zz_sync_probe.lua unless allow_empty=true); probe_message (optional string, default empty: generated message); watch (optional boolean, default true: auto-upload future matching changes). Effects: uploads matching existing Lua files, removes exact legacy generated helpers, and on success replaces the in-memory connection and applies watch. Returns upload status, file details, connection/watcher flags, probe, and removed helpers.

Context: Choose when token and directory are explicitly available. It shares connect_sync's upload/session behavior; connect_sync additionally permits reusing the previous directory. For a single manual upload without auto-sync, set watch=false; the connection is still retained for sync_connected. Normal use does not prepare a project or generate scripts. allow_empty=true with no matches sends an in-memory .lua deletion payload; if legacy-helper cleanup leaves no matches, this is also permitted with allow_empty=false. Preview and validate before uploading; probe=true is for an explicitly requested visible test.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
probeNo
watchNo
directoryYes
sync_tokenYes
allow_emptyNo
glob_patternNo
probe_messageNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so: it discloses that matching Lua files are uploaded, exact legacy generated helpers are removed, the in-memory connection is replaced, and watch is applied on success. It also spells out the destructive edge case (allow_empty=true with no matches sends an in-memory deletion payload) and the probe side effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the Inputs/Effects/Returns/Context layout is easy to scan, but the prose is dense and occasionally repetitive for a tool whose schema already supplies defaults. Every clause is at least informative, so it is efficient rather than wasteful, though a touch longer than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with no annotations, the description is complete: it covers inputs, side effects (including deletions), retention semantics, and even summarizes the return payload despite an output schema existing. Nothing an agent needs to call it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: every one of the 7 parameters is given type, required/optional status, default, and meaning (e.g. glob_pattern defaulting to syncGlob or scripts/**/*.lua; allow_empty controlling remote-script clearing; watch controlling auto-upload). This goes well beyond the bare titles and defaults in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource with scope: 'Upload a specified directory now and retain it as the active Code Sync connection.' It also explicitly differentiates from the nearest sibling, noting it 'shares connect_sync's upload/session behavior; connect_sync additionally permits reusing the previous directory.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit selection criteria ('Choose when token and directory are explicitly available'), names the alternative (connect_sync), states when-not ('For a single manual upload without auto-sync, set watch=false'), and adds workflow guidance ('Preview and validate before uploading; probe=true is for an explicitly requested visible test').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.