Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public override string GetInstallationRecommendations()
- Run: curl -LsSf https://astral.sh/uv/install.sh | sh
- Or download from: https://github.com/astral-sh/uv/releases

3. MCP Server: Will be installed automatically by Unity MCP Bridge
3. MCP Server: Will be installed automatically by MCP for Unity

Note: Make sure ~/.local/bin is in your PATH for user-local installations.";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public override string GetInstallationRecommendations()
- Curl: curl -LsSf https://astral.sh/uv/install.sh | sh
- Homebrew: brew install uv

3. MCP Server: Will be installed automatically by Unity MCP Bridge
3. MCP Server: Will be installed automatically by MCP for Unity Bridge

Note: If using Homebrew, make sure /opt/homebrew/bin is in your PATH.";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public override string GetInstallationRecommendations()
- Run: powershell -ExecutionPolicy ByPass -c ""irm https://astral.sh/uv/install.ps1 | iex""
- Or download from: https://github.com/astral-sh/uv/releases

3. MCP Server: Will be installed automatically by Unity MCP Bridge";
3. MCP Server: Will be installed automatically by MCP for Unity Bridge";
}

private bool TryValidatePython(string pythonPath, out string version, out string fullPath)
Expand Down
6 changes: 3 additions & 3 deletions MCPForUnity/Editor/Services/IBridgeControlService.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
namespace MCPForUnity.Editor.Services
{
/// <summary>
/// Service for controlling the Unity MCP Bridge connection
/// Service for controlling the MCP for Unity Bridge connection
/// </summary>
public interface IBridgeControlService
{
Expand All @@ -21,12 +21,12 @@ public interface IBridgeControlService
bool IsAutoConnectMode { get; }

/// <summary>
/// Starts the Unity MCP Bridge
/// Starts the MCP for Unity Bridge
/// </summary>
void Start();

/// <summary>
/// Stops the Unity MCP Bridge
/// Stops the MCP for Unity Bridge
/// </summary>
void Stop();

Expand Down
4 changes: 2 additions & 2 deletions MCPForUnity/Editor/Services/IClientConfigurationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ public interface IClientConfigurationService
bool CheckClientStatus(McpClient client, bool attemptAutoRewrite = true);

/// <summary>
/// Registers Unity MCP with Claude Code CLI
/// Registers MCP for Unity with Claude Code CLI
/// </summary>
void RegisterClaudeCode();

/// <summary>
/// Unregisters Unity MCP from Claude Code CLI
/// Unregisters MCP for Unity from Claude Code CLI
/// </summary>
void UnregisterClaudeCode();

Expand Down
4 changes: 2 additions & 2 deletions MCPForUnity/UnityMcpServer~/src/telemetry.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
Privacy-focused, anonymous telemetry system for Unity MCP
Privacy-focused, anonymous telemetry system for MCP for Unity
Inspired by Onyx's telemetry implementation with Unity-specific adaptations

Fire-and-forget telemetry sender with a single background worker.
Expand Down Expand Up @@ -328,7 +328,7 @@ def _send_telemetry(self, record: TelemetryRecord):
"customer_uuid": record.customer_uuid,
"session_id": record.session_id,
"data": enriched_data,
"version": "3.0.2", # Unity MCP version
"version": "3.0.2", # MCP for Unity version
"platform": _platform,
"source": _source,
}
Expand Down
2 changes: 1 addition & 1 deletion MCPForUnity/UnityMcpServer~/src/telemetry_decorator.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
Telemetry decorator for Unity MCP tools
Telemetry decorator for MCP for Unity tools
"""

import functools
Expand Down
2 changes: 1 addition & 1 deletion MCPForUnity/UnityMcpServer~/src/test_telemetry.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""
Test script for Unity MCP Telemetry System
Test script for MCP for Unity Telemetry System
Run this to verify telemetry is working correctly
"""

Expand Down
2 changes: 1 addition & 1 deletion MCPForUnity/UnityMcpServer~/src/tools/resource_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ async def read_resource(
if uri in ("unity://spec/script-edits", "spec/script-edits", "script-edits"):
spec_json = (
'{\n'
' "name": "Unity MCP - Script Edits v1",\n'
' "name": "MCP for Unity - Script Edits v1",\n'
' "target_tool": "script_apply_edits",\n'
' "canonical_rules": {\n'
' "always_use": ["op","className","methodName","replacement","afterMethodName","beforeMethodName"],\n'
Expand Down
8 changes: 4 additions & 4 deletions MCPForUnity/UnityMcpServer~/src/unity_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,19 +84,19 @@ def connect(self) -> bool:
if 'FRAMING=1' in text:
self.use_framing = True
logger.debug(
'Unity MCP handshake received: FRAMING=1 (strict)')
'MCP for Unity handshake received: FRAMING=1 (strict)')
else:
if require_framing:
# Best-effort plain-text advisory for legacy peers
with contextlib.suppress(Exception):
self.sock.sendall(
b'Unity MCP requires FRAMING=1\n')
b'MCP for Unity requires FRAMING=1\n')
raise ConnectionError(
f'Unity MCP requires FRAMING=1, got: {text!r}')
f'MCP for Unity requires FRAMING=1, got: {text!r}')
else:
self.use_framing = False
logger.warning(
'Unity MCP handshake missing FRAMING=1; proceeding in legacy mode by configuration')
'MCP for Unity handshake missing FRAMING=1; proceeding in legacy mode by configuration')
finally:
self.sock.settimeout(config.connection_timeout)
return True
Expand Down
2 changes: 1 addition & 1 deletion README-zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ MCP for Unity 使用与 Unity 的 C# 脚本绑定的 Python MCP 服务器来实

