docs: replace "Unity MCP" with "MCP for Unity" in all text strings (#314)

main
Marcus Sanatan 2025-10-11 04:01:51 -04:00 committed by GitHub
parent 6b0ee30a86
commit 3a9ec4f1a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 38 additions and 38 deletions

View File

@ -97,7 +97,7 @@ namespace MCPForUnity.Editor.Dependencies.PlatformDetectors
- Run: curl -LsSf https://astral.sh/uv/install.sh | sh - Run: curl -LsSf https://astral.sh/uv/install.sh | sh
- Or download from: https://github.com/astral-sh/uv/releases - 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."; Note: Make sure ~/.local/bin is in your PATH for user-local installations.";
} }

View File

@ -98,7 +98,7 @@ namespace MCPForUnity.Editor.Dependencies.PlatformDetectors
- Curl: curl -LsSf https://astral.sh/uv/install.sh | sh - Curl: curl -LsSf https://astral.sh/uv/install.sh | sh
- Homebrew: brew install uv - 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."; Note: If using Homebrew, make sure /opt/homebrew/bin is in your PATH.";
} }

View File

@ -101,7 +101,7 @@ namespace MCPForUnity.Editor.Dependencies.PlatformDetectors
- Run: powershell -ExecutionPolicy ByPass -c ""irm https://astral.sh/uv/install.ps1 | iex"" - Run: powershell -ExecutionPolicy ByPass -c ""irm https://astral.sh/uv/install.ps1 | iex""
- Or download from: https://github.com/astral-sh/uv/releases - 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) private bool TryValidatePython(string pythonPath, out string version, out string fullPath)

View File

