Unity-mcp mcp-source

Switch MCP for Unity package source in connected Unity projects. Use /mcp-source [main|beta|branch|local] to swap between upstream releases, your remote branch, or local dev checkout.

install
source · Clone the upstream repo
git clone https://github.com/CoplayDev/unity-mcp
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/CoplayDev/unity-mcp "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/mcp-source" ~/.claude/skills/coplaydev-unity-mcp-mcp-source && rm -rf "$T"
manifest: .claude/skills/mcp-source/SKILL.md
source content

Switch MCP for Unity Package Source

You are switching the

com.coplaydev.unity-mcp
package source in one or more Unity projects.

allowed-tools

Bash, Read, Edit, ReadMcpResourceTool, ListMcpResourcesTool

Instructions

1. Parse arguments

The user's argument is:

$ARGUMENTS

Valid values:

main
,
beta
,
branch
,
local
, or empty.

If empty or not one of the four valid values, ask the user to choose:

  • main — upstream main branch (stable releases)
  • beta — upstream beta branch (pre-release)
  • branch — your current remote branch (for testing a PR)
  • local — local file reference to your checkout (for live dev iteration)

2. Detect repo context

Run these git commands from the current working directory to find the unity-mcp repo:

git rev-parse --show-toplevel    # → repo_root
git rev-parse --abbrev-ref HEAD  # → branch_name
git remote get-url origin        # → origin_url

Convert SSH origins to HTTPS: if

origin_url
starts with
git@github.com:
, transform it to
https://github.com/{owner}/{repo}.git
.

3. Discover target Unity projects

Try two approaches to find

Packages/manifest.json
files to update:

Approach A — MCP resources (preferred): Read

mcpforunity://project/info
for each connected Unity instance (use
ListMcpResourcesTool
to find available instances). Extract
projectRoot
and use
{projectRoot}/Packages/manifest.json
.

Approach B — filesystem fallback: If no MCP instances are connected, search upward from the current working directory for

Packages/manifest.json
files using Bash:

find "$(pwd)" -maxdepth 3 -name "manifest.json" -path "*/Packages/manifest.json" 2>/dev/null

If multiple manifests are found, update all of them (confirming with the user first).

4. Build the package URL

Based on the user's selection, construct the dependency value:

SelectionURL
main
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main
beta
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#beta
branch
{origin_https}?path=/MCPForUnity#{branch_name}
local
file:{repo_root}/MCPForUnity

For

branch
: use the HTTPS-normalized origin URL and current git branch name. For
local
: use the absolute path to the repo root with
file:
prefix (no
//
), e.g.
file:/Users/davidsarno/unity-mcp/MCPForUnity
.

5. Update each manifest

For each discovered

manifest.json
:

  1. Read the file with the Read tool
  2. Find the
    "com.coplaydev.unity-mcp"
    dependency line
  3. Use the Edit tool to replace the old value with the new URL
  4. Report what was changed: old value → new value, file path

6. Report results

After updating, tell the user:

  • Which manifests were updated
  • The old and new package source values
  • Remind them: "Unity will re-resolve the package automatically. If it doesn't, open Package Manager and click Refresh."