Fix MCP initialize to follow specification - remove tool/resource discovery
- Remove expensive ToolsList and ResourcesList calls during initialization - Simplify initialize response to only include capabilities declaration - Tools and resources now discovered via separate list requests per MCP spec - Improves initialization speed and ensures protocol compliance
Showing
1 changed file
with
5 additions
and
16 deletions
| ... | @@ -89,22 +89,11 @@ | ... | @@ -89,22 +89,11 @@ |
| 89 | def userId = ec.user.userId | 89 | def userId = ec.user.userId |
| 90 | def userAccountId = userId ? userId : null | 90 | def userAccountId = userId ? userId : null |
| 91 | 91 | ||
| 92 | // Get user-specific tools and resources in SAME transaction context | 92 | // Build server capabilities - don't fetch actual tools/resources during init |
| 93 | def toolsResult = ec.service.sync().name("McpServices.mcp#ToolsList") | 93 | // Tools and resources will be discovered via separate list requests per MCP spec |
| 94 | .parameters([sessionId: visit.visitId]) | ||
| 95 | .requireNewTransaction(false) // Use current transaction | ||
| 96 | .disableAuthz() // Disable authz for internal call | ||
| 97 | .call() | ||
| 98 | def resourcesResult = ec.service.sync().name("McpServices.mcp#ResourcesList") | ||
| 99 | .parameters([sessionId: visit.visitId]) | ||
| 100 | .requireNewTransaction(false) // Use current transaction | ||
| 101 | .disableAuthz() // Disable authz for internal call | ||
| 102 | .call() | ||
| 103 | |||
| 104 | // Build server capabilities based on what user can access | ||
| 105 | def serverCapabilities = [ | 94 | def serverCapabilities = [ |
| 106 | tools: toolsResult?.result?.tools ? [listChanged: true] : [:], | 95 | tools: [listChanged: true], |
| 107 | resources: resourcesResult?.result?.resources ? [subscribe: true, listChanged: true] : [:], | 96 | resources: [subscribe: true, listChanged: true], |
| 108 | logging: [:] | 97 | logging: [:] |
| 109 | ] | 98 | ] |
| 110 | 99 | ||
| ... | @@ -122,7 +111,7 @@ | ... | @@ -122,7 +111,7 @@ |
| 122 | sessionId: visit.visitId | 111 | sessionId: visit.visitId |
| 123 | ] | 112 | ] |
| 124 | 113 | ||
| 125 | ec.logger.info("MCP Initialize for user ${userId} (session ${sessionId}): ${toolsResult?.result?.tools?.size() ?: 0} tools, ${resourcesResult?.result?.resources?.size() ?: 0} resources") | 114 | ec.logger.info("MCP Initialize for user ${userId} (session ${sessionId}): capabilities negotiated") |
| 126 | ]]></script> | 115 | ]]></script> |
| 127 | </actions> | 116 | </actions> |
| 128 | </service> | 117 | </service> | ... | ... |
-
Please register or sign in to post a comment