## 📊 遥测和隐私

Unity MCP 包含**注重隐私的匿名遥测**来帮助我们改进产品。我们收集使用分析和性能数据,但**绝不**收集您的代码、项目名称或个人信息。
MCP for Unity 包含**注重隐私的匿名遥测**来帮助我们改进产品。我们收集使用分析和性能数据,但**绝不**收集您的代码、项目名称或个人信息。

- **🔒 匿名**:仅随机 UUID,无个人数据
- **🚫 轻松退出**:设置 `DISABLE_TELEMETRY=true` 环境变量
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ Help make MCP for Unity better!

## 📊 Telemetry & Privacy

Unity MCP includes **privacy-focused, anonymous telemetry** to help us improve the product. We collect usage analytics and performance data, but **never** your code, project names, or personal information.
MCP for Unity includes **privacy-focused, anonymous telemetry** to help us improve the product. We collect usage analytics and performance data, but **never** your code, project names, or personal information.

- **🔒 Anonymous**: Random UUIDs only, no personal data
- **🚫 Easy opt-out**: Set `DISABLE_TELEMETRY=true` environment variable
Expand Down Expand Up @@ -354,10 +354,10 @@ MIT License. See [LICENSE](LICENSE) file.
## Unity AI Tools by Coplay

Coplay has built 2 AI tools for Unity
- **Unity MCP** is available freely under the MIT license.
- **Coplay** is a premium Unity AI assistant that sits within Unity and is more than the Unity MCP.
- **MCP for Unity** is available freely under the MIT license.
- **Coplay** is a premium Unity AI assistant that sits within Unity and is more than the MCP for Unity.

