From 844c77a660bd3dc57a856f2ac51a43b6ca7c0f80 Mon Sep 17 00:00:00 2001 From: yuanzhipeng <2501363769@qq.com> Date: Sat, 20 Dec 2025 18:05:40 +0800 Subject: [PATCH] =?UTF-8?q?docs(lzwcai-workflow-to-mcp):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20README=20=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增项目的 README.md 文件,包含功能介绍、安装步骤、使用方法和环境变量说明。 --- lzwcai_workflow_to_mcp/README.md | 39 ++ .../logs/lzwcai_workflow_to_mcp.log | 473 ++++++++++++++++++ .../logs/lzwcai_workflow_to_mcp_daily.log | 473 ++++++++++++++++++ .../logs/lzwcai_workflow_to_mcp_error.log | 23 + .../__pycache__/__init__.cpython-312.pyc | Bin 839 -> 956 bytes .../__pycache__/api_client.cpython-312.pyc | Bin 11586 -> 14012 bytes .../utils/api_client.py | 16 +- lzwcai_workflow_to_mcp/pyproject.toml | 2 +- 8 files changed, 1020 insertions(+), 6 deletions(-) create mode 100644 lzwcai_workflow_to_mcp/README.md create mode 100644 lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp.log create mode 100644 lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_daily.log create mode 100644 lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_error.log diff --git a/lzwcai_workflow_to_mcp/README.md b/lzwcai_workflow_to_mcp/README.md new file mode 100644 index 0000000..4259a9f --- /dev/null +++ b/lzwcai_workflow_to_mcp/README.md @@ -0,0 +1,39 @@ +# lzwcai-workflow-to-mcp + +MCP Server for executing workflows with dynamic tool generation. + +## 功能 + +- 从 API 动态加载工作流配置 +- 自动生成 MCP 工具 +- 支持工作流执行 + +## 安装 + +```bash +pip install lzwcai-workflow-to-mcp +``` + +## 使用 + +```bash +# 设置环境变量 +export workflowId="your-workflow-id" +export workflowExecuteKey="your-api-key" +export backendBaseUrl="http://your-api-server" + +# 运行 +lzwcai-workflow-to-mcp +``` + +## 环境变量 + +| 变量名 | 说明 | 默认值 | +|--------|------|--------| +| workflowId | 工作流ID | - | +| workflowExecuteKey | API密钥 | - | +| backendBaseUrl | 后端API地址 | http://lzwcai-demp-corp-manager:8086 | + +## License + +MIT 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 new file mode 100644 index 0000000..d4f169e --- /dev/null +++ b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp.log @@ -0,0 +1,473 @@ +2025-12-20 18:03:07 - 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 +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server' +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:272] - ================================================== +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:273] - Workflow MCP Server 启动 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:274] - ================================================== +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:279] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:282] - 使用模式: api +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:56] - [客户端初始化] base_url=http://192.168.2.236:8088 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:57] - [客户端初始化] token=wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:58] - [客户端初始化] execute_timeout=300.0s +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:89] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:90] - [API请求] Headers: {'X-API-Key': ' wf_buh230o9iaea4n6aefsddcexa7p27ydl'} +2025-12-20 18:03:07 - 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 +2025-12-20 18:03:07 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:03:07 - 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'Sat, 20 Dec 2025 10:03:06 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:03:07 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 "HTTP/1.1 200 " +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:97] - [API响应] HTTP 200 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:98] - [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, 20 Dec 2025 10:03:06 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:103] - [API响应] 获取工作流配置成功: workflow_id=2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:104] - [API响应] Body: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } +] +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2002300699510763521, 配置数量: 1 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:290] - 开始运行 MCP Server (stdio 模式) +2025-12-20 18:03:07 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') +2025-12-20 18:03:08 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:03:08 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest +2025-12-20 18:03:08 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type ListToolsRequest +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:179] - 处理工具配置: name=weimingminggongdefangshizuoliu001_91bc43ee, description=3123123123... +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:183] - 工具 weimingminggongdefangshizuoliu001_91bc43ee 的 inputSchema: {"type": "object", "properties": {"query": {"description": "问题", "type": "string", "format": "paragraph", "maxLength": 3000}}, "required": ["query"]} +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - INFO - [main.py:193] - ListTools 响应: 返回 1 个工具 +2025-12-20 18:03:08 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2025-12-20 18:03:12 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:03:12 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type CallToolRequest +2025-12-20 18:03:12 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type CallToolRequest +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - INFO - [main.py:203] - 收到 CallTool 请求: name=weimingminggongdefangshizuoliu001_91bc43ee, arguments={"query": "你好啊"} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:216] - 找到工具配置: { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null +} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - INFO - [main.py:220] - 使用工作流ID: 2002300699510763521 +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - INFO - [main.py:228] - 执行工作流请求数据: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:150] - [执行工作流] URL: http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:151] - [执行工作流] Token: wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:152] - [执行工作流] Headers: {"X-API-Key": "Bearer wf_buh230o9iaea4n6aefsddcexa7p27ydl", "Content-Type": "application/json", "Accept": "*/*"} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:153] - [执行工作流] 请求参数: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:154] - [执行工作流] 超时时间: 300.0s +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.complete return_value=(b'HTTP/1.1', 401, b'', [(b'Vary', b'Origin'), (b'Vary', b'Access-Control-Request-Method'), (b'Vary', b'Access-Control-Request-Headers'), (b'X-Trace-Id', b'40f82dcb-2055-46b4-a9ae-1bbee5591306'), (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;charset=UTF-8'), (b'Content-Length', b'61'), (b'Date', b'Sat, 20 Dec 2025 10:03:10 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:03:12 - httpx - INFO - [_client.py:1025] - HTTP Request: POST http://192.168.2.236:8088/open/workflow/execute "HTTP/1.1 401 " +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:164] - [API响应] HTTP 401 +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:165] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-trace-id': '40f82dcb-2055-46b4-a9ae-1bbee5591306', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json;charset=UTF-8', 'content-length': '61', 'date': 'Sat, 20 Dec 2025 10:03:10 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - ERROR - [api_client.py:182] - [API错误] 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - ERROR - [api_client.py:183] - [API错误] 响应内容: {"msg":"API Key无效","code":401,"errorCode":"UNAUTHORIZED"} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - ERROR - [main.py:236] - 工作流执行失败: 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +Traceback (most recent call last): + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 167, in execute_workflow + response.raise_for_status() + File "D:\anaconda3\Lib\site-packages\httpx\_models.py", line 829, in raise_for_status + raise HTTPStatusError(message, request=request, response=self) +httpx.HTTPStatusError: Client error '401 ' for url 'http://192.168.2.236:8088/open/workflow/execute' +For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401 + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\main.py", line 232, in handle_call_tool + result = execute_workflow(request_data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 268, in execute_workflow + return default_client.execute_workflow(request_data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 184, in execute_workflow + raise Exception(error_msg) +Exception: 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:03:12 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2025-12-20 18:04:18 - 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 +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server' +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:272] - ================================================== +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:273] - Workflow MCP Server 启动 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:274] - ================================================== +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:279] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:282] - 使用模式: api +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:56] - [客户端初始化] base_url=http://192.168.2.236:8088 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:57] - [客户端初始化] token=wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:58] - [客户端初始化] execute_timeout=300.0s +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:89] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:90] - [API请求] Headers: {'X-API-Key': 'wf_buh230o9iaea4n6aefsddcexa7p27ydl'} +2025-12-20 18:04:18 - 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 +2025-12-20 18:04:18 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:04:18 - 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'Sat, 20 Dec 2025 10:04:16 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:04:18 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 "HTTP/1.1 200 " +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:97] - [API响应] HTTP 200 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:98] - [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, 20 Dec 2025 10:04:16 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:103] - [API响应] 获取工作流配置成功: workflow_id=2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:104] - [API响应] Body: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } +] +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2002300699510763521, 配置数量: 1 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:290] - 开始运行 MCP Server (stdio 模式) +2025-12-20 18:04:18 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') +2025-12-20 18:04:19 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:04:19 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest +2025-12-20 18:04:19 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type ListToolsRequest +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:179] - 处理工具配置: name=weimingminggongdefangshizuoliu001_91bc43ee, description=3123123123... +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:183] - 工具 weimingminggongdefangshizuoliu001_91bc43ee 的 inputSchema: {"type": "object", "properties": {"query": {"description": "问题", "type": "string", "format": "paragraph", "maxLength": 3000}}, "required": ["query"]} +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - INFO - [main.py:193] - ListTools 响应: 返回 1 个工具 +2025-12-20 18:04:19 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2025-12-20 18:04:22 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:04:22 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type CallToolRequest +2025-12-20 18:04:22 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type CallToolRequest +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - INFO - [main.py:203] - 收到 CallTool 请求: name=weimingminggongdefangshizuoliu001_91bc43ee, arguments={"query": "你好啊"} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:216] - 找到工具配置: { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null +} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - INFO - [main.py:220] - 使用工作流ID: 2002300699510763521 +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - INFO - [main.py:228] - 执行工作流请求数据: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:150] - [执行工作流] URL: http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:151] - [执行工作流] Token: wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:152] - [执行工作流] Headers: {"X-API-Key": "wf_buh230o9iaea4n6aefsddcexa7p27ydl", "Content-Type": "application/json", "Accept": "*/*"} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:153] - [执行工作流] 请求参数: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:154] - [执行工作流] 超时时间: 300.0s +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:04:24 - 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-Trace-Id', b'62311551-e7ab-4d5d-adef-f59b1969a4cf'), (b'X-RateLimit-Limit', b'100'), (b'X-RateLimit-Remaining', b'99'), (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;charset=UTF-8'), (b'Transfer-Encoding', b'chunked'), (b'Date', b'Sat, 20 Dec 2025 10:04:22 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:04:24 - httpx - INFO - [_client.py:1025] - HTTP Request: POST http://192.168.2.236:8088/open/workflow/execute "HTTP/1.1 200 " +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:164] - [API响应] HTTP 200 +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:165] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-trace-id': '62311551-e7ab-4d5d-adef-f59b1969a4cf', 'x-ratelimit-limit': '100', 'x-ratelimit-remaining': '99', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json;charset=UTF-8', 'transfer-encoding': 'chunked', 'date': 'Sat, 20 Dec 2025 10:04:22 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:170] - [API响应] 执行工作流成功 +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:171] - [API响应] Body: { + "msg": "操作成功", + "code": 200, + "data": { + "success": true, + "execution_id": "e6dcd942-1592-45bb-8af7-d7d25df338ed", + "workflow_id": "3dc9d954-c270-4bbf-aa3d-5945c6acb2f5", + "status": "success", + "duration": 2.206175, + "nodes_executed": 3, + "errors_count": 0, + "final_output": { + "da9400b0-4754-4842-8a5e-dc20e2868cc6": { + "query": "你好啊" + }, + "a480a344-7fa9-439b-8db6-79b136a79736": { + "text": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + }, + "f54a21ba-e3a3-461e-9a6b-e952087f4a5b": { + "q": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + } + }, + "error": null, + "log_id": "logs/3dc9d954-c270-4bbf-aa3d-5945c6acb2f5/e6dcd942-1592-45bb-8af7-d7d25df338ed.json" + } +} +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.main - INFO - [main.py:233] - 工作流执行成功: 2002300699510763521 +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:234] - 工作流执行结果: { + "msg": "操作成功", + "code": 200, + "data": { + "success": true, + "execution_id": "e6dcd942-1592-45bb-8af7-d7d25df338ed", + "workflow_id": "3dc9d954-c270-4bbf-aa3d-5945c6acb2f5", + "status": "success", + "duration": 2.206175, + "nodes_executed": 3, + "errors_count": 0, + "final_output": { + "da9400b0-4754-4842-8a5e-dc20e2868cc6": { + "query": "你好啊" + }, + "a480a344-7fa9-439b-8db6-79b136a79736": { + "text": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + }, + "f54a21ba-e3a3-461e-9a6b-e952087f4a5b": { + "q": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + } + }, + "error": null, + "log_id": "logs/3dc9d954-c270-4bbf-aa3d-5945c6acb2f5/e6dcd942-1592-45bb-8af7-d7d25df338ed.json" + } +} +2025-12-20 18:04:24 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - 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 new file mode 100644 index 0000000..b9c9ce5 --- /dev/null +++ b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_daily.log @@ -0,0 +1,473 @@ +2025-12-20 18:03:07 - 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 +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server' +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:272] - ================================================== +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:273] - Workflow MCP Server 启动 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:274] - ================================================== +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:279] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:282] - 使用模式: api +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:56] - [客户端初始化] base_url=http://192.168.2.236:8088 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:57] - [客户端初始化] token=wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:58] - [客户端初始化] execute_timeout=300.0s +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:89] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:90] - [API请求] Headers: {'X-API-Key': 'Bearer wf_buh230o9iaea4n6aefsddcexa7p27ydl'} +2025-12-20 18:03:07 - 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 +2025-12-20 18:03:07 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:03:07 - 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'Sat, 20 Dec 2025 10:03:06 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:03:07 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 "HTTP/1.1 200 " +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:97] - [API响应] HTTP 200 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:98] - [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, 20 Dec 2025 10:03:06 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:103] - [API响应] 获取工作流配置成功: workflow_id=2002300699510763521 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:104] - [API响应] Body: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } +] +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2002300699510763521, 配置数量: 1 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 +2025-12-20 18:03:07 - lzwcai_workflow_to_mcp.main - INFO - [main.py:290] - 开始运行 MCP Server (stdio 模式) +2025-12-20 18:03:07 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor +2025-12-20 18:03:07 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') +2025-12-20 18:03:08 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:03:08 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest +2025-12-20 18:03:08 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type ListToolsRequest +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:179] - 处理工具配置: name=weimingminggongdefangshizuoliu001_91bc43ee, description=3123123123... +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:183] - 工具 weimingminggongdefangshizuoliu001_91bc43ee 的 inputSchema: {"type": "object", "properties": {"query": {"description": "问题", "type": "string", "format": "paragraph", "maxLength": 3000}}, "required": ["query"]} +2025-12-20 18:03:08 - lzwcai_workflow_to_mcp.main - INFO - [main.py:193] - ListTools 响应: 返回 1 个工具 +2025-12-20 18:03:08 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2025-12-20 18:03:12 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:03:12 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type CallToolRequest +2025-12-20 18:03:12 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type CallToolRequest +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - INFO - [main.py:203] - 收到 CallTool 请求: name=weimingminggongdefangshizuoliu001_91bc43ee, arguments={"query": "你好啊"} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:216] - 找到工具配置: { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null +} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - INFO - [main.py:220] - 使用工作流ID: 2002300699510763521 +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - INFO - [main.py:228] - 执行工作流请求数据: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:150] - [执行工作流] URL: http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:151] - [执行工作流] Token: wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:152] - [执行工作流] Headers: {"X-API-Key": "Bearer wf_buh230o9iaea4n6aefsddcexa7p27ydl", "Content-Type": "application/json", "Accept": "*/*"} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:153] - [执行工作流] 请求参数: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:154] - [执行工作流] 超时时间: 300.0s +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.complete return_value=(b'HTTP/1.1', 401, b'', [(b'Vary', b'Origin'), (b'Vary', b'Access-Control-Request-Method'), (b'Vary', b'Access-Control-Request-Headers'), (b'X-Trace-Id', b'40f82dcb-2055-46b4-a9ae-1bbee5591306'), (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;charset=UTF-8'), (b'Content-Length', b'61'), (b'Date', b'Sat, 20 Dec 2025 10:03:10 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:03:12 - httpx - INFO - [_client.py:1025] - HTTP Request: POST http://192.168.2.236:8088/open/workflow/execute "HTTP/1.1 401 " +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:03:12 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:164] - [API响应] HTTP 401 +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:165] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-trace-id': '40f82dcb-2055-46b4-a9ae-1bbee5591306', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json;charset=UTF-8', 'content-length': '61', 'date': 'Sat, 20 Dec 2025 10:03:10 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - ERROR - [api_client.py:182] - [API错误] 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - ERROR - [api_client.py:183] - [API错误] 响应内容: {"msg":"API Key无效","code":401,"errorCode":"UNAUTHORIZED"} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - ERROR - [main.py:236] - 工作流执行失败: 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +Traceback (most recent call last): + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 167, in execute_workflow + response.raise_for_status() + File "D:\anaconda3\Lib\site-packages\httpx\_models.py", line 829, in raise_for_status + raise HTTPStatusError(message, request=request, response=self) +httpx.HTTPStatusError: Client error '401 ' for url 'http://192.168.2.236:8088/open/workflow/execute' +For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401 + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\main.py", line 232, in handle_call_tool + result = execute_workflow(request_data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 268, in execute_workflow + return default_client.execute_workflow(request_data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 184, in execute_workflow + raise Exception(error_msg) +Exception: 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:03:12 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2025-12-20 18:04:18 - 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 +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:154] - Initializing server 'workflow_mcp_server' +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:380] - Registering handler for ListToolsRequest +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:441] - Registering handler for CallToolRequest +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:272] - ================================================== +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:273] - Workflow MCP Server 启动 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:274] - ================================================== +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:279] - 命令行参数: {'mode': 'api', 'json_path': None, 'workflow_id': None} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:282] - 使用模式: api +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:103] - ApiLoader 初始化,工作流ID: 2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:111] - 开始从 API 加载工作流配置,工作流ID: 2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:56] - [客户端初始化] base_url=http://192.168.2.236:8088 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:57] - [客户端初始化] token=wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:58] - [客户端初始化] execute_timeout=300.0s +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:89] - [API请求] GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:90] - [API请求] Headers: {'X-API-Key': 'wf_buh230o9iaea4n6aefsddcexa7p27ydl'} +2025-12-20 18:04:18 - 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 +2025-12-20 18:04:18 - httpcore.connection - DEBUG - [_trace.py:45] - connect_tcp.complete return_value= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:04:18 - 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'Sat, 20 Dec 2025 10:04:16 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:04:18 - httpx - INFO - [_client.py:1025] - HTTP Request: GET http://192.168.2.236:8088/system/workflowManage/getByWorkflowId/2002300699510763521 "HTTP/1.1 200 " +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:97] - [API响应] HTTP 200 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:98] - [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, 20 Dec 2025 10:04:16 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:103] - [API响应] 获取工作流配置成功: workflow_id=2002300699510763521 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:104] - [API响应] Body: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:116] - API 响应原始数据: { + "msg": "查询成功", + "code": 200, + "data": [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } + ] +} +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:124] - API 响应 data 字段: [ + { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null + } +] +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:135] - 从 API 加载工作流配置成功,工作流ID: 2002300699510763521, 配置数量: 1 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:165] - 已加载 1 个工具配置 +2025-12-20 18:04:18 - lzwcai_workflow_to_mcp.main - INFO - [main.py:290] - 开始运行 MCP Server (stdio 模式) +2025-12-20 18:04:18 - asyncio - DEBUG - [proactor_events.py:634] - Using proactor: IocpProactor +2025-12-20 18:04:18 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: root=InitializedNotification(method='notifications/initialized', params=None, jsonrpc='2.0') +2025-12-20 18:04:19 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:04:19 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type ListToolsRequest +2025-12-20 18:04:19 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type ListToolsRequest +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - INFO - [main.py:171] - 收到 ListTools 请求,当前配置数量: 1 +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:179] - 处理工具配置: name=weimingminggongdefangshizuoliu001_91bc43ee, description=3123123123... +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:183] - 工具 weimingminggongdefangshizuoliu001_91bc43ee 的 inputSchema: {"type": "object", "properties": {"query": {"description": "问题", "type": "string", "format": "paragraph", "maxLength": 3000}}, "required": ["query"]} +2025-12-20 18:04:19 - lzwcai_workflow_to_mcp.main - INFO - [main.py:193] - ListTools 响应: 返回 1 个工具 +2025-12-20 18:04:19 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent +2025-12-20 18:04:22 - mcp.server.lowlevel.server - DEBUG - [server.py:582] - Received message: +2025-12-20 18:04:22 - mcp.server.lowlevel.server - INFO - [server.py:619] - Processing request of type CallToolRequest +2025-12-20 18:04:22 - mcp.server.lowlevel.server - DEBUG - [server.py:621] - Dispatching request of type CallToolRequest +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - INFO - [main.py:203] - 收到 CallTool 请求: name=weimingminggongdefangshizuoliu001_91bc43ee, arguments={"query": "你好啊"} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:216] - 找到工具配置: { + "id": "2002300699812753409", + "createBy": "yy8z9", + "createTime": "2025-12-20 16:51:02", + "updateBy": "yy8z9", + "updateTime": "2025-12-20 17:59:26", + "serviceId": "2002300699804364801", + "uniqueName": "未命名工的方式作流001", + "name": "weimingminggongdefangshizuoliu001_91bc43ee", + "description": "3123123123", + "visualizable": 0, + "toolPrompt": null, + "toolType": "api", + "datasourceId": null, + "sqlTemplate": null, + "sqlParams": "[{\"type\":\"paragraph\",\"name\":\"query\",\"displayName\":\"问题\",\"maxLength\":3000,\"defaultValue\":\"\",\"required\":true}]", + "resultType": null, + "sourceType": null, + "trainingTaskId": null, + "tableMetadataIds": null, + "executionCount": 0, + "visualizationConfigs": null, + "inputJsonSchema": null, + "outputJsonSchema": null, + "lastExecutionTime": null +} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - INFO - [main.py:220] - 使用工作流ID: 2002300699510763521 +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.main - INFO - [main.py:228] - 执行工作流请求数据: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:150] - [执行工作流] URL: http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:151] - [执行工作流] Token: wf_buh230o9iaea4n6aefsddcexa7p27ydl +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:152] - [执行工作流] Headers: {"X-API-Key": "wf_buh230o9iaea4n6aefsddcexa7p27ydl", "Content-Type": "application/json", "Accept": "*/*"} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:153] - [执行工作流] 请求参数: { + "workflowId": "2002300699510763521", + "inputs": { + "query": "你好啊" + } +} +2025-12-20 18:04:22 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:154] - [执行工作流] 超时时间: 300.0s +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request= +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.complete +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.started request= +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_body.complete +2025-12-20 18:04:22 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_headers.started request= +2025-12-20 18:04:24 - 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-Trace-Id', b'62311551-e7ab-4d5d-adef-f59b1969a4cf'), (b'X-RateLimit-Limit', b'100'), (b'X-RateLimit-Remaining', b'99'), (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;charset=UTF-8'), (b'Transfer-Encoding', b'chunked'), (b'Date', b'Sat, 20 Dec 2025 10:04:22 GMT'), (b'Keep-Alive', b'timeout=60'), (b'Connection', b'keep-alive')]) +2025-12-20 18:04:24 - httpx - INFO - [_client.py:1025] - HTTP Request: POST http://192.168.2.236:8088/open/workflow/execute "HTTP/1.1 200 " +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.started request= +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - receive_response_body.complete +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.started +2025-12-20 18:04:24 - httpcore.http11 - DEBUG - [_trace.py:45] - response_closed.complete +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:164] - [API响应] HTTP 200 +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:165] - [API响应] Headers: {'vary': 'Origin, Access-Control-Request-Method, Access-Control-Request-Headers', 'x-trace-id': '62311551-e7ab-4d5d-adef-f59b1969a4cf', 'x-ratelimit-limit': '100', 'x-ratelimit-remaining': '99', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'application/json;charset=UTF-8', 'transfer-encoding': 'chunked', 'date': 'Sat, 20 Dec 2025 10:04:22 GMT', 'keep-alive': 'timeout=60', 'connection': 'keep-alive'} +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - INFO - [api_client.py:170] - [API响应] 执行工作流成功 +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.utils.api_client - DEBUG - [api_client.py:171] - [API响应] Body: { + "msg": "操作成功", + "code": 200, + "data": { + "success": true, + "execution_id": "e6dcd942-1592-45bb-8af7-d7d25df338ed", + "workflow_id": "3dc9d954-c270-4bbf-aa3d-5945c6acb2f5", + "status": "success", + "duration": 2.206175, + "nodes_executed": 3, + "errors_count": 0, + "final_output": { + "da9400b0-4754-4842-8a5e-dc20e2868cc6": { + "query": "你好啊" + }, + "a480a344-7fa9-439b-8db6-79b136a79736": { + "text": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + }, + "f54a21ba-e3a3-461e-9a6b-e952087f4a5b": { + "q": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + } + }, + "error": null, + "log_id": "logs/3dc9d954-c270-4bbf-aa3d-5945c6acb2f5/e6dcd942-1592-45bb-8af7-d7d25df338ed.json" + } +} +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.main - INFO - [main.py:233] - 工作流执行成功: 2002300699510763521 +2025-12-20 18:04:24 - lzwcai_workflow_to_mcp.main - DEBUG - [main.py:234] - 工作流执行结果: { + "msg": "操作成功", + "code": 200, + "data": { + "success": true, + "execution_id": "e6dcd942-1592-45bb-8af7-d7d25df338ed", + "workflow_id": "3dc9d954-c270-4bbf-aa3d-5945c6acb2f5", + "status": "success", + "duration": 2.206175, + "nodes_executed": 3, + "errors_count": 0, + "final_output": { + "da9400b0-4754-4842-8a5e-dc20e2868cc6": { + "query": "你好啊" + }, + "a480a344-7fa9-439b-8db6-79b136a79736": { + "text": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + }, + "f54a21ba-e3a3-461e-9a6b-e952087f4a5b": { + "q": "你好呀!✨ 很高兴见到你!今天过得怎么样呀?希望你度过了愉快的一天。我今天刚整理完知识库,准备了很多有趣的话题和实用的信息,希望能和你一起探讨、学习。不知道你今天想聊些什么呢?无论是有趣的故事、需要解决的问题,还是纯粹想聊聊日常,我都很乐意陪伴你聊天哦!😊" + } + }, + "error": null, + "log_id": "logs/3dc9d954-c270-4bbf-aa3d-5945c6acb2f5/e6dcd942-1592-45bb-8af7-d7d25df338ed.json" + } +} +2025-12-20 18:04:24 - mcp.server.lowlevel.server - DEBUG - [server.py:662] - Response sent diff --git a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_error.log b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_error.log new file mode 100644 index 0000000..a0a8755 --- /dev/null +++ b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/logs/lzwcai_workflow_to_mcp_error.log @@ -0,0 +1,23 @@ +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - ERROR - [api_client.py:182] - [API错误] 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.utils.api_client - ERROR - [api_client.py:183] - [API错误] 响应内容: {"msg":"API Key无效","code":401,"errorCode":"UNAUTHORIZED"} +2025-12-20 18:03:12 - lzwcai_workflow_to_mcp.main - ERROR - [main.py:236] - 工作流执行失败: 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute +Traceback (most recent call last): + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 167, in execute_workflow + response.raise_for_status() + File "D:\anaconda3\Lib\site-packages\httpx\_models.py", line 829, in raise_for_status + raise HTTPStatusError(message, request=request, response=self) +httpx.HTTPStatusError: Client error '401 ' for url 'http://192.168.2.236:8088/open/workflow/execute' +For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401 + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\main.py", line 232, in handle_call_tool + result = execute_workflow(request_data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 268, in execute_workflow + return default_client.execute_workflow(request_data) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "E:\yh-ai\project\lzwcai-szyg\lzwcai-mcp-server-package\lzwcai_workflow_to_mcp\lzwcai_workflow_to_mcp\utils\api_client.py", line 184, in execute_workflow + raise Exception(error_msg) +Exception: 执行工作流API请求失败 (HTTP 401): http://192.168.2.236:8088/open/workflow/execute diff --git a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/__pycache__/__init__.cpython-312.pyc b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/__pycache__/__init__.cpython-312.pyc index a94cf01e5481e0dd05f4cc3da6c7555456a56f7e..a0546a9dae5a9f77c91c93158aa8068c0c211886 100644 GIT binary patch delta 296 zcmX@kwuhbXG%qg~0}%KZxMi+np2#P`STa%FT`!k6iZ_=piZ7Qxil31og)xOKM<7=) zN-$R_N+?%2N;p>}N`#RiogsyN5o46-#0l+;?2{!JL+oz}rKgs}r=+GOmgbbiC+B3Q z=9S#ycX4%d4D|_#5ApPM^$!iXB@yl)S885ad~$wXT4s6?A4n8Q+vIAdX-+ag zK}H}hHUJVIm>C%vZ!+jTWl*}ypnadg{W}u}Bhz;VAn_4Id>3M1Okljs5dVoqfSak2 Jy+{hE2>?q(Nb3Lq delta 178 zcmdnPew>Z(G%qg~0}xD3bIW|qG?7n&F=L{-yAmTq3S$ae4sR}B6kjfX6o0Njlt8Xv zlprHRIztNkBE~48iF4W+SthG6hD_eh=)=e}nT5%Q*-uk=au8FR>@BX;yt4S@{JgZx z^dfGc=|wysf)_;aO@6{O%}f%=WCY@36(I3}nURt4CWGEn2Bo_U+V>gU?=xgwX2`nF U5Pz8={u2u?H&Y{fkvLEx02%iymjD0& diff --git a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/__pycache__/api_client.cpython-312.pyc b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/__pycache__/api_client.cpython-312.pyc index 87ce3b933daee884a8e4581b3e6e5abf20a765ce..5b7e5d424e9b4100332686cb022d8eb458334b67 100644 GIT binary patch delta 5568 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 J>}@|J_%Dx4+0y_3 diff --git a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/api_client.py b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/api_client.py index ef72edb..700a097 100644 --- a/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/api_client.py +++ b/lzwcai_workflow_to_mcp/lzwcai_workflow_to_mcp/utils/api_client.py @@ -52,7 +52,10 @@ class WorkflowAPIClient: self.execute_timeout = execute_timeout self._client: Optional[httpx.Client] = None - logger.debug(f"WorkflowAPIClient 初始化: base_url={self.base_url}, token={'*' * 10 if self.token else 'None'}, execute_timeout={self.execute_timeout}s") + # 打印完整的配置信息用于调试 + logger.info(f"[客户端初始化] base_url={self.base_url}") + logger.info(f"[客户端初始化] token={self.token}") + logger.info(f"[客户端初始化] execute_timeout={self.execute_timeout}s") @property def client(self) -> httpx.Client: @@ -64,7 +67,7 @@ class WorkflowAPIClient: def _get_headers(self) -> Dict[str, str]: """获取请求头""" return { - 'X-API-Key': f'Bearer {self.token}', + 'X-API-Key': f'{self.token}', } def get_workflow_by_id(self, workflow_id: str) -> Dict[str, Any]: @@ -143,9 +146,12 @@ class WorkflowAPIClient: headers['Content-Type'] = 'application/json' headers['Accept'] = '*/*' - logger.info(f"[API请求] POST {url} (超时: {self.execute_timeout}s)") - logger.debug(f"[API请求] Headers: {headers}") - logger.debug(f"[API请求] Body: {json.dumps(request_data, ensure_ascii=False, indent=2)}") + # 打印完整的请求信息 + logger.info(f"[执行工作流] URL: {url}") + logger.info(f"[执行工作流] Token: {self.token}") + logger.info(f"[执行工作流] Headers: {json.dumps(headers, ensure_ascii=False)}") + logger.info(f"[执行工作流] 请求参数: {json.dumps(request_data, ensure_ascii=False, indent=2)}") + logger.info(f"[执行工作流] 超时时间: {self.execute_timeout}s") # 使用更长的超时时间执行工作流 response = self.client.post( diff --git a/lzwcai_workflow_to_mcp/pyproject.toml b/lzwcai_workflow_to_mcp/pyproject.toml index 3dd7ec5..753605b 100644 --- a/lzwcai_workflow_to_mcp/pyproject.toml +++ b/lzwcai_workflow_to_mcp/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "lzwcai-workflow-to-mcp" -version = "0.1.8" +version = "0.1.1" description = "MCP server for executing business SQL queries with dynamic tool generation" readme = "README.md" requires-python = ">=3.13"