diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/PKG-INFO b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/PKG-INFO new file mode 100644 index 0000000..1b601bb --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/PKG-INFO @@ -0,0 +1,12 @@ +Metadata-Version: 2.4 +Name: lzwcai-mcp-api-converter +Version: 0.2.5 +Summary: 基于FastMCP框架的动态API工具服务器,自动将企业业务API配置转换为MCP协议工具,支持多种传输方式、企业认证和参数验证,为AI助手提供标准化的业务接口访问能力。 +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +Requires-Dist: dynaconf>=3.2.11 +Requires-Dist: httpx>=0.28.1 +Requires-Dist: jinja2==3.1.6 +Requires-Dist: mcp[cli]>=1.8.0 +Requires-Dist: requests>=2.31.0 +Requires-Dist: pypinyin>=0.54.0 diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/SOURCES.txt b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/SOURCES.txt new file mode 100644 index 0000000..48815ae --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/SOURCES.txt @@ -0,0 +1,25 @@ +pyproject.toml +setup.cfg +lzwcai_mcp_api_converter/__init__.py +lzwcai_mcp_api_converter.egg-info/PKG-INFO +lzwcai_mcp_api_converter.egg-info/SOURCES.txt +lzwcai_mcp_api_converter.egg-info/dependency_links.txt +lzwcai_mcp_api_converter.egg-info/entry_points.txt +lzwcai_mcp_api_converter.egg-info/requires.txt +lzwcai_mcp_api_converter.egg-info/top_level.txt +lzwcai_mcp_api_converter/src/__init__.py +lzwcai_mcp_api_converter/src/api_config.json +lzwcai_mcp_api_converter/src/create_mcp.py +lzwcai_mcp_api_converter/src/business/__init__.py +lzwcai_mcp_api_converter/src/business/business_util.py +lzwcai_mcp_api_converter/src/business/get_business_api.py +lzwcai_mcp_api_converter/src/core/__init__.py +lzwcai_mcp_api_converter/src/core/api_auth_service.py +lzwcai_mcp_api_converter/src/core/api_base.py +lzwcai_mcp_api_converter/src/core/core_server.py +lzwcai_mcp_api_converter/src/core/get_auth.py +lzwcai_mcp_api_converter/src/core/plugin_base.py +lzwcai_mcp_api_converter/src/util/__init__.py +lzwcai_mcp_api_converter/src/util/api_helper.py +lzwcai_mcp_api_converter/src/util/logger_config.py +lzwcai_mcp_api_converter/src/util/nested_value.py \ No newline at end of file diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/dependency_links.txt b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/entry_points.txt b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/entry_points.txt new file mode 100644 index 0000000..7504d25 --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +lzwcai-mcp-api-converter = lzwcai_mcp_api_converter.src.create_mcp:run_main diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/requires.txt b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/requires.txt new file mode 100644 index 0000000..df9559c --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/requires.txt @@ -0,0 +1,6 @@ +dynaconf>=3.2.11 +httpx>=0.28.1 +jinja2==3.1.6 +mcp[cli]>=1.8.0 +requests>=2.31.0 +pypinyin>=0.54.0 diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/top_level.txt b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/top_level.txt new file mode 100644 index 0000000..f33e29f --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.egg-info/top_level.txt @@ -0,0 +1 @@ +lzwcai_mcp_api_converter diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.log b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.log new file mode 100644 index 0000000..46fc2d7 --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.log @@ -0,0 +1,96 @@ +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 17:57:40 +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 17:57:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 17:57:52 +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 17:57:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 17:58:11 +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 17:58:11 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 17:58:59 +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 17:58:59 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 17:59:12 +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 17:59:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 18:04:50 +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 18:04:50 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 18:06:12 +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 18:06:12 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 18:10:29 +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 18:10:29 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 18:10:40 +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 18:10:40 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 18:11:20 +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 18:11:20 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 18:13:17 +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 18:13:17 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:215] - ================================================================================ +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:216] - 日志系统初始化完成 - 2026-03-18 18:16:52 +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:217] - 日志级别: INFO +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:218] - 日志文件: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_mcp_api_converter\lzwcai_mcp_api_converter.log +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:219] - 控制台输出: False +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:220] - 文件输出: True +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:221] - 文件轮转: 最大10MB, 保留5个备份 +2026-03-18 18:16:52 - lzwcai_mcp_api_converter.src.util.logger_config - INFO - [logger_config.py:222] - ================================================================================ diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/__pycache__/__init__.cpython-312.pyc b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000..1d71216 Binary files /dev/null and b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/__pycache__/__init__.cpython-312.pyc differ diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/__pycache__/create_mcp.cpython-312.pyc b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/__pycache__/create_mcp.cpython-312.pyc index ad00b8b..b7f6256 100644 Binary files a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/__pycache__/create_mcp.cpython-312.pyc and b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/__pycache__/create_mcp.cpython-312.pyc differ diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/api_config_dcqwlucfo7h.json b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/api_config_dcqwlucfo7h.json new file mode 100644 index 0000000..347b642 --- /dev/null +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/api_config_dcqwlucfo7h.json @@ -0,0 +1,555 @@ +{ + "serverName": "lzwcai_mcp_api_converter", + "description": "金蝶销售报表", + "domainUrl": "http://39.108.116.74", + "packageName": "lzwcai-mcp-dyntoolapi", + "version": "1.0.0", + "apiConfig": [ + { + "id": "2033382693160300546", + "enterpriseId": "1932095424144715777", + "bizSysId": "2029468454441897985", + "domainUrl": "http://39.108.116.74", + "interfaceName": "金蝶销售报表", + "businessPrompts": "金蝶销售报表", + "returnType": "JSON", + "returnConversion": "{\"success_param\": \"code==200\", \"status_param\": \"code\", \"msg_param\": \"msg\", \"data\": \"data\"}", + "header": null, + "apiUrl": "/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.GetSysReportData.common.kdsvc", + "parametersFormat": "2", + "method": "POST", + "status": 1, + "version": "1.0.0", + "authenticationRequired": 1, + "responseExample": "{\"Result\": {\"IsSuccess\": true, \"RowCount\": 7954, \"Rows\": [[\"销售出库单\", \"101XSCKD20250100553\", \"金属粉\", \"1,194.69\", \"1,048.65\"], [\"应收单\", \"101YSD2025010486\", \"金属粉\", \"\", \"\"], [\"应收单\", \"101YSD2025011218\", \"金属粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010486-000001\", \"金属粉\", \"\", \"\"], [\"\", \"\", \"金属粉\", \"1194.69\", \"1048.65\"], [\"应收单\", \"101YSD2025011218\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010058-000001\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100073\", \"胶水转印纸\", \"1,858.41\", \"2,498.98\"], [\"应收单\", \"101YSD2025010058\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"1858.41\", \"2498.98\"], [\"应收单\", \"101YSD2025010161\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100170\", \"胶水转印纸\", \"663.72\", \"690.61\"], [\"应收单\", \"101YSD2025011218\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010161-000001\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"663.72\", \"690.61\"], [\"销售出库单\", \"101XSCKD20250100318\", \"胶水转印纸\", \"973.45\", \"1,381.22\"], [\"应收单\", \"101YSD2025010329\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011218\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010329-000001\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"973.45\", \"1381.22\"], [\"应收单\", \"101YSD2025010553-000001\", \"单色粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010553\", \"单色粉\", \"\", \"\"], [\"应收单\", \"101YSD2025011218\", \"单色粉\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100625\", \"单色粉\", \"3,743.36\", \"1,950.23\"], [\"\", \"\", \"单色粉\", \"3743.36\", \"1950.23\"], [\"\", \"\", \"\", \"8433.63\", \"7569.69\"], [\"应收单\", \"101YSD2025011292\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010306-000001\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010306\", \"转印粉\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100360\", \"转印粉\", \"5,238.94\", \"2,841.64\"], [\"\", \"\", \"转印粉\", \"5238.94\", \"2841.64\"], [\"\", \"\", \"\", \"5238.94\", \"2841.64\"], [\"应收单\", \"101YSD2025011290\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025011290\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025010298-000001\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025010298-000001\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025010298\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025010298\", \"树脂类\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100349\", \"树脂类\", \"117,244.91\", \"106,586.28\"], [\"销售出库单\", \"101XSCKD20250100349\", \"树脂类\", \"20,401.11\", \"18,546.46\"], [\"\", \"\", \"树脂类\", \"137646.02\", \"125132.74\"], [\"销售出库单\", \"101XSCKD20250100349\", \"树脂类\", \"117,982.3\", \"107,256.64\"], [\"应收单\", \"101YSD2025010298\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025010298-000001\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025011290\", \"树脂类\", \"\", \"\"], [\"\", \"\", \"树脂类\", \"117982.3\", \"107256.64\"], [\"应收单\", \"101YSD2025011291\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010332-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010332\", \"真空转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100347\", \"真空转印纸\", \"973.45\", \"1,381.22\"], [\"\", \"\", \"真空转印纸\", \"973.45\", \"1381.22\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010456-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010456\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100523\", \"胶水转印纸\", \"1,460.18\", \"2,071.81\"], [\"\", \"\", \"胶水转印纸\", \"1460.18\", \"2071.81\"], [\"销售出库单\", \"101XSCKD20250100074\", \"真空转印纸\", \"2,787.61\", \"4,077.93\"], [\"应收单\", \"101YSD2025010055-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010055\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"真空转印纸\", \"\", \"\"], [\"\", \"\", \"真空转印纸\", \"2787.61\", \"4077.93\"], [\"销售出库单\", \"101XSCKD20250100410\", \"胶水转印纸\", \"973.45\", \"1,381.22\"], [\"应收单\", \"101YSD2025010355\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010355-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"973.45\", \"1381.22\"], [\"应收单\", \"101YSD2025011291\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010504-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010504\", \"真空转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100591\", \"真空转印纸\", \"663.72\", \"690.61\"], [\"\", \"\", \"真空转印纸\", \"663.72\", \"690.61\"], [\"销售出库单\", \"101XSCKD20250100069\", \"真空转印纸\", \"663.72\", \"690.61\"], [\"应收单\", \"101YSD2025010082\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010082-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"真空转印纸\", \"\", \"\"], [\"\", \"\", \"真空转印纸\", \"663.72\", \"690.61\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010419-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010419\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100477\", \"胶水转印纸\", \"973.45\", \"1,076.3\"], [\"\", \"\", \"胶水转印纸\", \"973.45\", \"1076.3\"], [\"应收单\", \"101YSD2025010524\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100574\", \"胶水转印纸\", \"973.45\", \"1,381.22\"], [\"应收单\", \"101YSD2025010524-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"973.45\", \"1381.22\"], [\"应收单\", \"101YSD2025011291\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010517-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010055-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010055\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010517\", \"真空转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100514\", \"真空转印纸\", \"973.45\", \"1,378.58\"], [\"销售出库单\", \"101XSCKD20250100031\", \"真空转印纸\", \"5,110.62\", \"7,582.18\"], [\"\", \"\", \"真空转印纸\", \"6084.07\", \"8960.76\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010822-000001\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100695\", \"胶水转印纸\", \"1,858.41\", \"2,762.4\"], [\"应收单\", \"101YSD2025010822\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"1858.41\", \"2762.4\"], [\"销售出库单\", \"101XSCKD20250100349\", \"树脂类\", \"57,823.01\", \"52,566.37\"], [\"应收单\", \"101YSD2025010298\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025010298-000001\", \"树脂类\", \"\", \"\"], [\"应收单\", \"101YSD2025011290\", \"树脂类\", \"\", \"\"], [\"\", \"\", \"树脂类\", \"57823.01\", \"52566.37\"], [\"应收单\", \"101YSD2025010075-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010075\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100104\", \"胶水转印纸\", \"2,323.01\", \"2,632.18\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"2323.01\", \"2632.18\"], [\"销售出库单\", \"101XSCKD20250100342\", \"耐候转印纸\", \"442.48\", \"147.24\"], [\"应收单\", \"101YSD2025010332-000001\", \"耐候转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010332\", \"耐候转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"耐候转印纸\", \"\", \"\"], [\"\", \"\", \"耐候转印纸\", \"442.48\", \"147.24\"], [\"应收单\", \"101YSD2025011291\", \"耐候转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010332\", \"耐候转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010332-000001\", \"耐候转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100342\", \"耐候转印纸\", \"442.48\", \"147.24\"], [\"\", \"\", \"耐候转印纸\", \"442.48\", \"147.24\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100269\", \"胶水转印纸\", \"4,646.02\", \"6,906.05\"], [\"应收单\", \"101YSD2025010239\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010239-000001\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"4646.02\", \"6906.05\"], [\"销售出库单\", \"101XSCKD20250100630\", \"耐候转印纸\", \"1,548.67\", \"695.83\"], [\"应收单\", \"101YSD2025010568\", \"耐候转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010568-000001\", \"耐候转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"耐候转印纸\", \"\", \"\"], [\"\", \"\", \"耐候转印纸\", \"1548.67\", \"695.83\"], [\"应收单\", \"101YSD2025010607\", \"胶水转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100668\", \"胶水转印纸\", \"973.45\", \"1,381.22\"], [\"应收单\", \"101YSD2025010607-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025011291\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"973.45\", \"1381.22\"], [\"\", \"\", \"\", \"341238.95\", \"321339.59\"], [\"销售出库单\", \"101XSCKD20250100206\", \"真空转印纸\", \"2,123.89\", \"2,762.4\"], [\"应收单\", \"101YSD2025010176\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010833\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010176-000001\", \"真空转印纸\", \"\", \"\"], [\"\", \"\", \"真空转印纸\", \"2123.89\", \"2762.4\"], [\"销售出库单\", \"101XSCKD20250100153\", \"真空转印纸\", \"2,123.89\", \"2,454.46\"], [\"应收单\", \"101YSD2025010140\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010140-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010832\", \"真空转印纸\", \"\", \"\"], [\"\", \"\", \"真空转印纸\", \"2123.89\", \"2454.46\"], [\"应收单\", \"101YSD2025010832\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010140-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010140\", \"真空转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100153\", \"真空转印纸\", \"1,061.95\", \"1,052.25\"], [\"\", \"\", \"真空转印纸\", \"1061.95\", \"1052.25\"], [\"销售出库单\", \"101XSCKD20250100153\", \"真空转印纸\", \"2,123.89\", \"2,762.41\"], [\"应收单\", \"101YSD2025010140-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010140\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010832\", \"真空转印纸\", \"\", \"\"], [\"\", \"\", \"真空转印纸\", \"2123.89\", \"2762.41\"], [\"应收单\", \"101YSD2025010832\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138-000001\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138\", \"转印粉\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100151\", \"转印粉\", \"6,469.03\", \"3,585.61\"], [\"\", \"\", \"转印粉\", \"6469.03\", \"3585.61\"], [\"应收单\", \"101YSD2025010138\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138-000001\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010832\", \"转印粉\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100151\", \"转印粉\", \"15,601.77\", \"8,618.39\"], [\"\", \"\", \"转印粉\", \"15601.77\", \"8618.39\"], [\"应收单\", \"101YSD2025010832\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138-000001\", \"转印粉\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100151\", \"转印粉\", \"9,399.12\", \"5,503.47\"], [\"\", \"\", \"转印粉\", \"9399.12\", \"5503.47\"], [\"销售出库单\", \"101XSCKD20250100151\", \"转印粉\", \"3,101.33\", \"1,672.56\"], [\"应收单\", \"101YSD2025010138-000001\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010832\", \"转印粉\", \"\", \"\"], [\"\", \"\", \"转印粉\", \"3101.33\", \"1672.56\"], [\"应收单\", \"101YSD2025010176-000001\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010833\", \"真空转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010176\", \"真空转印纸\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100206\", \"真空转印纸\", \"1,061.95\", \"1,381.22\"], [\"\", \"\", \"真空转印纸\", \"1061.95\", \"1381.22\"], [\"应收单\", \"101YSD2025010832\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138-000001\", \"转印粉\", \"\", \"\"], [\"应收单\", \"101YSD2025010138\", \"转印粉\", \"\", \"\"], [\"销售出库单\", \"101XSCKD20250100151\", \"转印粉\", \"2,674.78\", \"1,557.46\"], [\"\", \"\", \"转印粉\", \"2674.78\", \"1557.46\"], [\"\", \"\", \"\", \"45741.6\", \"31350.23\"], [\"销售出库单\", \"101XSCKD20250100276\", \"胶水转印纸\", \"7,306.19\", \"7,398.51\"], [\"销售退货单\", \"101XSTHD20250127283\", \"胶水转印纸\", \"-7,433.63\", \"-7,527.56\"], [\"应收单\", \"101YSD2025010791\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010790\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010243\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010076\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010243-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010076-000001\", \"胶水转印纸\", \"\", \"\"], [\"\", \"\", \"胶水转印纸\", \"-127.44\", \"-129.05\"], [\"应收单\", \"101YSD2025010790\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010076-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010076-000001\", \"胶水转印纸\", \"\", \"\"], [\"应收单\", \"101YSD2025010243-000001\", \"胶水转印纸\", \"\", \"\"]]}}", + "crudType": "0", + "isView": 0, + "templateType": "markdown", + "viewTemplates": null, + "parameters": [ + { + "keyParam": null, + "required": 0, + "paramName": "formId", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "1", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "2", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.FieldKeys", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "3", + "tags": "0", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.SchemeId", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "4", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.StartRow", + "paramType": "INTEGER", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "5", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Limit", + "paramType": "INTEGER", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "6", + "tags": "1", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.IsVerifyBaseDataField", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "7", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "8", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FStartDate", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "9", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FEndDate", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "10", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FStartMaterial", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "11", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FStartMaterial.FNUMBER", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "12", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FEndMaterial", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "13", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FEndMaterial.FNUMBER", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "14", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FEndCustomer", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "15", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FEndCustomer.FNumber", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "16", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FStartCustomer", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "17", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FStartCustomer.FNumber", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "18", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FEndDepartment", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "19", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FEndDepartment.FNUMBER", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "20", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FStartDepartment", + "paramType": "OBJECT", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "21", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FStartDepartment.FNUMBER", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "22", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FBillStatus", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "23", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FIsIncludeSerMat", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "24", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FIsIncludeInnerExchangeBill", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "25", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FSettleOrgId", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "26", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FSaleOrgId", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "27", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FSuite", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "28", + "tags": "2", + "example": null + }, + { + "keyParam": null, + "required": 0, + "paramName": "data.Model.FIsGroupCust", + "paramType": "STRING", + "paramPrompts": "", + "defaultValue": null, + "assoKey": null, + "assoApiId": null, + "memory": 0, + "apiId": "2033382693160300546", + "requestType": "body", + "dataFormat": null, + "validity": null, + "sort": "29", + "tags": "2", + "example": null + } + ] + } + ] +} \ No newline at end of file diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/api_auth_service.cpython-312.pyc b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/api_auth_service.cpython-312.pyc index 6ee8b9d..9237dde 100644 Binary files a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/api_auth_service.cpython-312.pyc and b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/api_auth_service.cpython-312.pyc differ diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/core_server.cpython-312.pyc b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/core_server.cpython-312.pyc index 9362451..8af1df1 100644 Binary files a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/core_server.cpython-312.pyc and b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/core/__pycache__/core_server.cpython-312.pyc differ diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/create_mcp.py b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/create_mcp.py index 42c796b..3a98e01 100644 --- a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/create_mcp.py +++ b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/create_mcp.py @@ -141,29 +141,8 @@ def load_api_configs(): # 构建租户专属的配置文件路径 memory_config_path = os.path.join(current_dir, f"api_config_{business_uuid}.json") - # 检查内存中是否已有该租户的配置 - if config_key in business_configs: - logger.info(f"从内存中获取租户 {business_uuid} 的配置") - return business_configs[config_key] - - # 内存中没有,尝试从本地文件加载 - if os.path.exists(memory_config_path): - try: - logger.info(f"尝试从本地文件加载租户配置: {memory_config_path}") - with open(memory_config_path, "r", encoding="utf-8") as f: - config = json.load(f) - logger.info(f"成功从本地文件加载租户 {business_uuid} 的配置,包含 {len(config.get('apiConfig', []))} 个API配置") - - # 存储到内存中 - business_configs[config_key] = config - logger.info(f"配置已加载到内存变量: {config_key}") - - return config - except Exception as e: - logger.warning(f"从本地文件加载配置失败: {str(e)},将从业务平台重新获取") - # 本地文件不存在或加载失败,从业务平台获取 - logger.info(f"本地文件不存在,开始从业务平台获取租户 {business_uuid} 的配置...") + logger.info(f"准备从业务平台获取租户 {business_uuid} 的最新配置(强制刷新)...") try: # 从环境变量获取API ID列表 @@ -213,7 +192,22 @@ def load_api_configs(): except Exception as e: logger.error(f"获取业务API配置失败: {str(e)}") - error_msg = f"内存模式下无法获取租户 {business_uuid} 的配置: {str(e)}" + + # 网络获取失败,尝试降级使用本地缓存 + if os.path.exists(memory_config_path): + try: + logger.info(f"网络获取失败,尝试使用本地缓存文件: {memory_config_path}") + with open(memory_config_path, "r", encoding="utf-8") as f: + config = json.load(f) + logger.info(f"成功加载本地缓存配置,包含 {len(config.get('apiConfig', []))} 个API配置") + + # 存储到内存中 + business_configs[config_key] = config + return config + except Exception as cache_error: + logger.error(f"加载本地缓存也失败了: {str(cache_error)}") + + error_msg = f"无法获取租户 {business_uuid} 的配置(网络和缓存均不可用): {str(e)}" raise Exception(error_msg) # ==================== 模式二:文件模式(单租户) ==================== diff --git a/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/util/__pycache__/api_helper.cpython-312.pyc b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/util/__pycache__/api_helper.cpython-312.pyc new file mode 100644 index 0000000..abe44b0 Binary files /dev/null and b/lzwcai_mcp_api_converter/lzwcai_mcp_api_converter/src/util/__pycache__/api_helper.cpython-312.pyc differ diff --git a/lzwcai_mcp_api_converter/main.py b/lzwcai_mcp_api_converter/main.py index 52490a4..6625bff 100644 --- a/lzwcai_mcp_api_converter/main.py +++ b/lzwcai_mcp_api_converter/main.py @@ -2,8 +2,8 @@ import os os.environ["modelId"] = "1946471611735015425" os.environ["bizSysId"] = "2029468454441897985" -os.environ["bizSysApiIds"] = "[\"2029506334288154626\",\"2029506334388817922\"]" -os.environ["businessUuid"] = "w8kgb73ib3" +os.environ["bizSysApiIds"] = "[\"2033382693160300546\"]" +os.environ["businessUuid"] = "dcqwlucfo7h" os.environ["LZWCAI_CORP_MANAGER_URL"] = "http://192.168.2.236:8088" # 导入模块 from lzwcai_mcp_api_converter.src.create_mcp import run_main diff --git a/lzwcai_mcp_api_converter/pyproject.toml b/lzwcai_mcp_api_converter/pyproject.toml index b83024c..1d85ec5 100644 --- a/lzwcai_mcp_api_converter/pyproject.toml +++ b/lzwcai_mcp_api_converter/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lzwcai-mcp-api-converter" -version = "0.2.4" +version = "0.2.5" description = "基于FastMCP框架的动态API工具服务器,自动将企业业务API配置转换为MCP协议工具,支持多种传输方式、企业认证和参数验证,为AI助手提供标准化的业务接口访问能力。" readme = "README.md" requires-python = ">=3.10" diff --git a/lzwcai_mcpskills_template/lzwcai_mcpskills_template/tools_config.json b/lzwcai_mcpskills_template/lzwcai_mcpskills_template/tools_config.json index 2074e10..b642048 100644 --- a/lzwcai_mcpskills_template/lzwcai_mcpskills_template/tools_config.json +++ b/lzwcai_mcpskills_template/lzwcai_mcpskills_template/tools_config.json @@ -1,10 +1,10 @@ [ { "id": "example_tool_001", - "name": "example_hello_world", - "description": "示例工具 - Hello World", + "name": "example_hello_world2", + "description": "示例工具 - Hello World2", "toolPrompt": "这是一个示例工具,用于演示 MCP 工具的基本结构", - "sqlParams": "[{\"type\":\"string\",\"name\":\"name\",\"displayName\":\"名称\",\"maxLength\":100,\"defaultValue\":\"World\",\"required\":true}]" + "sqlParams": "[{\"type\":\"string\",\"name\":\"name2\",\"displayName\":\"名称\",\"maxLength\":100,\"defaultValue\":\"World\",\"required\":true}]" }, { "id": "example_tool_002", diff --git a/lzwcai_mcpskills_template/pyproject.toml b/lzwcai_mcpskills_template/pyproject.toml index 411eb74..8aeb48f 100644 --- a/lzwcai_mcpskills_template/pyproject.toml +++ b/lzwcai_mcpskills_template/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "lzwcai_mcpskills_template" -version = "0.1.1" +version = "0.1.3" description = "MCP Server 模板项目 - 用于快速创建新的 MCP 服务" readme = "README.md" requires-python = ">=3.10" diff --git a/lzwcai_mcpskills_visual2url/README.md b/lzwcai_mcpskills_visual2url/README.md new file mode 100644 index 0000000..d491df8 --- /dev/null +++ b/lzwcai_mcpskills_visual2url/README.md @@ -0,0 +1,37 @@ +# lzwcai_mcpskills_visual2url + +基于 FastMCP 的 MCP Server 项目。主要提供 HTML 转换为浏览器可访问 URL 的工具。 + +## 功能 + +提供以下两个工具(Tools): +- `html_file_to_url`: 传入本地 HTML 文件路径,转换成 `file://` 协议的 URL,方便浏览器直接打开预览。 +- `html_code_to_url`: 传入 HTML 代码片段,将其保存为临时文件并返回可访问的 `file://` URL。 + +## 安装 + +```bash +pip install lzwcai_mcpskills_visual2url +``` + +## 使用 + +```bash +# 直接运行服务端 +lzwcai_mcpskills_visual2url +``` + +## 项目结构 + +``` +lzwcai_mcpskills_visual2url/ +├── main.py # 入口文件 +├── pyproject.toml # 项目配置 +├── README.md # 说明文档 +└── lzwcai_mcpskills_visual2url/ # 核心代码 + └── main.py # FastMCP Server 主逻辑 +``` + +## License + +MIT diff --git a/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/.python-version b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/.python-version new file mode 100644 index 0000000..24ee5b1 --- /dev/null +++ b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/__pycache__/main.cpython-312.pyc b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000..2f161ad Binary files /dev/null and b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/__pycache__/main.cpython-312.pyc differ diff --git a/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/__pycache__/schema_converter.cpython-312.pyc b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/__pycache__/schema_converter.cpython-312.pyc new file mode 100644 index 0000000..dca3184 Binary files /dev/null and b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/__pycache__/schema_converter.cpython-312.pyc differ diff --git a/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/main.py b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/main.py new file mode 100644 index 0000000..92d825e --- /dev/null +++ b/lzwcai_mcpskills_visual2url/lzwcai_mcpskills_visual2url/main.py @@ -0,0 +1,72 @@ +from mcp.server.fastmcp import FastMCP +import os +import requests + +# 创建 FastMCP 实例 +mcp = FastMCP("Visual2URL") + +UPLOAD_URL = "http://192.168.2.236:5002/api/html/upload" +AUTHORIZATION = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJ0b2tlbl90eXBlIjoiTE9HSU4iLCJsb2dpbl91c2VyX2tleSI6IjM3OTAzNGIwLTg3OTQtNGU2OS05MzRiLTJkNTA3ZWIzODQyOCJ9.X5O0zez0_zm4Ejc9wTyj04Sf3GLT2L9ilIE6W0qbSgggdTvKcaboVm-A64U3SPxC8rpB1Gxc5p-XK7FXqAjgEg" + +@mcp.tool() +def html_file_to_url(file_path: str) -> str: + """ + 将本地 HTML 文件上传至服务器并转换成可在浏览器中打开的 URL。 + + Args: + file_path: 本地 HTML 文件的绝对路径 + """ + if not os.path.exists(file_path): + return f"Error: 文件不存在: {file_path}" + + headers = { + 'Authorization': AUTHORIZATION, + 'User-Agent': 'Apifox/1.0.0 (https://apifox.com)' + } + + try: + with open(file_path, 'rb') as f: + files = { + 'file': (os.path.basename(file_path), f, 'text/html') + } + response = requests.post(UPLOAD_URL, headers=headers, files=files) + response.raise_for_status() + data = response.json() + if data.get('code') == 200 and 'data' in data and 'fileUrl' in data['data']: + return data['data']['fileUrl'] + else: + return f"上传失败: {data.get('msg', '未知错误')}" + except Exception as e: + return f"请求发生异常: {str(e)}" + +@mcp.tool() +def html_code_to_url(html_code: str) -> str: + """ + 将 HTML 代码片段上传至服务器并转换成可在浏览器中打开的 URL。 + + Args: + html_code: HTML 代码字符串 + """ + headers = { + 'Authorization': AUTHORIZATION, + 'User-Agent': 'Apifox/1.0.0 (https://apifox.com)', + 'Content-Type': 'text/html' + } + + try: + response = requests.post(UPLOAD_URL, headers=headers, data=html_code.encode('utf-8')) + response.raise_for_status() + data = response.json() + if data.get('code') == 200 and 'data' in data and 'fileUrl' in data['data']: + return data['data']['fileUrl'] + else: + return f"上传失败: {data.get('msg', '未知错误')}" + except Exception as e: + return f"请求发生异常: {str(e)}" + +def main(): + # 运行 MCP Server + mcp.run() + +if __name__ == "__main__": + main() diff --git a/lzwcai_mcpskills_visual2url/main.py b/lzwcai_mcpskills_visual2url/main.py new file mode 100644 index 0000000..23982d7 --- /dev/null +++ b/lzwcai_mcpskills_visual2url/main.py @@ -0,0 +1,9 @@ +""" +Entry point for lzwcai_mcpskills_visual2url +MCP Server 项目入口 +""" + +if __name__ == "__main__": + # Import and run the actual MCP server + from lzwcai_mcpskills_visual2url.main import main + main() diff --git a/lzwcai_mcpskills_visual2url/pyproject.toml b/lzwcai_mcpskills_visual2url/pyproject.toml new file mode 100644 index 0000000..2902e11 --- /dev/null +++ b/lzwcai_mcpskills_visual2url/pyproject.toml @@ -0,0 +1,31 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "lzwcai_mcpskills_visual2url" +version = "0.1.1" +description = "MCP Server 模板项目 - 用于快速创建新的 MCP 服务" +readme = "README.md" +requires-python = ">=3.10" +license = {text = "MIT"} +authors = [ + {name = "lzwcai", email = "your-email@example.com"}, +] +keywords = ["mcp", "template", "server"] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", +] +dependencies = [ + "mcp>=1.0.0", + "requests>=2.31.0", +] + +[project.scripts] +lzwcai_mcpskills_visual2url = "lzwcai_mcpskills_visual2url.main:main" + +[tool.hatch.build.targets.wheel] +packages = ["lzwcai_mcpskills_visual2url"] diff --git a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp.log b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp.log index ed7b947..cb9382c 100644 --- a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp.log +++ b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp.log @@ -1,49 +1,49 @@ -2026-02-13 15:34:10 - root - INFO - [logger_config.py:117] - 日志系统初始化完成 - 日志目录: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\logs -2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server' -2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest -2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:334] - ================================================== -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:335] - Workflow MCP Server 启动 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:336] - ================================================== -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:341] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:344] - 使用模式: api -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2005892514011795457 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2005892514011795457 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:115] - [客户端初始化] base_url=http://192.168.2.236:8088 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_ce270212b2ee45ab9c81714a7c243c56 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:117] - [客户端初始化] execute_timeout=600.0s -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:148] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2005892514011795457 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:149] - [API请求] Headers: {'X-API-Key': 'wf_ce270212b2ee45ab9c81714a7c243c56'} -2026-02-13 15:34:11 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.started host='192.168.2.236' port=8088 local_address=None timeout=30.0 socket_options=None -2026-02-13 15:34:11 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'', [(b'Vary', b'Origin'), (b'Vary', b'Access-Control-Request-Method'), (b'Vary', b'Access-Control-Request-Headers'), (b'X-Content-Type-Options', b'nosniff'), (b'X-XSS-Protection', b'1; mode=block'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Date', b'Fri, 13 Feb 2026 07:34:05 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) -2026-02-13 15:34:11 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2005892514011795457 "HTTP/1.1 200 " -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:156] - [API响应] HTTP 200 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:157] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'date': 'Fri, 13 Feb 2026 07:34:05 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2005892514011795457 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:163] - [API响应] Body: { +2026-03-28 12:30:33 - root - INFO - [logger_config.py:117] - 日志系统初始化完成 - 日志目录: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\logs +2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:162] - Initializing server 'workflow_mcp_server' +2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:439] - Registering handler for ListToolsRequest +2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:519] - Registering handler for CallToolRequest +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:334] - ================================================== +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:335] - Workflow MCP Server 启动 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:336] - ================================================== +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:341] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:344] - 使用模式: api +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2037527155235225601 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2037527155235225601 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:115] - [客户端初始化] base_url=http://192.168.2.236:8088 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_bd39a583670c42ceab48b3353bf2ba43 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:117] - [客户端初始化] execute_timeout=600.0s +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:148] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2037527155235225601 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:149] - [API请求] Headers: {'X-API-Key': 'wf_bd39a583670c42ceab48b3353bf2ba43'} +2026-03-28 12:30:34 - httpcore.connection - DEBUG - [_trace.py:47] - connect_tcp.started host='192.168.2.236' port=8088 local_address=None timeout=30.0 socket_options=None +2026-03-28 12:30:34 - httpcore.connection - DEBUG - [_trace.py:47] - connect_tcp.complete return_value= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.complete +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.complete +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_headers.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'', [(b'Vary', b'Origin'), (b'Vary', b'Access-Control-Request-Method'), (b'Vary', b'Access-Control-Request-Headers'), (b'X-Content-Type-Options', b'nosniff'), (b'X-XSS-Protection', b'1; mode=block'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Date', b'Sat, 28 Mar 2026 04:30:30 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2026-03-28 12:30:34 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2037527155235225601 "HTTP/1.1 200 " +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.complete +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - response_closed.started +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - response_closed.complete +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:156] - [API响应] HTTP 200 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:157] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'date': 'Sat, 28 Mar 2026 04:30:30 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2037527155235225601 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:163] - [API响应] Body: { "msg": "查询成功", "code": 200, "data": [ { - "id": "2013554734817918978", - "createBy": "yy8z7", - "createTime": "2026-01-20 18:10:33", - "updateBy": "yy8z7", - "updateTime": "2026-02-13 15:30:40", - "serviceId": "2013554734784364545", - "uniqueName": "登记资产", - "name": "dengjizichan_0220941f", - "description": "阿三大苏打啊", + "id": "2037535460665982977", + "createBy": "duchangyuan", + "createTime": "2026-03-27 22:21:24", + "updateBy": "admin", + "updateTime": "2026-03-28 12:21:49", + "serviceId": "2037535460632428546", + "uniqueName": "银行流水状态检测", + "name": "yinxingliushuizhuangtaijiance_7c4d9a63", + "description": "用于检测流水导入状态,检查是否全部导入完成", "visualizable": 0, "toolPrompt": null, "toolType": "api", @@ -62,20 +62,20 @@ } ] } -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { "msg": "查询成功", "code": 200, "data": [ { - "id": "2013554734817918978", - "createBy": "yy8z7", - "createTime": "2026-01-20 18:10:33", - "updateBy": "yy8z7", - "updateTime": "2026-02-13 15:30:40", - "serviceId": "2013554734784364545", - "uniqueName": "登记资产", - "name": "dengjizichan_0220941f", - "description": "阿三大苏打啊", + "id": "2037535460665982977", + "createBy": "duchangyuan", + "createTime": "2026-03-27 22:21:24", + "updateBy": "admin", + "updateTime": "2026-03-28 12:21:49", + "serviceId": "2037535460632428546", + "uniqueName": "银行流水状态检测", + "name": "yinxingliushuizhuangtaijiance_7c4d9a63", + "description": "用于检测流水导入状态,检查是否全部导入完成", "visualizable": 0, "toolPrompt": null, "toolType": "api", @@ -94,17 +94,17 @@ } ] } -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ { - "id": "2013554734817918978", - "createBy": "yy8z7", - "createTime": "2026-01-20 18:10:33", - "updateBy": "yy8z7", - "updateTime": "2026-02-13 15:30:40", - "serviceId": "2013554734784364545", - "uniqueName": "登记资产", - "name": "dengjizichan_0220941f", - "description": "阿三大苏打啊", + "id": "2037535460665982977", + "createBy": "duchangyuan", + "createTime": "2026-03-27 22:21:24", + "updateBy": "admin", + "updateTime": "2026-03-28 12:21:49", + "serviceId": "2037535460632428546", + "uniqueName": "银行流水状态检测", + "name": "yinxingliushuizhuangtaijiance_7c4d9a63", + "description": "用于检测流水导入状态,检查是否全部导入完成", "visualizable": 0, "toolPrompt": null, "toolType": "api", @@ -122,16 +122,16 @@ "lastExecutionTime": null } ] -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2005892514011795457, 配置数量: 1 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:352] - 开始运行 MCP Server (stdio 模式) -2026-02-13 15:34:11 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor -2026-02-13 15:34:12 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') -2026-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: -2026-02-13 15:34:36 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest -2026-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type ListToolsRequest -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:178] - 处理工具配置: name=dengjizichan_0220941f, description=阿三大苏打啊... -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:185] - 从 sqlParams 转换的 inputSchema: {"type": "object", "properties": {}, "required": []} -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - INFO - [main.py:237] - ListTools 响应: 返回 1 个工具 -2026-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2037527155235225601, 配置数量: 1 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:352] - 开始运行 MCP Server (stdio 模式) +2026-03-28 12:30:34 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor +2026-03-28 12:30:34 - mcp.server.lowlevel.server - DEBUG - [server.py:675] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') +2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:675] - Received message: +2026-03-28 12:30:40 - mcp.server.lowlevel.server - INFO - [server.py:720] - Processing request of type ListToolsRequest +2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:723] - Dispatching request of type ListToolsRequest +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:178] - 处理工具配置: name=yinxingliushuizhuangtaijiance_7c4d9a63, description=用于检测流水导入状态,检查是否全部导入完成... +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:185] - 从 sqlParams 转换的 inputSchema: {"type": "object", "properties": {}, "required": []} +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - INFO - [main.py:237] - ListTools 响应: 返回 1 个工具 +2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:790] - Response sent diff --git a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_daily.log b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_daily.log index ed7b947..cb9382c 100644 --- a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_daily.log +++ b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_daily.log @@ -1,49 +1,49 @@ -2026-02-13 15:34:10 - root - INFO - [logger_config.py:117] - 日志系统初始化完成 - 日志目录: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\logs -2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server' -2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest -2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:334] - ================================================== -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:335] - Workflow MCP Server 启动 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:336] - ================================================== -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:341] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:344] - 使用模式: api -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2005892514011795457 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2005892514011795457 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:115] - [客户端初始化] base_url=http://192.168.2.236:8088 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_ce270212b2ee45ab9c81714a7c243c56 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:117] - [客户端初始化] execute_timeout=600.0s -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:148] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2005892514011795457 -2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:149] - [API请求] Headers: {'X-API-Key': 'wf_ce270212b2ee45ab9c81714a7c243c56'} -2026-02-13 15:34:11 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.started host='192.168.2.236' port=8088 local_address=None timeout=30.0 socket_options=None -2026-02-13 15:34:11 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'', [(b'Vary', b'Origin'), (b'Vary', b'Access-Control-Request-Method'), (b'Vary', b'Access-Control-Request-Headers'), (b'X-Content-Type-Options', b'nosniff'), (b'X-XSS-Protection', b'1; mode=block'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Date', b'Fri, 13 Feb 2026 07:34:05 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) -2026-02-13 15:34:11 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2005892514011795457 "HTTP/1.1 200 " -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started -2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:156] - [API响应] HTTP 200 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:157] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'date': 'Fri, 13 Feb 2026 07:34:05 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2005892514011795457 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:163] - [API响应] Body: { +2026-03-28 12:30:33 - root - INFO - [logger_config.py:117] - 日志系统初始化完成 - 日志目录: E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\logs +2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:162] - Initializing server 'workflow_mcp_server' +2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:439] - Registering handler for ListToolsRequest +2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:519] - Registering handler for CallToolRequest +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:334] - ================================================== +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:335] - Workflow MCP Server 启动 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:336] - ================================================== +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:341] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:344] - 使用模式: api +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2037527155235225601 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2037527155235225601 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:115] - [客户端初始化] base_url=http://192.168.2.236:8088 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_bd39a583670c42ceab48b3353bf2ba43 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:117] - [客户端初始化] execute_timeout=600.0s +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:148] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2037527155235225601 +2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:149] - [API请求] Headers: {'X-API-Key': 'wf_bd39a583670c42ceab48b3353bf2ba43'} +2026-03-28 12:30:34 - httpcore.connection - DEBUG - [_trace.py:47] - connect_tcp.started host='192.168.2.236' port=8088 local_address=None timeout=30.0 socket_options=None +2026-03-28 12:30:34 - httpcore.connection - DEBUG - [_trace.py:47] - connect_tcp.complete return_value= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.complete +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.complete +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_headers.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'', [(b'Vary', b'Origin'), (b'Vary', b'Access-Control-Request-Method'), (b'Vary', b'Access-Control-Request-Headers'), (b'X-Content-Type-Options', b'nosniff'), (b'X-XSS-Protection', b'1; mode=block'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'Content-Type', b'application/json'), (b'Transfer-Encoding', b'chunked'), (b'Date', b'Sat, 28 Mar 2026 04:30:30 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2026-03-28 12:30:34 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2037527155235225601 "HTTP/1.1 200 " +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.started request= +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.complete +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - response_closed.started +2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - response_closed.complete +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:156] - [API响应] HTTP 200 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:157] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json', 'transfer-encoding': 'chunked', 'date': 'Sat, 28 Mar 2026 04:30:30 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2037527155235225601 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:163] - [API响应] Body: { "msg": "查询成功", "code": 200, "data": [ { - "id": "2013554734817918978", - "createBy": "yy8z7", - "createTime": "2026-01-20 18:10:33", - "updateBy": "yy8z7", - "updateTime": "2026-02-13 15:30:40", - "serviceId": "2013554734784364545", - "uniqueName": "登记资产", - "name": "dengjizichan_0220941f", - "description": "阿三大苏打啊", + "id": "2037535460665982977", + "createBy": "duchangyuan", + "createTime": "2026-03-27 22:21:24", + "updateBy": "admin", + "updateTime": "2026-03-28 12:21:49", + "serviceId": "2037535460632428546", + "uniqueName": "银行流水状态检测", + "name": "yinxingliushuizhuangtaijiance_7c4d9a63", + "description": "用于检测流水导入状态,检查是否全部导入完成", "visualizable": 0, "toolPrompt": null, "toolType": "api", @@ -62,20 +62,20 @@ } ] } -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { "msg": "查询成功", "code": 200, "data": [ { - "id": "2013554734817918978", - "createBy": "yy8z7", - "createTime": "2026-01-20 18:10:33", - "updateBy": "yy8z7", - "updateTime": "2026-02-13 15:30:40", - "serviceId": "2013554734784364545", - "uniqueName": "登记资产", - "name": "dengjizichan_0220941f", - "description": "阿三大苏打啊", + "id": "2037535460665982977", + "createBy": "duchangyuan", + "createTime": "2026-03-27 22:21:24", + "updateBy": "admin", + "updateTime": "2026-03-28 12:21:49", + "serviceId": "2037535460632428546", + "uniqueName": "银行流水状态检测", + "name": "yinxingliushuizhuangtaijiance_7c4d9a63", + "description": "用于检测流水导入状态,检查是否全部导入完成", "visualizable": 0, "toolPrompt": null, "toolType": "api", @@ -94,17 +94,17 @@ } ] } -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ { - "id": "2013554734817918978", - "createBy": "yy8z7", - "createTime": "2026-01-20 18:10:33", - "updateBy": "yy8z7", - "updateTime": "2026-02-13 15:30:40", - "serviceId": "2013554734784364545", - "uniqueName": "登记资产", - "name": "dengjizichan_0220941f", - "description": "阿三大苏打啊", + "id": "2037535460665982977", + "createBy": "duchangyuan", + "createTime": "2026-03-27 22:21:24", + "updateBy": "admin", + "updateTime": "2026-03-28 12:21:49", + "serviceId": "2037535460632428546", + "uniqueName": "银行流水状态检测", + "name": "yinxingliushuizhuangtaijiance_7c4d9a63", + "description": "用于检测流水导入状态,检查是否全部导入完成", "visualizable": 0, "toolPrompt": null, "toolType": "api", @@ -122,16 +122,16 @@ "lastExecutionTime": null } ] -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2005892514011795457, 配置数量: 1 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 -2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:352] - 开始运行 MCP Server (stdio 模式) -2026-02-13 15:34:11 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor -2026-02-13 15:34:12 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') -2026-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: -2026-02-13 15:34:36 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest -2026-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type ListToolsRequest -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:178] - 处理工具配置: name=dengjizichan_0220941f, description=阿三大苏打啊... -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:185] - 从 sqlParams 转换的 inputSchema: {"type": "object", "properties": {}, "required": []} -2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - INFO - [main.py:237] - ListTools 响应: 返回 1 个工具 -2026-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2037527155235225601, 配置数量: 1 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 +2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:352] - 开始运行 MCP Server (stdio 模式) +2026-03-28 12:30:34 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor +2026-03-28 12:30:34 - mcp.server.lowlevel.server - DEBUG - [server.py:675] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') +2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:675] - Received message: +2026-03-28 12:30:40 - mcp.server.lowlevel.server - INFO - [server.py:720] - Processing request of type ListToolsRequest +2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:723] - Dispatching request of type ListToolsRequest +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:178] - 处理工具配置: name=yinxingliushuizhuangtaijiance_7c4d9a63, description=用于检测流水导入状态,检查是否全部导入完成... +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:185] - 从 sqlParams 转换的 inputSchema: {"type": "object", "properties": {}, "required": []} +2026-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - INFO - [main.py:237] - ListTools 响应: 返回 1 个工具 +2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:790] - Response sent diff --git a/lzwcai_workflow_to_mcp/main.py b/lzwcai_workflow_to_mcp/main.py index 4077d21..18c43bd 100644 --- a/lzwcai_workflow_to_mcp/main.py +++ b/lzwcai_workflow_to_mcp/main.py @@ -7,8 +7,8 @@ import os if __name__ == "__main__": # 设置环境变量 - os.environ["workflowId"] = "2005892514011795457" - os.environ["workflowExecuteKey"] = "wf_ce270212b2ee45ab9c81714a7c243c56" + os.environ["workflowId"] = "2037527155235225601" + os.environ["workflowExecuteKey"] = "wf_bd39a583670c42ceab48b3353bf2ba43" os.environ["backendBaseUrl"] = "http://192.168.2.236:8088" # Import and run the actual MCP server