Skip to main content
Glama
Beat Saber Modding Tools MCP

Beat Saber Modding Tools MCP

by denpadokei

create_project

Scaffold a BSIPA plugin project with either an SDK-style template for Visual Studio-free builds or official UnityModdingTools Beat Saber templates.

Instructions

Scaffold a BSIPA plugin project. template='sdk' (default) is an SDK-style project that builds without Visual Studio; template='bare'/'core'/'disableable' instantiates the official Visual Studio templates from UnityModdingTools.Templates.BeatSaber (vendored, or a clone via templates_dir).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "path": "<path>"
    },
    "name": "create_project"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo
pathYes
forceNo
authorNo
mod_idNo
versionNo0.1.0
game_dirNo
templateNosdk
descriptionNo
game_versionNo
templates_dirNo
target_frameworkNonet472

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false and openWorld=false, so the description only needs to add what gets written. It adds that templates come from a vendored copy of UnityModdingTools.Templates or a local clone via templates_dir, which is genuinely useful context. It omits the important behaviors: whether an existing directory is overwritten, what 'force' does, and whether filesystem/network access is required.

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?

Two compact sentences, front-loaded with the action and the default template before the exceptions. It is dense but every clause is load-bearing; a slight readability cost comes from cramming the vendored/clone source detail into the same sentence.

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

Completeness2/5

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

For a 12-parameter project generator with an output schema (so return values needn't be explained), the description is thin: the agent cannot tell what most parameters do, what happens on collision with an existing path, or how templates_dir is resolved. The template mechanics are covered well, but the rest of the calling contract is missing.

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

Parameters2/5

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

Schema description coverage is 0% across 12 parameters, so the description carries the full burden, yet it only explains 'template' and implicitly 'templates_dir'. The other ten parameters — name, path, force, author, mod_id, version, game_dir, description, game_version, target_framework — get no meaning, defaults, or format guidance beyond their bare field names.

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

Purpose4/5

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

States a specific verb and resource ('Scaffold a BSIPA plugin project') and immediately distinguishes the default 'sdk' template from the official Visual Studio template variants ('bare'/'core'/'disableable'). An agent knows what artifact it produces, though the description never positions this against siblings like add_item_template or list_templates.

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

Usage Guidelines3/5

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

Usage is implied: this is the bootstrap step for a new project, and the template paragraph tells the agent how to pick between SDK-style and VS-template output. However, there is no explicit when-to-use/when-not guidance, no prerequisites (e.g., does path need to be empty? does it need a detected game dir?), and no routing to related siblings.

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