(These tools have different tech stacks. See this blog post [comparing Coplay to Unity MCP](https://www.coplay.dev/blog/comparing-coplay-and-unity-mcp).)
(These tools have different tech stacks. See this blog post [comparing Coplay to MCP for Unity](https://www.coplay.dev/blog/comparing-coplay-and-unity-mcp).)

## Disclaimer

Expand Down
4 changes: 2 additions & 2 deletions docs/CUSTOM_TOOLS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Adding Custom Tools to Unity MCP
# Adding Custom Tools to MCP for Unity

Unity MCP now supports auto-discovery of custom tools using decorators (Python) and attributes (C#). This allows you to easily extend the MCP server with your own tools without modifying core files.
MCP for Unity now supports auto-discovery of custom tools using decorators (Python) and attributes (C#). This allows you to easily extend the MCP server with your own tools without modifying core files.

Be sure to review the developer README first:

Expand Down
4 changes: 2 additions & 2 deletions docs/README-DEV-zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ X:\UnityProject\Library\PackageCache\com.coplaydev.unity-mcp@272123cfd97e
- `tools/stress_mcp.py`

### 作用
- 对 Unity MCP bridge 启动 N 个 TCP 客户端(默认端口从 `~/.unity-mcp/unity-mcp-status-*.json` 自动发现)。
- 对 MCP for Unity bridge 启动 N 个 TCP 客户端(默认端口从 `~/.unity-mcp/unity-mcp-status-*.json` 自动发现)。
- 发送轻量级帧 `ping` 保活以维持并发。
- 并行地,使用 `manage_script.apply_text_edits` 向目标 C# 文件追加唯一标记注释:
- `options.refresh = "immediate"` 立即强制导入/编译(触发域重载),以及
Expand Down Expand Up @@ -181,7 +181,7 @@ python3 tools/stress_mcp.py \
- 工件:`claude-nl-suite-artifacts` 包含 XML 和 MD。

### MCP 连接调试
- *在 Unity MCP 窗口(编辑器内)启用调试日志* 以查看连接状态、自动设置结果和 MCP 客户端路径。它显示:
- *在 MCP for Unity 窗口(编辑器内)启用调试日志* 以查看连接状态、自动设置结果和 MCP 客户端路径。它显示:
- bridge 启动/端口、客户端连接、严格帧协商和解析的帧
- 自动配置路径检测(Windows/macOS/Linux)、uv/claude 解析和显示的错误
- 在 CI 中,如果启动失败,作业会尾随 Unity 日志(序列号/许可证/密码/令牌已编辑)并打印套接字/状态 JSON 诊断。
Expand Down
4 changes: 2 additions & 2 deletions docs/README-DEV.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ An on-demand stress utility exercises the MCP bridge with multiple concurrent cl
- `tools/stress_mcp.py`

### What it does
- Starts N TCP clients against the Unity MCP bridge (default port auto-discovered from `~/.unity-mcp/unity-mcp-status-*.json`).
- Starts N TCP clients against the MCP for Unity bridge (default port auto-discovered from `~/.unity-mcp/unity-mcp-status-*.json`).
- Sends lightweight framed `ping` keepalives to maintain concurrency.
- In parallel, appends a unique marker comment to a target C# file using `manage_script.apply_text_edits` with:
- `options.refresh = "immediate"` to force an import/compile immediately (triggers domain reload), and
Expand Down Expand Up @@ -181,7 +181,7 @@ We provide a CI job to run a Natural Language Editing suite against the Unity te
- Artifacts: `claude-nl-suite-artifacts` includes XML and MD.

### MCP Connection Debugging
- *Enable debug logs* in the Unity MCP window (inside the Editor) to view connection status, auto-setup results, and MCP client paths. It shows:
- *Enable debug logs* in the MCP for Unity window (inside the Editor) to view connection status, auto-setup results, and MCP client paths. It shows:
- bridge startup/port, client connections, strict framing negotiation, and parsed frames
- auto-config path detection (Windows/macOS/Linux), uv/claude resolution, and surfaced errors
- In CI, the job tails Unity logs (redacted for serial/license/password/token) and prints socket/status JSON diagnostics if startup fails.
Expand Down
8 changes: 4 additions & 4 deletions docs/TELEMETRY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Unity MCP Telemetry
# MCP for Unity Telemetry

Unity MCP includes privacy-focused, anonymous telemetry to help us improve the product. This document explains what data is collected, how to opt out, and our privacy practices.
MCP for Unity includes privacy-focused, anonymous telemetry to help us improve the product. This document explains what data is collected, how to opt out, and our privacy practices.

## 🔒 Privacy First

Expand Down Expand Up @@ -38,7 +38,7 @@ Set any of these environment variables to `true`:
# Disable all telemetry
export DISABLE_TELEMETRY=true

# Unity MCP specific
# MCP for Unity specific
export UNITY_MCP_DISABLE_TELEMETRY=true

# MCP protocol wide
Expand Down Expand Up @@ -175,4 +175,4 @@ Notice:

---

*Unity MCP Telemetry is designed to respect your privacy while helping us build a better tool. Thank you for helping improve Unity MCP!*
*MCP for Unity Telemetry is designed to respect your privacy while helping us build a better tool. Thank you for helping improve MCP for Unity!*
2 changes: 1 addition & 1 deletion tests/test_logging_stdout.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
if SRC is None:
searched = "\n".join(str(p) for p in candidates)
pytest.skip(
"Unity MCP server source not found. Tried:\n" + searched,
"MCP for Unity server source not found. Tried:\n" + searched,
allow_module_level=True,
)

Expand Down
2 changes: 1 addition & 1 deletion tests/test_manage_script_uri.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
if SRC is None:
searched = "\n".join(str(p) for p in candidates)
pytest.skip(
"Unity MCP server source not found. Tried:\n" + searched,
"MCP for Unity server source not found. Tried:\n" + searched,
allow_module_level=True,
)
sys.path.insert(0, str(SRC))
Expand Down
2 changes: 1 addition & 1 deletion tests/test_resources_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
if SRC is None:
searched = "\n".join(str(p) for p in candidates)
pytest.skip(
"Unity MCP server source not found. Tried:\n" + searched,
"MCP for Unity server source not found. Tried:\n" + searched,
allow_module_level=True,
)
sys.path.insert(0, str(SRC))
Expand Down
2 changes: 1 addition & 1 deletion tests/test_telemetry_subaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


def _get_decorator_module():
# Import the telemetry_decorator module from the Unity MCP server src
# Import the telemetry_decorator module from the MCP for Unity server src
mod = importlib.import_module(
"MCPForUnity.UnityMcpServer~.src.telemetry_decorator")
return mod
Expand Down
2 changes: 1 addition & 1 deletion tests/test_transport_framing.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
if SRC is None:
searched = "\n".join(str(p) for p in candidates)
pytest.skip(
"Unity MCP server source not found. Tried:\n" + searched,
"MCP for Unity server source not found. Tried:\n" + searched,
allow_module_level=True,
)
sys.path.insert(0, str(SRC))
Expand Down
2 changes: 1 addition & 1 deletion tools/stress_mcp.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ async def reload_churn_task(project_path: str, stop_time: float, unity_file: str

async def main():
ap = argparse.ArgumentParser(
description="Stress test the Unity MCP bridge with concurrent clients and reload churn")
description="Stress test MCP for Unity with concurrent clients and reload churn")
ap.add_argument("--host", default="127.0.0.1")
ap.add_argument("--project", default=str(
Path(__file__).resolve().parents[1] / "TestProjects" / "UnityMCPTests"))
Expand Down