Enhance MCP debugging and pricing tool access
- Add comprehensive logging for MCP service calls (EXECUTESCREEN, SCREENASTOOL, ToolsCall) - Update instructions to include Product_EditPrices tool for price checking - Change default render mode to 'html' for better screen output - Temporarily disable visit.update() to reduce database overhead during debugging - Improve parameter passing for screen execution tools
Showing
2 changed files
with
9 additions
and
4 deletions
| ... | @@ -107,7 +107,7 @@ | ... | @@ -107,7 +107,7 @@ |
| 107 | capabilities: serverCapabilities, | 107 | capabilities: serverCapabilities, |
| 108 | serverInfo: serverInfo, | 108 | serverInfo: serverInfo, |
| 109 | sessionId: sessionId, | 109 | sessionId: sessionId, |
| 110 | instructions: "This server provides access to Moqui ERP through MCP. For common business queries: Use screen_PopCommerce_screen_PopCommerceAdmin_Catalog.Feature_FindFeature to search by features like color or size. Use screen_PopCommerce_screen_PopCommerceAdmin_Catalog.Product_FindProduct for product catalog, screen_PopCommerce_screen_PopCommerceAdmin_Order.FindOrder for order status, screen_PopCommerce_screen_PopCommerceRoot.Customer for customer management, and screen_PopCommerce_screen_PopCommerceAdmin.QuickSearch for general searches. All screens support parameterized queries for filtering results." | 110 | instructions: "This server provides access to Moqui ERP through MCP. For common business queries: Use screen_PopCommerce_screen_PopCommerceAdmin_Catalog.Feature_FindFeature to search by features like color or size. Use screen_PopCommerce_screen_PopCommerceAdmin_Catalog.Product_FindProduct for product catalog, screen_PopCommerce_screen_PopCommerceAdmin_Order.FindOrder for order status, screen_PopCommerce_screen_PopCommerceRoot.Customer for customer management, screen_PopCommerce_screen_PopCommerceAdmin_Catalog.Product_EditPrices to check prices and screen_PopCommerce_screen_PopCommerceAdmin.QuickSearch for general searches. All screens support parameterized queries for filtering results." |
| 111 | ] | 111 | ] |
| 112 | 112 | ||
| 113 | ec.logger.info("MCP Initialize for user ${userId} (session ${sessionId}): capabilities negotiated") | 113 | ec.logger.info("MCP Initialize for user ${userId} (session ${sessionId}): capabilities negotiated") |
| ... | @@ -199,14 +199,16 @@ | ... | @@ -199,14 +199,16 @@ |
| 199 | // Call screen execution service with decoded parameters | 199 | // Call screen execution service with decoded parameters |
| 200 | def screenCallParams = [ | 200 | def screenCallParams = [ |
| 201 | screenPath: screenPath, | 201 | screenPath: screenPath, |
| 202 | parameters: actualArguments?.arguments ?: [:], | 202 | parameters: actualArguments, //actualArguments?.arguments ?: [:], |
| 203 | renderMode: actualArguments?.renderMode ?: "text", | 203 | renderMode: actualArguments?.renderMode ?: "html", |
| 204 | sessionId: sessionId | 204 | sessionId: sessionId |
| 205 | ] | 205 | ] |
| 206 | if (subscreenName) { | 206 | if (subscreenName) { |
| 207 | screenCallParams.subscreenName = subscreenName | 207 | screenCallParams.subscreenName = subscreenName |
| 208 | } | 208 | } |
| 209 | 209 | ||
| 210 | |||
| 211 | ec.logger.info("EXECUTESCREEN ${screenCallParams}") | ||
| 210 | return ec.service.sync().name("McpServices.execute#ScreenAsMcpTool") | 212 | return ec.service.sync().name("McpServices.execute#ScreenAsMcpTool") |
| 211 | .parameters(screenCallParams) | 213 | .parameters(screenCallParams) |
| 212 | .call() | 214 | .call() |
| ... | @@ -224,6 +226,7 @@ | ... | @@ -224,6 +226,7 @@ |
| 224 | } | 226 | } |
| 225 | } else { | 227 | } else { |
| 226 | // For other protocol methods, call the target service with provided arguments | 228 | // For other protocol methods, call the target service with provided arguments |
| 229 | ec.logger.info("MCP ToolsCall: ${targetServiceName} ${arguments}") | ||
| 227 | def serviceResult = ec.service.sync().name(targetServiceName) | 230 | def serviceResult = ec.service.sync().name(targetServiceName) |
| 228 | .parameters(arguments ?: [:]) | 231 | .parameters(arguments ?: [:]) |
| 229 | .call() | 232 | .call() |
| ... | @@ -281,6 +284,8 @@ | ... | @@ -281,6 +284,8 @@ |
| 281 | if (subscreenName) { | 284 | if (subscreenName) { |
| 282 | serviceCallParams.subscreenName = subscreenName | 285 | serviceCallParams.subscreenName = subscreenName |
| 283 | } | 286 | } |
| 287 | |||
| 288 | ec.logger.info("SCREENASTOOL ${serviceCallParams}") | ||
| 284 | serviceResult = ec.service.sync().name("McpServices.execute#ScreenAsMcpTool") | 289 | serviceResult = ec.service.sync().name("McpServices.execute#ScreenAsMcpTool") |
| 285 | .parameters(serviceCallParams) | 290 | .parameters(serviceCallParams) |
| 286 | .call() | 291 | .call() | ... | ... |
| ... | @@ -1207,7 +1207,7 @@ try { | ... | @@ -1207,7 +1207,7 @@ try { |
| 1207 | 1207 | ||
| 1208 | if (visit) { | 1208 | if (visit) { |
| 1209 | visit.thruDate = ec.user.getNowTimestamp() | 1209 | visit.thruDate = ec.user.getNowTimestamp() |
| 1210 | visit.update() | 1210 | //visit.update() |
| 1211 | // Update cache with new thruDate | 1211 | // Update cache with new thruDate |
| 1212 | visitCache.put(sessionId, visit) | 1212 | visitCache.put(sessionId, visit) |
| 1213 | lastActivityUpdate.put(sessionId, now) | 1213 | lastActivityUpdate.put(sessionId, now) | ... | ... |
-
Please register or sign in to post a comment