From 186982e01de20efae143aedd5648956c25969b98 Mon Sep 17 00:00:00 2001 From: Azeem Muzammil Date: Fri, 3 Oct 2025 14:08:27 +0530 Subject: [PATCH 1/3] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index cd5a4ac..76e3e1e 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -41,7 +41,7 @@ dependencies = [ [[package]] org = "ballerina" name = "crypto" -version = "2.9.0" +version = "2.9.1" dependencies = [ {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "time"} From cba0cbe5b63fd62844459a8f51d954028b266ed5 Mon Sep 17 00:00:00 2001 From: Azeem Muzammil Date: Wed, 8 Oct 2025 11:48:57 +0530 Subject: [PATCH 2/3] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 76e3e1e..f085a63 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -120,7 +120,7 @@ modules = [ [[package]] org = "ballerina" name = "jwt" -version = "2.15.0" +version = "2.15.1" dependencies = [ {org = "ballerina", name = "cache"}, {org = "ballerina", name = "crypto"}, @@ -275,7 +275,7 @@ dependencies = [ [[package]] org = "ballerina" name = "os" -version = "1.10.0" +version = "1.10.1" dependencies = [ {org = "ballerina", name = "io"}, {org = "ballerina", name = "jballerina.java"} From 84c02eae4a15a34fd7487dc87df6292b5a8aec8d Mon Sep 17 00:00:00 2001 From: Azeem Muzammil Date: Wed, 8 Oct 2025 12:06:04 +0530 Subject: [PATCH 3/3] Fix service config's auth is being not processed --- ballerina/Ballerina.toml | 6 ++-- ballerina/CompilerPlugin.toml | 2 +- ballerina/Dependencies.toml | 8 ++--- ballerina/dispatcher_service.bal | 4 ++- ballerina/streamable_http.bal | 32 +++++++++++-------- .../clients/mcp-crypto-client/Ballerina.toml | 2 +- .../mcp-crypto-client/Dependencies.toml | 2 +- .../mcp-shopping-client/Ballerina.toml | 2 +- .../mcp-shopping-client/Dependencies.toml | 2 +- examples/clients/mcp-shopping-client/main.bal | 17 +++++++++- .../mcp-shopping-client/resource/private.key | 28 ++++++++++++++++ .../mcp-shopping-client/resources/private.key | 28 ---------------- .../clients/mcp-weather-client/Ballerina.toml | 2 +- .../mcp-weather-client/Dependencies.toml | 2 +- .../servers/mcp-crypto-server/Ballerina.toml | 2 +- .../mcp-crypto-server/Dependencies.toml | 2 +- .../mcp-shopping-server/Ballerina.toml | 2 +- .../mcp-shopping-server/Dependencies.toml | 2 +- examples/servers/mcp-shopping-server/main.bal | 5 ++- .../mcp-shopping-server/resource/public.crt | 21 ++++++++++++ .../mcp-shopping-server/resources/public.cert | 24 -------------- .../servers/mcp-weather-server/Ballerina.toml | 2 +- .../mcp-weather-server/Dependencies.toml | 2 +- 23 files changed, 108 insertions(+), 91 deletions(-) create mode 100644 examples/clients/mcp-shopping-client/resource/private.key delete mode 100644 examples/clients/mcp-shopping-client/resources/private.key create mode 100644 examples/servers/mcp-shopping-server/resource/public.crt delete mode 100644 examples/servers/mcp-shopping-server/resources/public.cert diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 49db0da..a4255ac 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -1,7 +1,7 @@ [package] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" authors = ["Ballerina"] keywords = ["mcp"] repository = "https://github.com/ballerina-platform/module-ballerina-mcp" @@ -15,5 +15,5 @@ graalvmCompatible = true [[platform.java21.dependency]] groupId = "io.ballerina.stdlib." artifactId = "mcp-native" -version = "1.0.1" -path = "../native/build/libs/mcp-native-1.0.1.jar" +version = "1.0.2" +path = "../native/build/libs/mcp-native-1.0.2-SNAPSHOT.jar" diff --git a/ballerina/CompilerPlugin.toml b/ballerina/CompilerPlugin.toml index 3e06f65..239b425 100644 --- a/ballerina/CompilerPlugin.toml +++ b/ballerina/CompilerPlugin.toml @@ -3,7 +3,7 @@ id = "mcp-compiler-plugin" class = "io.ballerina.stdlib.mcp.plugin.McpCompilerPlugin" [[dependency]] -path = "../compiler-plugin/build/libs/mcp-compiler-plugin-1.0.1.jar" +path = "../compiler-plugin/build/libs/mcp-compiler-plugin-1.0.2-SNAPSHOT.jar" [[dependency]] path = "../compiler-plugin/build/libs/ballerina-to-openapi-2.3.0.jar" diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index dae84fc..1725ecb 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -50,7 +50,7 @@ dependencies = [ [[package]] org = "ballerina" name = "data.jsondata" -version = "1.1.0" +version = "1.1.3" dependencies = [ {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "lang.object"} @@ -70,7 +70,7 @@ dependencies = [ [[package]] org = "ballerina" name = "http" -version = "2.14.1" +version = "2.14.6" dependencies = [ {org = "ballerina", name = "auth"}, {org = "ballerina", name = "cache"}, @@ -229,7 +229,7 @@ dependencies = [ [[package]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "jballerina.java"}, @@ -254,7 +254,7 @@ dependencies = [ [[package]] org = "ballerina" name = "oauth2" -version = "2.14.0" +version = "2.14.1" dependencies = [ {org = "ballerina", name = "cache"}, {org = "ballerina", name = "crypto"}, diff --git a/ballerina/dispatcher_service.bal b/ballerina/dispatcher_service.bal index f0d657d..0993bf6 100644 --- a/ballerina/dispatcher_service.bal +++ b/ballerina/dispatcher_service.bal @@ -29,6 +29,7 @@ isolated function getDispatcherService(http:HttpServiceConfig httpServiceConfig) private ServiceConfiguration? cachedServiceConfig = (); isolated resource function delete .(http:Headers headers) returns http:BadRequest|http:Ok|Error { + http:authenticateResource(self, "delete", []); ServiceConfiguration config = check self.getCachedServiceConfiguration(); SessionMode sessionMode = config.sessionMode; @@ -66,7 +67,8 @@ isolated function getDispatcherService(http:HttpServiceConfig httpServiceConfig) } isolated resource function post .(@http:Payload JsonRpcMessage request, http:Headers headers) - returns http:BadRequest|http:NotAcceptable|http:UnsupportedMediaType|http:Accepted|http:Ok|Error { + returns http:BadRequest|http:NotAcceptable|http:UnsupportedMediaType|http:Accepted|http:Ok|Error { + http:authenticateResource(self, "post", []); http:NotAcceptable|http:UnsupportedMediaType? headerValidationError = validateRequiredHeaders(headers); if headerValidationError !is () { return headerValidationError; diff --git a/ballerina/streamable_http.bal b/ballerina/streamable_http.bal index a8e09a1..ae0ea9f 100644 --- a/ballerina/streamable_http.bal +++ b/ballerina/streamable_http.bal @@ -81,27 +81,31 @@ isolated class StreamableHttpClientTransport { } } + if response.statusCode < 200 || response.statusCode >= 300 { + return error HttpClientError( + string `Server returned error status ${response.statusCode}: ${response.reasonPhrase}` + ); + } + // If response is 202 Accepted, there is no content to process. if response.statusCode == http:STATUS_ACCEPTED { return; } - boolean hasRequest = message is JsonRpcRequest; - - if hasRequest { - string contentType = response.getContentType(); - if contentType.includes(CONTENT_TYPE_SSE) { - return self.processServerSentEvents(response); - } else if contentType.includes(CONTENT_TYPE_JSON) { - return self.processJsonResponse(response); - } else { - return error UnsupportedContentTypeError( - string `Server returned unsupported content type '${contentType}'.` - ); - } - } else { + if message !is JsonRpcRequest { return; } + + string contentType = response.getContentType(); + if contentType.includes(CONTENT_TYPE_SSE) { + return self.processServerSentEvents(response); + } + if contentType.includes(CONTENT_TYPE_JSON) { + return self.processJsonResponse(response); + } + return error UnsupportedContentTypeError( + string `Server returned unsupported content type '${contentType}'.` + ); } on fail error e { return error HttpClientError(string `Failed to send message to server: ${e.message()}`); } diff --git a/examples/clients/mcp-crypto-client/Ballerina.toml b/examples/clients/mcp-crypto-client/Ballerina.toml index 1bc6f4f..8c3e013 100644 --- a/examples/clients/mcp-crypto-client/Ballerina.toml +++ b/examples/clients/mcp-crypto-client/Ballerina.toml @@ -10,5 +10,5 @@ observabilityIncluded = true [[dependency]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" repository = "local" diff --git a/examples/clients/mcp-crypto-client/Dependencies.toml b/examples/clients/mcp-crypto-client/Dependencies.toml index 2b64268..b6c34d1 100644 --- a/examples/clients/mcp-crypto-client/Dependencies.toml +++ b/examples/clients/mcp-crypto-client/Dependencies.toml @@ -219,7 +219,7 @@ modules = [ [[package]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "jballerina.java"}, diff --git a/examples/clients/mcp-shopping-client/Ballerina.toml b/examples/clients/mcp-shopping-client/Ballerina.toml index 7321ea2..71a90b9 100644 --- a/examples/clients/mcp-shopping-client/Ballerina.toml +++ b/examples/clients/mcp-shopping-client/Ballerina.toml @@ -10,5 +10,5 @@ observabilityIncluded = true [[dependency]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" repository = "local" diff --git a/examples/clients/mcp-shopping-client/Dependencies.toml b/examples/clients/mcp-shopping-client/Dependencies.toml index 2a6c34e..38d8cad 100644 --- a/examples/clients/mcp-shopping-client/Dependencies.toml +++ b/examples/clients/mcp-shopping-client/Dependencies.toml @@ -219,7 +219,7 @@ modules = [ [[package]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "jballerina.java"}, diff --git a/examples/clients/mcp-shopping-client/main.bal b/examples/clients/mcp-shopping-client/main.bal index 0b29048..6826009 100644 --- a/examples/clients/mcp-shopping-client/main.bal +++ b/examples/clients/mcp-shopping-client/main.bal @@ -66,7 +66,22 @@ function runClientSession(string customerName, record {|string name; decimal pri log:printInfo(string `\n=== ${customerName}'s Shopping Session ===`); // Create a new client (each client gets its own session) - mcp:StreamableHttpClient mcpClient = check new ("http://localhost:9092/mcp"); + mcp:StreamableHttpClientTransportConfig config = { + auth: { + username: "ballerina", + issuer: "wso2", + audience: ["ballerina", "ballerina.org", "ballerina.io"], + keyId: "5a0b754-895f-4279-8843-b745e11a57e9", + jwtId: "JlbmMiOiJBMTI4Q0JDLUhTMjU2In", + expTime: 3600, + signatureConfig: { + config: { + keyFile: "./resource/private.key" + } + } + } + }; + mcp:StreamableHttpClient mcpClient = check new ("http://localhost:9092/mcp", config); // Initialize client check mcpClient->initialize({ diff --git a/examples/clients/mcp-shopping-client/resource/private.key b/examples/clients/mcp-shopping-client/resource/private.key new file mode 100644 index 0000000..49a5b3c --- /dev/null +++ b/examples/clients/mcp-shopping-client/resource/private.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9WqVDjRRlhsgX +FkraAiMnXuG7K7bDPMh19VvFPPjMAHr39f49peGEo/OYtP/Jm6B+loqL56iha895 +3yodaDS40EuD0Tzruq/Y9l6A9eC8W/gZhNX5rFfdVIOMTqylOot3Zc/0ejFjbHjk +31VL/pJTkSma830kPxrDg5fC/O9DUCr35XSBwZMZYHLdsV49poWWPOP5+kP2NSSQ +6CHPFJLbT8uscGzEUbwtuzhekAxU7PcjV2uEBQJLWXUgDDrXB6jZri0Vvv9Y6TOK +WwZYBrfXuKzVt9PRr3uT8wv7mbT92F5bICevoiaqgyTZnErzj4YBXUaKfrp2tAOx +zvYY6HVzAgMBAAECggEAMOTHmL5EnoSjhQaeFFYJ8sAWxIhgnGBFGOReqnr4eWDE +X+O2nv+G0IOvQma2R742Pomrw71xNyFKBRuhWc+PEYvDfAma0/m0L29Kbr1OpwSO +dzRsNhiQ5ZdNkny8KrwHyDBTdrrYpuYa/2pFsaZN7WMl3Zty3FmpFQQVO2WpeHU4 +ctGaBIyRLGwBLSyUzlfjOCHUziEC91fZC1ChCTyFeD26qzGSKqot4t0w1EO9MhjM +pzloSeWSpP7pYEELGcsSnvw5eD0rDARXkxkUAbjXC3ICb64YTdP9wCpSrtIICUEn +ypMigZVdKLmrlXMs7hCZR/H4Ft9kLYRu/HM4Pq3G2QKBgQDryKpZYJTnvsKhDHKr +GSrBR7+6uvboT4MCADRhsTiqqkOZ/BHZp5Ip4+L5kEDuowusJmP9f3VmmAm+Uo6j +W9jvueFLPERQlk2W8MLe9JcV3ZD/+etmYLBZWXYi3G2I9VwRdG4a1N2RTP6xeaPd +bSiJpvgphMTuHXiLf+ZypnK1mQKBgQDNlt7f041yLby5ZA5jtSe3RCIXwF+kxgVP +LqQl/TwtWCRz70hDZoGVpWtrsNLuvZyZ9lyg0eR9VoJVZmF8ioML9o6GspVmzVPb +9rA+R6A96PvvXXNmlQTbvuhtFjyBLuJxSZ4DIbQ95SP9wSesecUol/n2dNrUOVVr +0nqjK+8S6wKBgQChT58kGMynJD55+k81ObmjlFfbA/DKjSN/Ke6sa5fuQyCO6AK6 +W0fHew6dWRDjcw8YTweXtiz27Mu1tzu5DayEjjJRy8CdNceNndhkuwfmwLhkOHLR +jxL3fhoxzYbu7ZZ4pqRxnPKdZwTVHPh8FCNo0Z/0n84vbmA7aFycUb4m+QKBgCNV +yvitY6I8OjOi/tYkTK8zBqkOZ2Hqpv71BUGCRNWGUL2cYs8yzxLpW40m1xoxfLj5 +nvIFIUBpnf0Pm7HMHLnxpo2AJC2HHOKxg5kwtlntsV9ysGLxOeSK62fUapHJfSH7 +hS0EnfYFbCoxCKCcTUas2EmDzBitwgDGLE3fPzgBAoGBAJH0KHoBV+8X4IVY/Lr5 +1LOFryw71dro+gvHAdcGWvmkXRkKl4oSWP4op/QPluGxDPwah3OdCNlawXfI5EwF +kTxMvFe7z66oWHuS5Ac+mb64ZffAX5hwqcIou+L6lgf7adCxrc/NsKd7HhNLuQXY +2mBHfTtII7g0zm9O+RTCT0JL +-----END PRIVATE KEY----- diff --git a/examples/clients/mcp-shopping-client/resources/private.key b/examples/clients/mcp-shopping-client/resources/private.key deleted file mode 100644 index eb1def1..0000000 --- a/examples/clients/mcp-shopping-client/resources/private.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDWS29cetxGQuRT -XgjF+4nCalSjTk2qVk/hgT5ZiyFNXHMtBWa9PqIZ9vQqjXfJPg2S3V89+qofD81U -qaRYtBqNDLHTcyW9U+6RaaymmM0zpscksw7Zy1RPhhAy+T1dTY82cg29Q71msoE2 -6/bweNuReXq28l7IVlK4KmuJ+uKiyM5+0GKyh12u1Cm7ixU6YSCGRXn2nVnD1+aW -8YLf4yxUIshFSLx0CaY+eVthIjlcHd99c+4TuyBzwTpfpj8Pz1Ij4O7ProCeAObB -63xdUZZVO8QdzuwdqNWfwHyus6LgFZqFN9sd9flk5H0lni7uND52tnN85Ag17i+x -ACuk/TgHAgMBAAECggEAQCwH1ahfFVVLvaFfvDYGu2cPIHY+8L73Hd8Ptk3hM6L3 -RKik6w/6CA95b9K8Z9HCy9OqBUvurO2U/gDtG7kXaFzAVcNaLleXjgkYsCz66jhL -03QhgtwOS+AoMrOLikjDFblS3vYNnlbfNfy0jq+KhQZdVrK+6nxbOhZN7NxqCPfP -6t2gZvjWS1R/6uriwKchUwE1ZDbL6e2WsDFo8NSKW2NALcsZfntgCCLMsHumlHwD -Kh4SRXd0b7kme/2/ydCBn2u42HdAG5KII7XKJDpdeLwsll8jgstpOQngCn3Vrv4y -rxuOadG0b89LCeBoWBrf6uShR9yc+50s32wB64MMuQKBgQDy7vfU92K2PU90VJy7 -T4oDqb+xXWfd53qYtoG3ARllsSM6KeM0IWo8OEGyc5D46QwQDip/4i5m4si0EPvW -aFWq/WQ9D+amm2qIL1RBPJEM6r+s9qR3aWJknuZNaKlo0nddF0Rfg5Yi334I+NYp -bNJZi7NY8aVNS/xdIvREmOOcGQKBgQDh0iE05fvhe03ktvQfAKHadTfby0o1oKrb -d+ls/wv/yNaWuOBSIscxQxczl1wpK5X6sBFrfIMXy7A5YiuYbzl7iAO0lXUUDYXu -T4SjaPVes4SBnPIr5F0jYKyRX+iH+1g8VG1IhE736gib4SHDWe8IYcDbLntyVtRX -t0LphoH5HwKBgE401CABTAvzDOMcYiCC6KFpQkbtFQUBAhyrlHK/rddpATg2R+h+ -YV7llXDHd4JKNBHvHYtx2xJQK+CcHxbVG88iJ+Toe45jNhaFdhBSWTfZUr9x31x5 -1q0h4m5FJVSTfM3BMce16t1rKX3l7bwERmuBZ8lYcajCr4mkORLkTVHxAoGBAJDq -cUbqJAciQu14fxb6J+Pyf0M8pUXe8mZfAFxjHAcskpEs2T+8c8noPRZtlsYQ43F5 -1eP9hn8ZxuA8YK+1CNV+hqo3k2en+f/h5cOcEoKQf4NR/ZMvPJn8ayHrw2SoZopo -v6zew3KTLK0j/6/Gof/mA4ZkwPGySRh1UapdGEGPAoGAStG3GyhGvfoMn1Hmpv4M -R6VECxV4JIKP5OEyKejqNGA+f32SlrZyoFxhtCgzcSCRhzPwqPpyseKNGh9CLb+F -7oFJOJpv12XMPXlhHRQr/YYuLt7VNhUJGQlhPRQ0MXw8ThCWNIoCnQIWp2NnwFUR -bbsKX6qVdYrYiO7rZBmo87I= ------END PRIVATE KEY----- diff --git a/examples/clients/mcp-weather-client/Ballerina.toml b/examples/clients/mcp-weather-client/Ballerina.toml index 268ef67..cc27695 100644 --- a/examples/clients/mcp-weather-client/Ballerina.toml +++ b/examples/clients/mcp-weather-client/Ballerina.toml @@ -10,5 +10,5 @@ observabilityIncluded = true [[dependency]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" repository = "local" diff --git a/examples/clients/mcp-weather-client/Dependencies.toml b/examples/clients/mcp-weather-client/Dependencies.toml index 0cc0189..d8fcde9 100644 --- a/examples/clients/mcp-weather-client/Dependencies.toml +++ b/examples/clients/mcp-weather-client/Dependencies.toml @@ -219,7 +219,7 @@ modules = [ [[package]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "jballerina.java"}, diff --git a/examples/servers/mcp-crypto-server/Ballerina.toml b/examples/servers/mcp-crypto-server/Ballerina.toml index ff4eec0..0a95703 100644 --- a/examples/servers/mcp-crypto-server/Ballerina.toml +++ b/examples/servers/mcp-crypto-server/Ballerina.toml @@ -10,5 +10,5 @@ observabilityIncluded = true [[dependency]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" repository = "local" diff --git a/examples/servers/mcp-crypto-server/Dependencies.toml b/examples/servers/mcp-crypto-server/Dependencies.toml index 7a95f88..3fe0e0a 100644 --- a/examples/servers/mcp-crypto-server/Dependencies.toml +++ b/examples/servers/mcp-crypto-server/Dependencies.toml @@ -222,7 +222,7 @@ modules = [ [[package]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "jballerina.java"}, diff --git a/examples/servers/mcp-shopping-server/Ballerina.toml b/examples/servers/mcp-shopping-server/Ballerina.toml index 070a019..24fe642 100644 --- a/examples/servers/mcp-shopping-server/Ballerina.toml +++ b/examples/servers/mcp-shopping-server/Ballerina.toml @@ -10,5 +10,5 @@ observabilityIncluded = true [[dependency]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" repository = "local" diff --git a/examples/servers/mcp-shopping-server/Dependencies.toml b/examples/servers/mcp-shopping-server/Dependencies.toml index e70e416..c52f83c 100644 --- a/examples/servers/mcp-shopping-server/Dependencies.toml +++ b/examples/servers/mcp-shopping-server/Dependencies.toml @@ -216,7 +216,7 @@ modules = [ [[package]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "jballerina.java"}, diff --git a/examples/servers/mcp-shopping-server/main.bal b/examples/servers/mcp-shopping-server/main.bal index abaf903..5093c65 100644 --- a/examples/servers/mcp-shopping-server/main.bal +++ b/examples/servers/mcp-shopping-server/main.bal @@ -31,10 +31,9 @@ listener mcp:Listener mcpListener = check new (9092); { jwtValidatorConfig: { issuer: "wso2", - audience: "vEwzbcasJVQm1jVYHUHCjhxZ4tYa", - clockSkew: 60, + audience: "ballerina", signatureConfig: { - certFile: "./resources/public.crt" + certFile: "./resource/public.crt" } } } diff --git a/examples/servers/mcp-shopping-server/resource/public.crt b/examples/servers/mcp-shopping-server/resource/public.crt new file mode 100644 index 0000000..b8e0843 --- /dev/null +++ b/examples/servers/mcp-shopping-server/resource/public.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDgTCCAmmgAwIBAgIUOJIU9KL50Axj2bTXv8fsttQHCwgwDQYJKoZIhvcNAQEL +BQAwUDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5 +MQwwCgYDVQQKDANPcmcxFDASBgNVBAMMC2V4YW1wbGUuY29tMB4XDTI1MTAxNTEy +MDgwMFoXDTI2MTAxNTEyMDgwMFowUDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0 +YXRlMQ0wCwYDVQQHDARDaXR5MQwwCgYDVQQKDANPcmcxFDASBgNVBAMMC2V4YW1w +bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvVqlQ40UZYbI +FxZK2gIjJ17huyu2wzzIdfVbxTz4zAB69/X+PaXhhKPzmLT/yZugfpaKi+eooWvP +ed8qHWg0uNBLg9E867qv2PZegPXgvFv4GYTV+axX3VSDjE6spTqLd2XP9HoxY2x4 +5N9VS/6SU5EpmvN9JD8aw4OXwvzvQ1Aq9+V0gcGTGWBy3bFePaaFljzj+fpD9jUk +kOghzxSS20/LrHBsxFG8Lbs4XpAMVOz3I1drhAUCS1l1IAw61weo2a4tFb7/WOkz +ilsGWAa317is1bfT0a97k/ML+5m0/dheWyAnr6ImqoMk2ZxK84+GAV1Gin66drQD +sc72GOh1cwIDAQABo1MwUTAdBgNVHQ4EFgQUxhd4X7hrLYh0Hz5qfZHN5kWUKPYw +HwYDVR0jBBgwFoAUxhd4X7hrLYh0Hz5qfZHN5kWUKPYwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAQEAR1LdF7qkAXsadJ6Lu0C7tPK1U+X6ZONLboyJ +RTFAxHw85bXx1DEKVpBDIr5EqzrLzSQoL+bEsZY/SzfQZQzeyEPHL5GkIqU9+gKA +pMOZp/Fzf/oQRDQLP5eTo2S/zz0lHgtq/FsFtmSf1IPqWTNYGRxEYrAtdkkU464g +Zza6JhJpTB9TFiNY2uB/vUIH1gJVO+ywjz4lyxTZIrlxa8kYrXGXG7lXAYF09aQu +iyB8HUAQxrrOP00uR6lGfJfUjVQmG7IC1sZRJPBaNuu57TiC0mpYe1CHqjeX1LO3 +uehktNb60f5i9wA2eyBr0MR0XGThsAj9cqR1U/VWP2LdcmFtVA== +-----END CERTIFICATE----- diff --git a/examples/servers/mcp-shopping-server/resources/public.cert b/examples/servers/mcp-shopping-server/resources/public.cert deleted file mode 100644 index 72a6774..0000000 --- a/examples/servers/mcp-shopping-server/resources/public.cert +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID+zCCAuOgAwIBAgIUNCWEAxXTzlrXQjYJ++wHARM4uLUwDQYJKoZIhvcNAQEL -BQAwgYwxCzAJBgNVBAYTAkxLMRUwEwYDVQQIDAxTYWJhcmFnYW11d2ExEjAQBgNV -BAcMCU1hd2FuZWxsYTENMAsGA1UECgwEV1NPMjELMAkGA1UECwwCQkkxFzAVBgNV -BAMMDkF6ZWVtIE11emFtbWlsMR0wGwYJKoZIhvcNAQkBFg5hemVlbUB3c28yLmNv -bTAeFw0yNTEwMDEwNjA1MjBaFw0yNjEwMDEwNjA1MjBaMIGMMQswCQYDVQQGEwJM -SzEVMBMGA1UECAwMU2FiYXJhZ2FtdXdhMRIwEAYDVQQHDAlNYXdhbmVsbGExDTAL -BgNVBAoMBFdTTzIxCzAJBgNVBAsMAkJJMRcwFQYDVQQDDA5BemVlbSBNdXphbW1p -bDEdMBsGCSqGSIb3DQEJARYOYXplZW1Ad3NvMi5jb20wggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDWS29cetxGQuRTXgjF+4nCalSjTk2qVk/hgT5ZiyFN -XHMtBWa9PqIZ9vQqjXfJPg2S3V89+qofD81UqaRYtBqNDLHTcyW9U+6RaaymmM0z -pscksw7Zy1RPhhAy+T1dTY82cg29Q71msoE26/bweNuReXq28l7IVlK4KmuJ+uKi -yM5+0GKyh12u1Cm7ixU6YSCGRXn2nVnD1+aW8YLf4yxUIshFSLx0CaY+eVthIjlc -Hd99c+4TuyBzwTpfpj8Pz1Ij4O7ProCeAObB63xdUZZVO8QdzuwdqNWfwHyus6Lg -FZqFN9sd9flk5H0lni7uND52tnN85Ag17i+xACuk/TgHAgMBAAGjUzBRMB0GA1Ud -DgQWBBQ/GJ2n6SfodSan44NS1oYGqLa8ZTAfBgNVHSMEGDAWgBQ/GJ2n6SfodSan -44NS1oYGqLa8ZTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAG -BgJ4c+ijuy3C4MG8RYFnNiAo86EsR4saRPWgT2Ym13MGM2nEE/7MFX1MdpJqPXbh -SZ6rmNc6rSByCglW950u6/z1t+LCnIJ5uSFEXppSO+LDQhOdASyH/QiZzhOeyexe -j8EccsrM0Zfgj10iECvADbP3ons1DhEPl6KFM1r5Pm4B7MdklmSf+K6wHEz3whJb -iALGaIDKeVHAiKoZDPockGL/ptJt5TJTQ2QCkLEL5SV0s3cEKwuG/PnuK7a0sQ6Y -u2CI5rNPnS/Fv0rWCx1UHlqNRLMcNbgf4It6evfl4io4xNn1W7rvKZbISw3Hpgus -ZsgW/Emcbs0h3l3RCteP ------END CERTIFICATE----- diff --git a/examples/servers/mcp-weather-server/Ballerina.toml b/examples/servers/mcp-weather-server/Ballerina.toml index fb2b05c..dd7f9e8 100644 --- a/examples/servers/mcp-weather-server/Ballerina.toml +++ b/examples/servers/mcp-weather-server/Ballerina.toml @@ -10,5 +10,5 @@ observabilityIncluded = true [[dependency]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" repository = "local" diff --git a/examples/servers/mcp-weather-server/Dependencies.toml b/examples/servers/mcp-weather-server/Dependencies.toml index 219ab66..7045ebf 100644 --- a/examples/servers/mcp-weather-server/Dependencies.toml +++ b/examples/servers/mcp-weather-server/Dependencies.toml @@ -216,7 +216,7 @@ modules = [ [[package]] org = "ballerina" name = "mcp" -version = "1.0.1" +version = "1.0.2" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "jballerina.java"},