docs(lzwcai-workflow-to-mcp): 添加 README 文档
新增项目的 README.md 文件,包含功能介绍、安装步骤、使用方法和环境变量说明。
This commit is contained in:
39
lzwcai_workflow_to_mcp/README.md
Normal file
39
lzwcai_workflow_to_mcp/README.md
Normal file
@@ -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
|
||||
@@ -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=<httpcore._backends.sync.SyncStream object at 0x00000155217CC380>
|
||||
2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x000001552178D700>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x00000155218D4A70>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<httpcore._backends.sync.SyncStream object at 0x0000025DD0ED1F70>
|
||||
2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x0000025DCF92FF50>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x0000025DD0D21340>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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
|
||||
@@ -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=<httpcore._backends.sync.SyncStream object at 0x00000155217CC380>
|
||||
2025-12-20 18:03:07 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x000001552178D700>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x00000155218D4A70>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<httpcore._backends.sync.SyncStream object at 0x0000025DD0ED1F70>
|
||||
2025-12-20 18:04:18 - httpcore.http11 - DEBUG - [_trace.py:45] - send_request_headers.started request=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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=<Request [b'GET']>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x0000025DCF92FF50>
|
||||
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: <mcp.shared.session.RequestResponder object at 0x0000025DD0D21340>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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=<Request [b'POST']>
|
||||
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
|
||||
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
@@ -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(
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user