From 39228d56548deb5b407de2f198c96eae3e770c0d Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Fri, 21 Aug 2026 22:04:57 +0800 Subject: [PATCH] =?UTF-8?q?chore(mcp):=20MCP=20=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E7=A7=BB=E5=85=A5=20MCP/=20=E7=9B=AE=E5=BD=95=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20.mcp.json=20=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - git mv transpyc_mcp → MCP/transpyc_mcp;server.py ROOT 改为向上定位项目根(兼容新位置) - 新建项目根 .mcp.json:transpyc-tools 直接以 python MCP/transpyc_mcp/server.py 启动 - MCP/README.md 更新服务器路径与快速接入说明 - smoke test 通过:initialize/tools-list(14)/tp_read_ast 调用链路正常 --- .mcp.json | 9 +++++++++ MCP/README.md | 5 +++-- {transpyc_mcp => MCP/transpyc_mcp}/__init__.py | 0 {transpyc_mcp => MCP/transpyc_mcp}/server.py | 13 ++++++++++++- 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 .mcp.json rename {transpyc_mcp => MCP/transpyc_mcp}/__init__.py (100%) rename {transpyc_mcp => MCP/transpyc_mcp}/server.py (98%) diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 0000000..f7cf25b --- /dev/null +++ b/.mcp.json @@ -0,0 +1,9 @@ +{ + "mcpServers": { + "transpyc-tools": { + "command": "python", + "args": ["MCP/transpyc_mcp/server.py"], + "cwd": "D:\\Users\\TermiNexus\\Desktop\\TransPyC" + } + } +} \ No newline at end of file diff --git a/MCP/README.md b/MCP/README.md index e283bcd..e3eaf33 100644 --- a/MCP/README.md +++ b/MCP/README.md @@ -15,17 +15,18 @@ | `README.md` | 本文件:总览与快速接入 | | `protocol.md` | MCP 协议规范:工具定义、执行约定、输出格式、安全约束 | | `tools/` | 各工具的 JSON schema(可选生成,供客户端加载) | +| `transpyc_mcp/` | MCP 服务器实现(stdio,零依赖) | ## 快速接入 -MCP 服务器(`transpyc-tools`)以 stdio 方式运行于项目根目录: +项目根目录已创建 `.mcp.json`,客户端(IDE/工具)读取后自动注册 MCP 服务器 `transpyc-tools`(服务器代码位于 `MCP/transpyc_mcp/`,stdio 零依赖,也可手动 `python MCP/transpyc_mcp/server.py` 启动): ```json { "mcpServers": { "transpyc-tools": { "command": "python", - "args": ["-m", "transpyc_mcp.server"], + "args": ["MCP/transpyc_mcp/server.py"], "cwd": "D:\\Users\\TermiNexus\\Desktop\\TransPyC" } } diff --git a/transpyc_mcp/__init__.py b/MCP/transpyc_mcp/__init__.py similarity index 100% rename from transpyc_mcp/__init__.py rename to MCP/transpyc_mcp/__init__.py diff --git a/transpyc_mcp/server.py b/MCP/transpyc_mcp/server.py similarity index 98% rename from transpyc_mcp/server.py rename to MCP/transpyc_mcp/server.py index d29122c..70d81ee 100644 --- a/transpyc_mcp/server.py +++ b/MCP/transpyc_mcp/server.py @@ -24,7 +24,18 @@ from typing import Any, Callable # --------------------------------------------------------------------------- # 常量 # --------------------------------------------------------------------------- -_ROOT: str = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +def _find_root() -> str: + """向上定位项目根(含 Projectrans.py 的目录),兼容服务器位于 MCP/transpyc_mcp 下。""" + d: str = os.path.dirname(os.path.abspath(__file__)) + while True: + if os.path.isfile(os.path.join(d, "Projectrans.py")): + return d + parent: str = os.path.dirname(d) + if parent == d: + return d + d = parent + +_ROOT: str = _find_root() _TOOLS_JSON: str = os.path.join(_ROOT, 'MCP', 'tools', 'tools.json') _COMPILE_TIMEOUT: int = 300 _RUN_TIMEOUT: int = 30