Skip to content

Conversation

msanatan
Copy link
Contributor

@msanatan msanatan commented Aug 14, 2025

  • Change the package name to Unity MCP
  • Modify the package description so it's more clear what's happening
  • Add instructions on how to install via OpenUPM
  • Add a GH workflow to bump the version more consistently
  • Raise minimum supported Unity version to 2021.3

Closes #213, #217 and #218

Summary by CodeRabbit

  • Documentation

    • Updated prerequisites to require Unity 2021.3 LTS+.
    • Added alternative installation options: Git URL and OpenUPM.
    • Clarified how to connect your MCP client to the Python server.
  • Chores

    • Added a manual "Bump Version" workflow to increment versions (patch/minor/major) and create tags.
    • Updated package metadata: renamed display name to “Unity MCP” and refreshed description for LLM-to-Unity integration.

@msanatan msanatan self-assigned this Aug 14, 2025
Copy link
Contributor

coderabbitai bot commented Aug 14, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a GitHub Actions workflow to bump package versions, updates README with new install options and minimum Unity version, and modifies UnityMcpBridge/package.json metadata (displayName, description, unity version).

Changes

Cohort / File(s) Summary
Version bump workflow
.github/workflows/bump-version.yml
New workflow to compute semantic next version (patch/minor/major), update UnityMcpBridge/package.json and UnityMcpServer~/src/pyproject.toml, commit & push changes, and create/push annotated tag.
Docs updates
README.md
Updated Unity prerequisite to 2021.3 LTS+, added install via Git URL and OpenUPM instructions, and clarified MCP client → Python server connection step.
Package metadata
UnityMcpBridge/package.json
Updated displayName to "Unity MCP", revised description, and raised unity field from "2020.3" → "2021.3".

Sequence Diagram(s)

sequenceDiagram
  actor Maintainer
  participant GH as GitHub Actions
  participant Repo as Repository
  participant Files as package.json / pyproject.toml

  Maintainer->>GH: workflow_dispatch(version_bump)
  GH->>Repo: checkout (fetch-depth:0)
  GH->>Files: read current version (jq/sed)
  GH->>GH: compute NEW_VERSION (major/minor/patch)
  GH->>Files: update versions
  GH->>Repo: commit & push changes
  GH->>Repo: create & push tag vNEW_VERSION
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Assessment against linked issues

