feat: 新增HTML转URL工具服务,优化API转换器配置
- 新增lzwcai_mcpskills_visual2url项目,提供本地HTML文件、HTML代码转可访问URL的MCP工具 - 重构lzwcai_mcp_api_converter配置加载逻辑,取消内存缓存复用,强制拉取最新配置并新增缓存降级容错机制 - 升级lzwcai_mcp_api_converter至0.2.5、项目模板至0.1.3 - 更新各示例项目的环境配置参数与模板工具配置
This commit is contained in:
@@ -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
|
||||||
@@ -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
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
[console_scripts]
|
||||||
|
lzwcai-mcp-api-converter = lzwcai_mcp_api_converter.src.create_mcp:run_main
|
||||||
@@ -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
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
lzwcai_mcp_api_converter
|
||||||
96
lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.log
Normal file
96
lzwcai_mcp_api_converter/lzwcai_mcp_api_converter.log
Normal file
@@ -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] - ================================================================================
|
||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@@ -141,29 +141,8 @@ def load_api_configs():
|
|||||||
# 构建租户专属的配置文件路径
|
# 构建租户专属的配置文件路径
|
||||||
memory_config_path = os.path.join(current_dir, f"api_config_{business_uuid}.json")
|
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:
|
try:
|
||||||
# 从环境变量获取API ID列表
|
# 从环境变量获取API ID列表
|
||||||
@@ -213,7 +192,22 @@ def load_api_configs():
|
|||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"获取业务API配置失败: {str(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)
|
raise Exception(error_msg)
|
||||||
|
|
||||||
# ==================== 模式二:文件模式(单租户) ====================
|
# ==================== 模式二:文件模式(单租户) ====================
|
||||||
|
|||||||
Binary file not shown.
@@ -2,8 +2,8 @@ import os
|
|||||||
|
|
||||||
os.environ["modelId"] = "1946471611735015425"
|
os.environ["modelId"] = "1946471611735015425"
|
||||||
os.environ["bizSysId"] = "2029468454441897985"
|
os.environ["bizSysId"] = "2029468454441897985"
|
||||||
os.environ["bizSysApiIds"] = "[\"2029506334288154626\",\"2029506334388817922\"]"
|
os.environ["bizSysApiIds"] = "[\"2033382693160300546\"]"
|
||||||
os.environ["businessUuid"] = "w8kgb73ib3"
|
os.environ["businessUuid"] = "dcqwlucfo7h"
|
||||||
os.environ["LZWCAI_CORP_MANAGER_URL"] = "http://192.168.2.236:8088"
|
os.environ["LZWCAI_CORP_MANAGER_URL"] = "http://192.168.2.236:8088"
|
||||||
# 导入模块
|
# 导入模块
|
||||||
from lzwcai_mcp_api_converter.src.create_mcp import run_main
|
from lzwcai_mcp_api_converter.src.create_mcp import run_main
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "lzwcai-mcp-api-converter"
|
name = "lzwcai-mcp-api-converter"
|
||||||
version = "0.2.4"
|
version = "0.2.5"
|
||||||
description = "基于FastMCP框架的动态API工具服务器,自动将企业业务API配置转换为MCP协议工具,支持多种传输方式、企业认证和参数验证,为AI助手提供标准化的业务接口访问能力。"
|
description = "基于FastMCP框架的动态API工具服务器,自动将企业业务API配置转换为MCP协议工具,支持多种传输方式、企业认证和参数验证,为AI助手提供标准化的业务接口访问能力。"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "example_tool_001",
|
"id": "example_tool_001",
|
||||||
"name": "example_hello_world",
|
"name": "example_hello_world2",
|
||||||
"description": "示例工具 - Hello World",
|
"description": "示例工具 - Hello World2",
|
||||||
"toolPrompt": "这是一个示例工具,用于演示 MCP 工具的基本结构",
|
"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",
|
"id": "example_tool_002",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "lzwcai_mcpskills_template"
|
name = "lzwcai_mcpskills_template"
|
||||||
version = "0.1.1"
|
version = "0.1.3"
|
||||||
description = "MCP Server 模板项目 - 用于快速创建新的 MCP 服务"
|
description = "MCP Server 模板项目 - 用于快速创建新的 MCP 服务"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|||||||
37
lzwcai_mcpskills_visual2url/README.md
Normal file
37
lzwcai_mcpskills_visual2url/README.md
Normal file
@@ -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
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
3.13
|
||||||
Binary file not shown.
Binary file not shown.
@@ -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()
|
||||||
9
lzwcai_mcpskills_visual2url/main.py
Normal file
9
lzwcai_mcpskills_visual2url/main.py
Normal file
@@ -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()
|
||||||
31
lzwcai_mcpskills_visual2url/pyproject.toml
Normal file
31
lzwcai_mcpskills_visual2url/pyproject.toml
Normal file
@@ -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"]
|
||||||
@@ -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-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-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server'
|
2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:162] - Initializing server 'workflow_mcp_server'
|
||||||
2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest
|
2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:439] - Registering handler for ListToolsRequest
|
||||||
2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest
|
2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:519] - Registering handler for CallToolRequest
|
||||||
2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:334] - ==================================================
|
2026-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2037527155235225601
|
||||||
2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2005892514011795457
|
2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2037527155235225601
|
||||||
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-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-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_ce270212b2ee45ab9c81714a7c243c56
|
2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_bd39a583670c42ceab48b3353bf2ba43
|
||||||
2026-02-13 15:34:10 - 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: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-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-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-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-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-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-02-13 15:34:11 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x0000018F42AB4380>
|
2026-03-28 12:30:34 - httpcore.connection - DEBUG - [_trace.py:47] - connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x0000016702CF9970>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.started request=<Request [b'GET']>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.complete
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.started request=<Request [b'GET']>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.complete
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_headers.started request=<Request [b'GET']>
|
||||||
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-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-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-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-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.started request=<Request [b'GET']>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.complete
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - response_closed.started
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - 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-03-28 12:30:34 - 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-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-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2005892514011795457
|
2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2037527155235225601
|
||||||
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:34 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:163] - [API响应] Body: {
|
||||||
"msg": "查询成功",
|
"msg": "查询成功",
|
||||||
"code": 200,
|
"code": 200,
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"id": "2013554734817918978",
|
"id": "2037535460665982977",
|
||||||
"createBy": "yy8z7",
|
"createBy": "duchangyuan",
|
||||||
"createTime": "2026-01-20 18:10:33",
|
"createTime": "2026-03-27 22:21:24",
|
||||||
"updateBy": "yy8z7",
|
"updateBy": "admin",
|
||||||
"updateTime": "2026-02-13 15:30:40",
|
"updateTime": "2026-03-28 12:21:49",
|
||||||
"serviceId": "2013554734784364545",
|
"serviceId": "2037535460632428546",
|
||||||
"uniqueName": "登记资产",
|
"uniqueName": "银行流水状态检测",
|
||||||
"name": "dengjizichan_0220941f",
|
"name": "yinxingliushuizhuangtaijiance_7c4d9a63",
|
||||||
"description": "阿三大苏打啊",
|
"description": "用于检测流水导入状态,检查是否全部导入完成",
|
||||||
"visualizable": 0,
|
"visualizable": 0,
|
||||||
"toolPrompt": null,
|
"toolPrompt": null,
|
||||||
"toolType": "api",
|
"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": "查询成功",
|
"msg": "查询成功",
|
||||||
"code": 200,
|
"code": 200,
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"id": "2013554734817918978",
|
"id": "2037535460665982977",
|
||||||
"createBy": "yy8z7",
|
"createBy": "duchangyuan",
|
||||||
"createTime": "2026-01-20 18:10:33",
|
"createTime": "2026-03-27 22:21:24",
|
||||||
"updateBy": "yy8z7",
|
"updateBy": "admin",
|
||||||
"updateTime": "2026-02-13 15:30:40",
|
"updateTime": "2026-03-28 12:21:49",
|
||||||
"serviceId": "2013554734784364545",
|
"serviceId": "2037535460632428546",
|
||||||
"uniqueName": "登记资产",
|
"uniqueName": "银行流水状态检测",
|
||||||
"name": "dengjizichan_0220941f",
|
"name": "yinxingliushuizhuangtaijiance_7c4d9a63",
|
||||||
"description": "阿三大苏打啊",
|
"description": "用于检测流水导入状态,检查是否全部导入完成",
|
||||||
"visualizable": 0,
|
"visualizable": 0,
|
||||||
"toolPrompt": null,
|
"toolPrompt": null,
|
||||||
"toolType": "api",
|
"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",
|
"id": "2037535460665982977",
|
||||||
"createBy": "yy8z7",
|
"createBy": "duchangyuan",
|
||||||
"createTime": "2026-01-20 18:10:33",
|
"createTime": "2026-03-27 22:21:24",
|
||||||
"updateBy": "yy8z7",
|
"updateBy": "admin",
|
||||||
"updateTime": "2026-02-13 15:30:40",
|
"updateTime": "2026-03-28 12:21:49",
|
||||||
"serviceId": "2013554734784364545",
|
"serviceId": "2037535460632428546",
|
||||||
"uniqueName": "登记资产",
|
"uniqueName": "银行流水状态检测",
|
||||||
"name": "dengjizichan_0220941f",
|
"name": "yinxingliushuizhuangtaijiance_7c4d9a63",
|
||||||
"description": "阿三大苏打啊",
|
"description": "用于检测流水导入状态,检查是否全部导入完成",
|
||||||
"visualizable": 0,
|
"visualizable": 0,
|
||||||
"toolPrompt": null,
|
"toolPrompt": null,
|
||||||
"toolType": "api",
|
"toolType": "api",
|
||||||
@@ -122,16 +122,16 @@
|
|||||||
"lastExecutionTime": null
|
"lastExecutionTime": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2005892514011795457, 配置数量: 1
|
2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2037527155235225601, 配置数量: 1
|
||||||
2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置
|
2026-03-28 12:30:34 - 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-03-28 12:30:34 - 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-03-28 12:30:34 - 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-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-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: <mcp.shared.session.RequestResponder object at 0x0000018F42BC42C0>
|
2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:675] - Received message: <mcp.shared.session.RequestResponder object at 0x0000016702D378C0>
|
||||||
2026-02-13 15:34:36 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest
|
2026-03-28 12:30:40 - mcp.server.lowlevel.server - INFO - [server.py:720] - 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-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:723] - Dispatching request of type ListToolsRequest
|
||||||
2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1
|
2026-03-28 12:30:40 - 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-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:178] - 处理工具配置: name=yinxingliushuizhuangtaijiance_7c4d9a63, description=用于检测流水导入状态,检查是否全部导入完成...
|
||||||
2026-02-13 15:34:36 - 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 - 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-03-28 12:30:40 - 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:40 - mcp.server.lowlevel.server - DEBUG - [server.py:790] - Response sent
|
||||||
|
|||||||
@@ -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-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-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server'
|
2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:162] - Initializing server 'workflow_mcp_server'
|
||||||
2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest
|
2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:439] - Registering handler for ListToolsRequest
|
||||||
2026-02-13 15:34:10 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest
|
2026-03-28 12:30:33 - mcp.server.lowlevel.server - DEBUG - [server.py:519] - Registering handler for CallToolRequest
|
||||||
2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:334] - ==================================================
|
2026-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - 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-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2037527155235225601
|
||||||
2026-02-13 15:34:10 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2005892514011795457
|
2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2037527155235225601
|
||||||
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-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-02-13 15:34:10 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_ce270212b2ee45ab9c81714a7c243c56
|
2026-03-28 12:30:33 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:116] - [客户端初始化] token=wf_bd39a583670c42ceab48b3353bf2ba43
|
||||||
2026-02-13 15:34:10 - 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: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-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-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-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-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-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-02-13 15:34:11 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x0000018F42AB4380>
|
2026-03-28 12:30:34 - httpcore.connection - DEBUG - [_trace.py:47] - connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x0000016702CF9970>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.started request=<Request [b'GET']>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_headers.complete
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.started request=<Request [b'GET']>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - send_request_body.complete
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_headers.started request=<Request [b'GET']>
|
||||||
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-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-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-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-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request=<Request [b'GET']>
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.started request=<Request [b'GET']>
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - receive_response_body.complete
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - response_closed.started
|
||||||
2026-02-13 15:34:11 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete
|
2026-03-28 12:30:34 - httpcore.http11 - DEBUG - [_trace.py:47] - 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-03-28 12:30:34 - 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-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-02-13 15:34:11 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2005892514011795457
|
2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:162] - [API响应] 获取工作流配置成功: workflow_id=2037527155235225601
|
||||||
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:34 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:163] - [API响应] Body: {
|
||||||
"msg": "查询成功",
|
"msg": "查询成功",
|
||||||
"code": 200,
|
"code": 200,
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"id": "2013554734817918978",
|
"id": "2037535460665982977",
|
||||||
"createBy": "yy8z7",
|
"createBy": "duchangyuan",
|
||||||
"createTime": "2026-01-20 18:10:33",
|
"createTime": "2026-03-27 22:21:24",
|
||||||
"updateBy": "yy8z7",
|
"updateBy": "admin",
|
||||||
"updateTime": "2026-02-13 15:30:40",
|
"updateTime": "2026-03-28 12:21:49",
|
||||||
"serviceId": "2013554734784364545",
|
"serviceId": "2037535460632428546",
|
||||||
"uniqueName": "登记资产",
|
"uniqueName": "银行流水状态检测",
|
||||||
"name": "dengjizichan_0220941f",
|
"name": "yinxingliushuizhuangtaijiance_7c4d9a63",
|
||||||
"description": "阿三大苏打啊",
|
"description": "用于检测流水导入状态,检查是否全部导入完成",
|
||||||
"visualizable": 0,
|
"visualizable": 0,
|
||||||
"toolPrompt": null,
|
"toolPrompt": null,
|
||||||
"toolType": "api",
|
"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": "查询成功",
|
"msg": "查询成功",
|
||||||
"code": 200,
|
"code": 200,
|
||||||
"data": [
|
"data": [
|
||||||
{
|
{
|
||||||
"id": "2013554734817918978",
|
"id": "2037535460665982977",
|
||||||
"createBy": "yy8z7",
|
"createBy": "duchangyuan",
|
||||||
"createTime": "2026-01-20 18:10:33",
|
"createTime": "2026-03-27 22:21:24",
|
||||||
"updateBy": "yy8z7",
|
"updateBy": "admin",
|
||||||
"updateTime": "2026-02-13 15:30:40",
|
"updateTime": "2026-03-28 12:21:49",
|
||||||
"serviceId": "2013554734784364545",
|
"serviceId": "2037535460632428546",
|
||||||
"uniqueName": "登记资产",
|
"uniqueName": "银行流水状态检测",
|
||||||
"name": "dengjizichan_0220941f",
|
"name": "yinxingliushuizhuangtaijiance_7c4d9a63",
|
||||||
"description": "阿三大苏打啊",
|
"description": "用于检测流水导入状态,检查是否全部导入完成",
|
||||||
"visualizable": 0,
|
"visualizable": 0,
|
||||||
"toolPrompt": null,
|
"toolPrompt": null,
|
||||||
"toolType": "api",
|
"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",
|
"id": "2037535460665982977",
|
||||||
"createBy": "yy8z7",
|
"createBy": "duchangyuan",
|
||||||
"createTime": "2026-01-20 18:10:33",
|
"createTime": "2026-03-27 22:21:24",
|
||||||
"updateBy": "yy8z7",
|
"updateBy": "admin",
|
||||||
"updateTime": "2026-02-13 15:30:40",
|
"updateTime": "2026-03-28 12:21:49",
|
||||||
"serviceId": "2013554734784364545",
|
"serviceId": "2037535460632428546",
|
||||||
"uniqueName": "登记资产",
|
"uniqueName": "银行流水状态检测",
|
||||||
"name": "dengjizichan_0220941f",
|
"name": "yinxingliushuizhuangtaijiance_7c4d9a63",
|
||||||
"description": "阿三大苏打啊",
|
"description": "用于检测流水导入状态,检查是否全部导入完成",
|
||||||
"visualizable": 0,
|
"visualizable": 0,
|
||||||
"toolPrompt": null,
|
"toolPrompt": null,
|
||||||
"toolType": "api",
|
"toolType": "api",
|
||||||
@@ -122,16 +122,16 @@
|
|||||||
"lastExecutionTime": null
|
"lastExecutionTime": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2005892514011795457, 配置数量: 1
|
2026-03-28 12:30:34 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2037527155235225601, 配置数量: 1
|
||||||
2026-02-13 15:34:11 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置
|
2026-03-28 12:30:34 - 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-03-28 12:30:34 - 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-03-28 12:30:34 - 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-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-02-13 15:34:36 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: <mcp.shared.session.RequestResponder object at 0x0000018F42BC42C0>
|
2026-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:675] - Received message: <mcp.shared.session.RequestResponder object at 0x0000016702D378C0>
|
||||||
2026-02-13 15:34:36 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest
|
2026-03-28 12:30:40 - mcp.server.lowlevel.server - INFO - [server.py:720] - 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-03-28 12:30:40 - mcp.server.lowlevel.server - DEBUG - [server.py:723] - Dispatching request of type ListToolsRequest
|
||||||
2026-02-13 15:34:36 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1
|
2026-03-28 12:30:40 - 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-03-28 12:30:40 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:178] - 处理工具配置: name=yinxingliushuizhuangtaijiance_7c4d9a63, description=用于检测流水导入状态,检查是否全部导入完成...
|
||||||
2026-02-13 15:34:36 - 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 - 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-03-28 12:30:40 - 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:40 - mcp.server.lowlevel.server - DEBUG - [server.py:790] - Response sent
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import os
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# 设置环境变量
|
# 设置环境变量
|
||||||
os.environ["workflowId"] = "2005892514011795457"
|
os.environ["workflowId"] = "2037527155235225601"
|
||||||
os.environ["workflowExecuteKey"] = "wf_ce270212b2ee45ab9c81714a7c243c56"
|
os.environ["workflowExecuteKey"] = "wf_bd39a583670c42ceab48b3353bf2ba43"
|
||||||
os.environ["backendBaseUrl"] = "http://192.168.2.236:8088"
|
os.environ["backendBaseUrl"] = "http://192.168.2.236:8088"
|
||||||
|
|
||||||
# Import and run the actual MCP server
|
# Import and run the actual MCP server
|
||||||
|
|||||||
Reference in New Issue
Block a user