Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-MCP for openSUSE:Factory checked in at 2026-02-19 14:24:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-MCP (Old) and /work/SRC/openSUSE:Factory/.perl-MCP.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-MCP" Thu Feb 19 14:24:49 2026 rev:5 rq:1333898 version:0.80.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-MCP/perl-MCP.changes 2026-01-23 17:34:18.897020170 +0100 +++ /work/SRC/openSUSE:Factory/.perl-MCP.new.1977/perl-MCP.changes 2026-02-19 14:25:14.631362739 +0100 @@ -1,0 +2,9 @@ +Wed Feb 18 06:16:48 UTC 2026 - Tina Müller <[email protected]> + +- updated to 0.80.0 (0.08) + see /usr/share/doc/packages/perl-MCP/Changes + + 0.08 2026-02-17 + - Added support for tool annotations. (d3flex) + +------------------------------------------------------------------- Old: ---- MCP-0.07.tar.gz New: ---- MCP-0.08.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-MCP.spec ++++++ --- /var/tmp/diff_new_pack.yC4U9W/_old 2026-02-19 14:25:16.659446881 +0100 +++ /var/tmp/diff_new_pack.yC4U9W/_new 2026-02-19 14:25:16.663447047 +0100 @@ -18,10 +18,10 @@ %define cpan_name MCP Name: perl-MCP -Version: 0.70.0 +Version: 0.80.0 Release: 0 -# 0.07 -> normalize -> 0.70.0 -%define cpan_version 0.07 +# 0.08 -> normalize -> 0.80.0 +%define cpan_version 0.08 License: MIT Summary: Connect Perl with AI using MCP (Model Context Protocol) URL: https://metacpan.org/release/%{cpan_name} ++++++ MCP-0.07.tar.gz -> MCP-0.08.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/Changes new/MCP-0.08/Changes --- old/MCP-0.07/Changes 2026-01-16 17:07:40.000000000 +0100 +++ new/MCP-0.08/Changes 2026-02-17 13:14:19.000000000 +0100 @@ -1,4 +1,7 @@ +0.08 2026-02-17 + - Added support for tool annotations. (d3flex) + 0.07 2026-01-16 - Fixed bug in MCP::Prompt where text prompts had the wrong format. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/META.json new/MCP-0.08/META.json --- old/MCP-0.07/META.json 2026-01-16 17:09:56.000000000 +0100 +++ new/MCP-0.08/META.json 2026-02-17 13:15:49.000000000 +0100 @@ -61,6 +61,6 @@ "web" : "https://web.libera.chat/#mojo" } }, - "version" : "0.07", + "version" : "0.08", "x_serialization_backend" : "JSON::PP version 4.16" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/META.yml new/MCP-0.08/META.yml --- old/MCP-0.07/META.yml 2026-01-16 17:09:56.000000000 +0100 +++ new/MCP-0.08/META.yml 2026-02-17 13:15:49.000000000 +0100 @@ -33,5 +33,5 @@ homepage: https://mojolicious.org license: http://www.opensource.org/licenses/mit repository: https://github.com/mojolicious/mojo-mcp.git -version: '0.07' +version: '0.08' x_serialization_backend: 'CPAN::Meta::YAML version 0.020' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/lib/MCP/Server.pm new/MCP-0.08/lib/MCP/Server.pm --- old/MCP-0.07/lib/MCP/Server.pm 2026-01-16 17:08:10.000000000 +0100 +++ new/MCP-0.08/lib/MCP/Server.pm 2026-02-17 13:13:13.000000000 +0100 @@ -162,6 +162,9 @@ for my $tool (@{$self->_tools($context)}) { my $info = {name => $tool->name, description => $tool->description, inputSchema => $tool->input_schema}; if (my $output_schema = $tool->output_schema) { $info->{outputSchema} = $output_schema } + + my $annotations = $tool->annotations; + $info->{annotations} = $annotations if keys %$annotations; push @tools, $info; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/lib/MCP/Tool.pm new/MCP-0.08/lib/MCP/Tool.pm --- old/MCP-0.07/lib/MCP/Tool.pm 2025-12-04 15:39:51.000000000 +0100 +++ new/MCP-0.08/lib/MCP/Tool.pm 2026-02-17 13:13:13.000000000 +0100 @@ -6,6 +6,7 @@ use Mojo::Util qw(b64_encode); use Scalar::Util qw(blessed); +has annotations => sub { {} }; has code => sub { die 'Tool code not implemented' }; has description => 'Generic MCP tool'; has input_schema => sub { {type => 'object'} }; @@ -101,6 +102,13 @@ L<MCP::Tool> implements the following attributes. +=head2 annotations + + my $annotations = $tool->annotations; + $tool = $tool->annotations({title => '...'}); + +Optional annotations for the tool which provide additional metadata about the tool behavior. + =head2 code my $code = $tool->code; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/lib/MCP.pm new/MCP-0.08/lib/MCP.pm --- old/MCP-0.07/lib/MCP.pm 2026-01-16 17:08:39.000000000 +0100 +++ new/MCP-0.08/lib/MCP.pm 2026-02-17 13:14:27.000000000 +0100 @@ -1,7 +1,7 @@ package MCP; use Mojo::Base -base, -signatures; -our $VERSION = '0.07'; +our $VERSION = '0.08'; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/t/apps/lite_app.pl new/MCP-0.08/t/apps/lite_app.pl --- old/MCP-0.07/t/apps/lite_app.pl 2025-12-05 13:45:02.000000000 +0100 +++ new/MCP-0.08/t/apps/lite_app.pl 2026-02-17 13:13:13.000000000 +0100 @@ -4,12 +4,14 @@ use Mojo::IOLoop; use Mojo::Promise; use Mojo::File qw(curfile); +use Mojo::JSON qw(true false); my $server = MCP::Server->new; $server->tool( name => 'echo', description => 'Echo the input text', - input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']}, + input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']}, + annotations => {title => 'echo'}, code => sub ($tool, $args) { return "Echo: $args->{msg}"; } @@ -63,7 +65,14 @@ name => 'find_resource', description => 'Find a resource for the given text', input_schema => {type => 'object', properties => {text => {type => 'string'}}, required => ['text']}, - code => sub ($tool, $args) { + annotations => { + title => 'find_resource', + readOnlyHint => true, + destructiveHint => false, + idempotentHint => true, + openWorldHint => false + }, + code => sub ($tool, $args) { my $uri = 'file:///path/to/resource.txt'; return $tool->resource_link_result($uri, {name => 'sample', description => 'An example resource'}); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MCP-0.07/t/lite_app.t new/MCP-0.08/t/lite_app.t --- old/MCP-0.07/t/lite_app.t 2026-01-16 17:05:53.000000000 +0100 +++ new/MCP-0.08/t/lite_app.t 2026-02-17 13:13:13.000000000 +0100 @@ -5,7 +5,7 @@ use Test::Mojo; use Mojo::ByteStream qw(b); use Mojo::File qw(curfile); -use Mojo::JSON qw(from_json); +use Mojo::JSON qw(from_json true false); use MCP::Client; use MCP::Constants qw(PROTOCOL_VERSION); @@ -45,13 +45,15 @@ is_deeply $result->{tools}[0]{inputSchema}, {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']}, 'tool input schema'; ok !exists($result->{tools}[0]{outputSchema}), 'no output schema'; + is_deeply $result->{tools}[0]{annotations}, {title => 'echo'}, 'corrent number of annotations'; is $result->{tools}[1]{name}, 'echo_async', 'tool name'; is $result->{tools}[1]{description}, 'Echo the input text asynchronously', 'tool description'; is_deeply $result->{tools}[1]{inputSchema}, {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']}, 'tool input schema'; ok !exists($result->{tools}[1]{outputSchema}), 'no output schema'; - is $result->{tools}[2]{name}, 'echo_header', 'tool name'; - is $result->{tools}[2]{description}, 'Echo the input text with a header', 'tool description'; + is keys %{$result->{tools}[1]{annotations}}, 0, 'empty annotations not serialized'; + is $result->{tools}[2]{name}, 'echo_header', 'tool name'; + is $result->{tools}[2]{description}, 'Echo the input text with a header', 'tool description'; is_deeply $result->{tools}[2]{inputSchema}, {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']}, 'tool input schema'; ok !exists($result->{tools}[2]{outputSchema}), 'no output schema'; @@ -74,8 +76,11 @@ is_deeply $result->{tools}[6]{inputSchema}, {type => 'object', properties => {text => {type => 'string'}}, required => ['text']}, 'tool input schema'; ok !exists($result->{tools}[6]{outputSchema}), 'no output schema'; - is $result->{tools}[7]{name}, 'current_weather', 'tool name'; - is $result->{tools}[7]{description}, 'Get current weather data for a location', 'tool description'; + ok exists($result->{tools}[6]{annotations}), 'has annotations'; + is keys %{$result->{tools}[6]{annotations}}, 5, 'all annotations are serialized'; + is $result->{tools}[6]{annotations}{readOnlyHint}, true, 'annotation has correct value'; + is $result->{tools}[7]{name}, 'current_weather', 'tool name'; + is $result->{tools}[7]{description}, 'Get current weather data for a location', 'tool description'; my $input_schema = { type => 'object', properties => {location => {type => 'string', description => 'City name or zip code'}}, @@ -92,7 +97,6 @@ required => ['temperature', 'conditions', 'humidity'] }; is_deeply $result->{tools}[7]{outputSchema}, $output_schema, 'tool output schema'; - is $result->{tools}[8], undef, 'no more tools'; }; subtest 'Tool call' => sub { ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.yC4U9W/_old 2026-02-19 14:25:16.859455179 +0100 +++ /var/tmp/diff_new_pack.yC4U9W/_new 2026-02-19 14:25:16.867455511 +0100 @@ -1,6 +1,6 @@ -mtime: 1768628299 -commit: 6687ca0be6ca2a4c18b45130ee548ca241d1397682ea08a2f5f7c410b8ad1204 +mtime: 1771395409 +commit: 5fce262571f96f3e649b7c5fce0471e36b7911ce4d8f0b70b46e7f5dde1753a6 url: https://src.opensuse.org/perl/perl-MCP.git -revision: 6687ca0be6ca2a4c18b45130ee548ca241d1397682ea08a2f5f7c410b8ad1204 +revision: 5fce262571f96f3e649b7c5fce0471e36b7911ce4d8f0b70b46e7f5dde1753a6 projectscmsync: https://src.opensuse.org/perl/_ObsPrj ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-02-18 21:56:50.000000000 +0100 @@ -0,0 +1 @@ +.osc