Objective Addressed Explanation
Bump minimum Unity version to 2021.3 LTS across metadata and docs (#213)

Assessment against linked issues: Out-of-scope changes

Code Change Explanation
Add automated version bump workflow (.github/workflows/bump-version.yml) Not part of #213, which only requested changing the minimum Unity version.
Rename package displayName and change description (UnityMcpBridge/package.json) Naming/description edits are not requested by #213.
Add OpenUPM and Git URL installation instructions (README.md) Installation-method additions are outside #213’s stated objective.

Possibly related issues

  • Add to OpenUPM #217 — Rename package to "Unity MCP" and add OpenUPM instructions; matches metadata and README changes here.

Possibly related PRs

Poem

I nibble at tags and version strings,
I hop through docs where the new Unity sings.
From 2020 we bound to '21's light,
Commit, tag, and push—what a delight.
OpenUPM carrots gleam tonight 🥕🐇

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ce39ca6 and ed63c24.

📒 Files selected for processing (2)
  • .github/workflows/bump-version.yml (1 hunks)
  • README.md (3 hunks)
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🔭 Outside diff range comments (1)
README.md (1)

255-258: Broken reference to “Installation Step 3”.

There is no Step 3. This should reference Step 2.

-2. **Start your MCP Client** (Claude, Cursor, etc.). It should automatically launch the Unity MCP Server (Python) using the configuration from Installation Step 3.
+2. **Start your MCP Client** (Claude, Cursor, etc.). It should automatically launch the Unity MCP Server (Python) using the configuration from Installation Step 2.
🧹 Nitpick comments (10)
UnityMcpBridge/package.json (1)

1-26: Optional: Add changelogUrl and samples metadata for better OpenUPM UX.

OpenUPM consumers benefit from quick access to changelogs and sample content. Consider adding optional fields if applicable.

Apply if desired:

   "licensesUrl": "https://github.com/CoplayDev/unity-mcp/blob/main/LICENSE",
+  "changelogUrl": "https://github.com/CoplayDev/unity-mcp/blob/main/CHANGELOG.md",
+  "samples": [
+    {
+      "displayName": "Example Configs",
+      "description": "Sample MCP client configs to get started quickly.",
+      "path": "Samples~/ExampleConfigs"
+    }
+  ],
README.md (4)

65-74: Fix list indentation in Prerequisites (markdownlint MD007).

Remove leading spaces before list items and keep the code block indented under the “uv” bullet.

Apply:

-  *   **Python:** Version 3.12 or newer. [Download Python](https://www.python.org/downloads/)
-  *   **Unity Hub & Editor:** Version 2021.3 LTS or newer. [Download Unity](https://unity.com/download)
-  *   **uv (Python package manager):**
-      ```bash
-      pip install uv
-      # Or see: https://docs.astral.sh/uv/getting-started/installation/
-      ```
+*   **Python:** Version 3.12 or newer. [Download Python](https://www.python.org/downloads/)
+*   **Unity Hub & Editor:** Version 2021.3 LTS or newer. [Download Unity](https://unity.com/download)
+*   **uv (Python package manager):**
+    ```bash
+    pip install uv
+    # Or see: https://docs.astral.sh/uv/getting-started/installation/
+    ```

118-121: Typo: “Instal” → “Install”.

Minor copy edit in the OpenUPM install steps.

-1.  Instal the [OpenUPM CLI](https://openupm.com/docs/getting-started-cli.html)
+1.  Install the [OpenUPM CLI](https://openupm.com/docs/getting-started-cli.html)

114-116: Confirm auto-install behavior of the MCP Server across both install methods.

Line 116 states the MCP Server installs automatically via the Git URL method. Does the same happen with OpenUPM CLI installs (lines 118–121)? If behavior differs, add a short note so users know when manual steps are needed.

I can draft a short note for OpenUPM users if auto-install isn’t guaranteed.


261-261: Nit: Unclear example phrase.

“Create a yellow and bridge sun” likely intended “bright sun”.

-    Example Prompt: `Create a 3D player controller`, `Create a yellow and bridge sun`, `Create a cool shader and apply it on a cube`.
+    Example Prompt: `Create a 3D player controller`, `Create a bright sun`, `Create a cool shader and apply it on a cube`.
.github/workflows/bump-version.yml (5)

15-15: Remove trailing spaces (yamllint).

Whitespace-only line with trailing spaces.

-      
+

106-107: Add missing newline at end of file (yamllint).

Ensure the file ends with a newline to satisfy linters.

-          git tag -a "$TAG" -m "Version ${NEW_VERSION}"
-          git push origin "$TAG"
+          git tag -a "$TAG" -m "Version ${NEW_VERSION}"
+          git push origin "$TAG"
+

28-58: Harden version parsing; fail fast on non-SemVer and strip pre-release.

Current parsing assumes MA.MI.PA only. Add validation to avoid surprising bumps with pre-release/build metadata.

       - name: Compute new version
         id: compute
         shell: bash
         run: |
           set -euo pipefail
           BUMP="${{ inputs.version_bump }}"
           CURRENT_VERSION=$(jq -r '.version' "UnityMcpBridge/package.json")
           echo "CURRENT_VERSION version: $CURRENT_VERSION"
 
-          IFS='.' read -r MA MI PA <<< "$CURRENT_VERSION"
+          # Validate SemVer (major.minor.patch) and strip any pre-release/build suffixes
+          BASE_VERSION="${CURRENT_VERSION%%[-+]*}"
+          if [[ ! "$BASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+            echo "Unsupported version format: $CURRENT_VERSION" >&2
+            exit 1
+          fi
+          IFS='.' read -r MA MI PA <<< "$BASE_VERSION"

16-26: Prevent overlapping runs on the same branch (tag race).

Add a concurrency group to avoid two manual dispatches racing to push tags.

 jobs:
   bump:
     name: "Bump version and tag"
     runs-on: ubuntu-latest
+    concurrency:
+      group: bump-version-${{ github.ref }}
+      cancel-in-progress: false
     permissions:
       contents: write

92-107: Guard tag creation to default branch only (optional).

Avoid publishing tags from non-default branches or forks.

       - name: Create and push tag
+        if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
         env:
           NEW_VERSION: ${{ steps.compute.outputs.new_version }}
         shell: bash
         run: |
           set -euo pipefail
           TAG="v${NEW_VERSION}"
           echo "Preparing to create tag $TAG"
 
           if git ls-remote --tags origin | grep -q "refs/tags/$TAG$"; then
             echo "Tag $TAG already exists on remote. Skipping tag creation."
             exit 0
           fi
 
           git tag -a "$TAG" -m "Version ${NEW_VERSION}"
           git push origin "$TAG"
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between b33ae0b and ce39ca6.

📒 Files selected for processing (3)
  • .github/workflows/bump-version.yml (1 hunks)
  • README.md (3 hunks)
  • UnityMcpBridge/package.json (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/bump-version.yml

[error] 15-15: trailing spaces

(trailing-spaces)


[error] 107-107: no new line character at the end of file

(new-line-at-end-of-file)

🪛 LanguageTool
README.md

[grammar] ~68-~68: There might be a mistake here.
Context: ...ion 2021.3 LTS or newer. Download Unity * uv (Python package manager): ```...

(QB_NEW_EN)


[grammar] ~104-~104: There might be a mistake here.
Context: ...tep 1: Install the Unity Package🌟 ### To install via Git URL 1. Open your Unit...

(QB_NEW_EN)

🪛 markdownlint-cli2 (0.17.2)
README.md

68-68: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🔇 Additional comments (2)
UnityMcpBridge/package.json (2)

4-6: Renaming, description, and min Unity version align with PR objectives. LGTM.

Display name, description, and the minimum Unity version (2021.3) match the README and the stated goals.


10-11: Verify Newtonsoft JSON version compatibility with Unity 2021.3.

3.0.2 is recent; Unity 2021.3 typically supports it, but some projects pin earlier versions. Please confirm no runtime/package manager conflicts occur under 2021.3.

Replaced a bit too aggressively lol
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Minimum Unity version supported?

1 participant