@ -1,7 +1,7 @@
namespace MCPForUnity.Editor.Services namespace MCPForUnity.Editor.Services
{ {
/// <summary> /// <summary>
/// Service for controlling the Unity MCP Bridge connection /// Service for controlling the MCP for Unity Bridge connection
/// </summary> /// </summary>
public interface IBridgeControlService public interface IBridgeControlService
{ {
@ -21,12 +21,12 @@ namespace MCPForUnity.Editor.Services
bool IsAutoConnectMode { get; } bool IsAutoConnectMode { get; }
/// <summary> /// <summary>
/// Starts the Unity MCP Bridge /// Starts the MCP for Unity Bridge
/// </summary> /// </summary>
void Start(); void Start();
/// <summary> /// <summary>
/// Stops the Unity MCP Bridge /// Stops the MCP for Unity Bridge
/// </summary> /// </summary>
void Stop(); void Stop();

View File

@ -28,12 +28,12 @@ namespace MCPForUnity.Editor.Services
bool CheckClientStatus(McpClient client, bool attemptAutoRewrite = true); bool CheckClientStatus(McpClient client, bool attemptAutoRewrite = true);
/// <summary> /// <summary>
/// Registers Unity MCP with Claude Code CLI /// Registers MCP for Unity with Claude Code CLI
/// </summary> /// </summary>
void RegisterClaudeCode(); void RegisterClaudeCode();
/// <summary> /// <summary>
/// Unregisters Unity MCP from Claude Code CLI /// Unregisters MCP for Unity from Claude Code CLI
/// </summary> /// </summary>
void UnregisterClaudeCode(); void UnregisterClaudeCode();

View File

@ -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 Inspired by Onyx's telemetry implementation with Unity-specific adaptations
Fire-and-forget telemetry sender with a single background worker. Fire-and-forget telemetry sender with a single background worker.
@ -328,7 +328,7 @@ class TelemetryCollector:
"customer_uuid": record.customer_uuid, "customer_uuid": record.customer_uuid,
"session_id": record.session_id, "session_id": record.session_id,
"data": enriched_data, "data": enriched_data,
"version": "3.0.2", # Unity MCP version "version": "3.0.2", # MCP for Unity version
"platform": _platform, "platform": _platform,
"source": _source, "source": _source,
} }

View File

@ -1,5 +1,5 @@
""" """
Telemetry decorator for Unity MCP tools Telemetry decorator for MCP for Unity tools
""" """
import functools import functools

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/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 Run this to verify telemetry is working correctly
""" """

View File

@ -208,7 +208,7 @@ async def read_resource(
if uri in ("unity://spec/script-edits", "spec/script-edits", "script-edits"): if uri in ("unity://spec/script-edits", "spec/script-edits", "script-edits"):
spec_json = ( spec_json = (
'{\n' '{\n'
' "name": "Unity MCP - Script Edits v1",\n' ' "name": "MCP for Unity - Script Edits v1",\n'
' "target_tool": "script_apply_edits",\n' ' "target_tool": "script_apply_edits",\n'
' "canonical_rules": {\n' ' "canonical_rules": {\n'
' "always_use": ["op","className","methodName","replacement","afterMethodName","beforeMethodName"],\n' ' "always_use": ["op","className","methodName","replacement","afterMethodName","beforeMethodName"],\n'

View File

@ -84,19 +84,19 @@ class UnityConnection:
if 'FRAMING=1' in text: if 'FRAMING=1' in text:
self.use_framing = True self.use_framing = True
logger.debug( logger.debug(
'Unity MCP handshake received: FRAMING=1 (strict)') 'MCP for Unity handshake received: FRAMING=1 (strict)')
else: else:
if require_framing: if require_framing:
# Best-effort plain-text advisory for legacy peers # Best-effort plain-text advisory for legacy peers
with contextlib.suppress(Exception): with contextlib.suppress(Exception):
self.sock.sendall( self.sock.sendall(
b'Unity MCP requires FRAMING=1\n') b'MCP for Unity requires FRAMING=1\n')
raise ConnectionError( raise ConnectionError(
f'Unity MCP requires FRAMING=1, got: {text!r}') f'MCP for Unity requires FRAMING=1, got: {text!r}')
else: else:
self.use_framing = False self.use_framing = False
logger.warning( 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: finally:
self.sock.settimeout(config.connection_timeout) self.sock.settimeout(config.connection_timeout)
return True return True

View File

@ -299,7 +299,7 @@ MCP for Unity 使用与 Unity 的 C# 脚本绑定的 Python MCP 服务器来实
## 📊 遥测和隐私 ## 📊 遥测和隐私
Unity MCP 包含**注重隐私的匿名遥测**来帮助我们改进产品。我们收集使用分析和性能数据,但**绝不**收集您的代码、项目名称或个人信息。 MCP for Unity 包含**注重隐私的匿名遥测**来帮助我们改进产品。我们收集使用分析和性能数据,但**绝不**收集您的代码、项目名称或个人信息。
- **🔒 匿名**:仅随机 UUID无个人数据 - **🔒 匿名**:仅随机 UUID无个人数据
- **🚫 轻松退出**:设置 `DISABLE_TELEMETRY=true` 环境变量 - **🚫 轻松退出**:设置 `DISABLE_TELEMETRY=true` 环境变量

View File

@ -302,7 +302,7 @@ Help make MCP for Unity better!
## 📊 Telemetry & Privacy ## 📊 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 - **🔒 Anonymous**: Random UUIDs only, no personal data
- **🚫 Easy opt-out**: Set `DISABLE_TELEMETRY=true` environment variable - **🚫 Easy opt-out**: Set `DISABLE_TELEMETRY=true` environment variable
@ -354,10 +354,10 @@ MIT License. See [LICENSE](LICENSE) file.
## Unity AI Tools by Coplay ## Unity AI Tools by Coplay
Coplay has built 2 AI tools for Unity Coplay has built 2 AI tools for Unity
- **Unity MCP** is available freely under the MIT license. - **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 Unity MCP. - **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 ## Disclaimer

View File

@ -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: Be sure to review the developer README first:

View File

@ -105,7 +105,7 @@ X:\UnityProject\Library\PackageCache\com.coplaydev.unity-mcp@272123cfd97e
- `tools/stress_mcp.py` - `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` 保活以维持并发。 - 发送轻量级帧 `ping` 保活以维持并发。
- 并行地,使用 `manage_script.apply_text_edits` 向目标 C# 文件追加唯一标记注释: - 并行地,使用 `manage_script.apply_text_edits` 向目标 C# 文件追加唯一标记注释:
- `options.refresh = "immediate"` 立即强制导入/编译(触发域重载),以及 - `options.refresh = "immediate"` 立即强制导入/编译(触发域重载),以及
@ -181,7 +181,7 @@ python3 tools/stress_mcp.py \
- 工件:`claude-nl-suite-artifacts` 包含 XML 和 MD。 - 工件:`claude-nl-suite-artifacts` 包含 XML 和 MD。
### MCP 连接调试 ### MCP 连接调试
- *在 Unity MCP 窗口(编辑器内)启用调试日志* 以查看连接状态、自动设置结果和 MCP 客户端路径。它显示: - *在 MCP for Unity 窗口(编辑器内)启用调试日志* 以查看连接状态、自动设置结果和 MCP 客户端路径。它显示:
- bridge 启动/端口、客户端连接、严格帧协商和解析的帧 - bridge 启动/端口、客户端连接、严格帧协商和解析的帧
- 自动配置路径检测Windows/macOS/Linux、uv/claude 解析和显示的错误 - 自动配置路径检测Windows/macOS/Linux、uv/claude 解析和显示的错误
- 在 CI 中,如果启动失败,作业会尾随 Unity 日志(序列号/许可证/密码/令牌已编辑)并打印套接字/状态 JSON 诊断。 - 在 CI 中,如果启动失败,作业会尾随 Unity 日志(序列号/许可证/密码/令牌已编辑)并打印套接字/状态 JSON 诊断。

View File

@ -105,7 +105,7 @@ An on-demand stress utility exercises the MCP bridge with multiple concurrent cl
- `tools/stress_mcp.py` - `tools/stress_mcp.py`
### What it does ### 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. - 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: - 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 - `options.refresh = "immediate"` to force an import/compile immediately (triggers domain reload), and
@ -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. - Artifacts: `claude-nl-suite-artifacts` includes XML and MD.
### MCP Connection Debugging ### 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 - bridge startup/port, client connections, strict framing negotiation, and parsed frames
- auto-config path detection (Windows/macOS/Linux), uv/claude resolution, and surfaced errors - 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. - In CI, the job tails Unity logs (redacted for serial/license/password/token) and prints socket/status JSON diagnostics if startup fails.

View File

@ -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 ## 🔒 Privacy First
@ -38,7 +38,7 @@ Set any of these environment variables to `true`:
# Disable all telemetry # Disable all telemetry
export DISABLE_TELEMETRY=true export DISABLE_TELEMETRY=true
# Unity MCP specific # MCP for Unity specific
export UNITY_MCP_DISABLE_TELEMETRY=true export UNITY_MCP_DISABLE_TELEMETRY=true
# MCP protocol wide # MCP protocol wide
@ -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!*

View File

@ -14,7 +14,7 @@ SRC = next((p for p in candidates if p.exists()), None)
if SRC is None: if SRC is None:
searched = "\n".join(str(p) for p in candidates) searched = "\n".join(str(p) for p in candidates)
pytest.skip( 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, allow_module_level=True,
) )

View File

@ -16,7 +16,7 @@ SRC = next((p for p in candidates if p.exists()), None)
if SRC is None: if SRC is None:
searched = "\n".join(str(p) for p in candidates) searched = "\n".join(str(p) for p in candidates)
pytest.skip( 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, allow_module_level=True,
) )
sys.path.insert(0, str(SRC)) sys.path.insert(0, str(SRC))

View File

@ -17,7 +17,7 @@ SRC = next((p for p in candidates if p.exists()), None)
if SRC is None: if SRC is None:
searched = "\n".join(str(p) for p in candidates) searched = "\n".join(str(p) for p in candidates)
pytest.skip( 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, allow_module_level=True,
) )
sys.path.insert(0, str(SRC)) sys.path.insert(0, str(SRC))

View File

@ -2,7 +2,7 @@ import importlib
def _get_decorator_module(): 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( mod = importlib.import_module(
"MCPForUnity.UnityMcpServer~.src.telemetry_decorator") "MCPForUnity.UnityMcpServer~.src.telemetry_decorator")
return mod return mod

View File

@ -20,7 +20,7 @@ SRC = next((p for p in candidates if p.exists()), None)
if SRC is None: if SRC is None:
searched = "\n".join(str(p) for p in candidates) searched = "\n".join(str(p) for p in candidates)
pytest.skip( 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, allow_module_level=True,
) )
sys.path.insert(0, str(SRC)) sys.path.insert(0, str(SRC))

View File

@ -312,7 +312,7 @@ async def reload_churn_task(project_path: str, stop_time: float, unity_file: str
async def main(): async def main():
ap = argparse.ArgumentParser( 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("--host", default="127.0.0.1")
ap.add_argument("--project", default=str( ap.add_argument("--project", default=str(
Path(__file__).resolve().parents[1] / "TestProjects" / "UnityMCPTests")) Path(__file__).resolve().parents[1] / "TestProjects" / "UnityMCPTests"))