diff --git a/oedp-mcp/mcp-make-oedp-plugin/README.md b/oedp-mcp/mcp-make-oedp-plugin/README.md index d2f1fc76a8189c33937c4ce8ecea215a5571d0ca..f0e5b56fa72853131cfbc95abf4bc0f5f077a5ac 100644 --- a/oedp-mcp/mcp-make-oedp-plugin/README.md +++ b/oedp-mcp/mcp-make-oedp-plugin/README.md @@ -5,11 +5,13 @@ ## 1. 环境准备 下载 oeDeploy 代码,将`oeDeploy/oedp-mcp/mcp-make-oedp-plugin`目录拷贝到自定义路径,例如`~/.oedp/mcp/` +并将用户开发指南`DevelopGuide.md`拷贝到`mcp-make-oedp-plugin`目录 ```bash git clone https://gitee.com/openeuler/oeDeploy.git mkdir -p ~/.oedp/mcp/ cp -r oeDeploy/oedp-mcp/mcp-make-oedp-plugin ~/.oedp/mcp/ +cp oeDeploy/doc/DevelopGuide.md ~/.oedp/mcp/mcp-make-oedp-plugin ``` 配置 python 虚环境,进入`mcp-make-oedp-plugin`目录,完成`uv`初始化并安装依赖。 @@ -32,8 +34,12 @@ uv pip install -e . "mcp-make-oedp-plugin": { "command": "uv", "args": [ - "--directory", ".oedp/mcp/mcp-make-oedp-plugin", - "run", "mcp-make-oedp-plugin.py" + "--directory", + ".oedp/mcp/mcp-make-oedp-plugin", + "run", + "mcp-make-oedp-plugin.py", + "--guide_path", + "~/.oedp/mcp/mcp-make-oedp-plugin/DevelopGuide.md" ], "disabled": false, } @@ -41,6 +47,8 @@ uv pip install -e . } ```` +> 请根据实际情况填写项目目录与用户开发指南的目录,推荐填写绝对路径。 + 配置完成后,可以在 MCP 列表上看看到`mcp-make-oedp-plugin`,且状态正常。 > 如果 MCP Server 状态异常,请根据提示信息检查 python 组件依赖是否满足。 diff --git a/oedp-mcp/mcp-make-oedp-plugin/mcp-make-oedp-plugin.py b/oedp-mcp/mcp-make-oedp-plugin/mcp-make-oedp-plugin.py index 6a925957c53db246b10b0e38c7c515a15d95cd1b..12c1a64013f7022f012c9dad17d5b32775898b2b 100644 --- a/oedp-mcp/mcp-make-oedp-plugin/mcp-make-oedp-plugin.py +++ b/oedp-mcp/mcp-make-oedp-plugin/mcp-make-oedp-plugin.py @@ -1,8 +1,23 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright (c) 2024 Huawei Technologies Co., Ltd. +# oeDeploy is licensed under the Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# http://license.coscl.org.cn/MulanPSL2 +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR +# PURPOSE. +# See the Mulan PSL v2 for more details. +# Create: 2025-03-30 +# ====================================================================================================================== +import argparse from mcp.server.fastmcp import FastMCP import os DEFAULT_DIR = "~/.oedp/" -DEVELOP_GUIDE_PATH = "~/.oedp/mcp/DevelopGuide.md" + +develop_guide_path = "" # Initialize FastMCP server mcp = FastMCP("编写一个oeDeploy插件/oedp插件", log_level="ERROR") @@ -17,6 +32,9 @@ async def make_plugin_auto(plugin: str, parent_dir: str) -> str: Returns: str: 下一步需要执行的指令 """ + # 检查开发文档路径 + if not os.path.exists(develop_guide_path): + return f"[Fail]开发文档不存在: {develop_guide_path}" # 检查父路径是否存在并转换为绝对路径 if parent_dir and os.path.exists(parent_dir): @@ -24,15 +42,23 @@ async def make_plugin_auto(plugin: str, parent_dir: str) -> str: else: parent_dir = os.path.abspath(os.path.expanduser(DEFAULT_DIR)) - develop_guide_path = os.path.abspath(os.path.expanduser(DEVELOP_GUIDE_PATH)) - return "请帮我执行: {" + f""" 1. (重要!)仔细阅读oeDeploy插件的开发文档{develop_guide_path},根据用户对eDeploy插件功能的详细描述,完成对oeDeploy插件的开发 2. 开发完成后,用指定方式打包成tar.gz到{parent_dir}目录下(如果有同名文件则强制覆盖) 3. 再调用`oedp info -p {parent_dir}/{plugin}`进行测试 -4. 测试通过后,不用执行oedp部署操作 +4. 测试通过后,不用执行oedp install操作 """ + "}" if __name__ == "__main__": # Initialize and run the server - mcp.run(transport='stdio') \ No newline at end of file + parser = argparse.ArgumentParser(description='oeDeploy plugin maker MCP Server') + parser.add_argument('--guide_path', required=True, help='develop guide doc path') + args = parser.parse_args() + + # Assign to global variables + develop_guide_path = os.path.abspath(os.path.expanduser(args.guide_path)) + if not os.path.exists(develop_guide_path): + print(f"[Fail]开发文档不存在: {develop_guide_path}") + exit(1) + + mcp.run(transport='stdio') diff --git a/oedp-mcp/mcp-oedp/mcp-oedp.py b/oedp-mcp/mcp-oedp/mcp-oedp.py index 2d85ac60e38e134a5db3a2d9a4021dc38eb46ce4..73d91b65b1802b09d4a72425e05be7d0bacb5768 100644 --- a/oedp-mcp/mcp-oedp/mcp-oedp.py +++ b/oedp-mcp/mcp-oedp/mcp-oedp.py @@ -9,7 +9,7 @@ # IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR # PURPOSE. # See the Mulan PSL v2 for more details. -# Create: 2024-12-23 +# Create: 2025-03-30 # ====================================================================================================================== import argparse