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-08-21 17:01:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-MCP (Old) and /work/SRC/openSUSE:Factory/.perl-MCP.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-MCP" Fri Aug 21 17:01:43 2026 rev:8 rq:1372855 version:0.150.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-MCP/perl-MCP.changes 2026-06-29 17:31:15.447868871 +0200 +++ /work/SRC/openSUSE:Factory/.perl-MCP.new.1258/perl-MCP.changes 2026-08-21 17:03:17.421235186 +0200 @@ -1,0 +2,62 @@ +Fri Jul 31 08:09:57 UTC 2026 - Tina Müller <[email protected]> + +- updated to 0.150.0 (0.15) + see /usr/share/doc/packages/perl-MCP/Changes + + 0.15 2026-07-30 + - Updated to MCP protocol revision 2026-07-28, which makes the protocol stateless. This is a breaking change for + every user of this module. + - Removed the initialize handshake, protocol sessions, and the Mcp-Session-Id header. Every request now declares + the protocol version and client capabilities it was made with in _meta. + - Removed MCP::Server::Session, and the sessions and session_timeout attributes from MCP::Server::Transport::HTTP. + GET and DELETE requests are now answered with status 405. + - Removed initialize_session, delete_session, ping, and session_id from MCP::Client. + - Removed the ping method and the RESOURCE_NOT_FOUND constant. Prompts, resources, and tools that were not found + now use INVALID_PARAMS, and unknown methods are answered with status 404. + - Added MCP::Server::Legacy, a temporary fallback that answers the initialize handshake of protocol revisions + older than 2026-07-28, so clients that have not been updated yet can still list and call tools, prompts, and + resources. It also adds a legacy attribute to MCP::Server::Context, and will be removed again in a future + release. + - Added the server/discover method, which replaces initialize, and an instructions attribute to MCP::Server. + - Added a discover method to MCP::Client. + - Added subscriptions/listen, which replaces the GET stream and resources/subscribe, to both transports. + - Added MCP::Server::Subscription class, and a subscriptions attribute to both transports. + - Added a listen method and a notification event to MCP::Client. + - Added support for multi-round tool requests, with an input_required method on MCP::Primitive that seals its + request state with HMAC-SHA256, and matching input_responses and request_state options for call_tool, get_prompt, + and read_resource in MCP::Client. + - Added state_secret and state_timeout attributes to MCP::Server. + - Added input_responses, principal, raw_request_state, state_binding, state_secret, and state_timeout attributes, + and request_state and seal_state methods, to MCP::Server::Context. + - Added routing header validation to MCP::Server::Transport::HTTP, covering MCP-Protocol-Version, Mcp-Method, + Mcp-Name, and the Mcp-Param-* headers declared with x-mcp-header in a tool input schema. + - Added an origins attribute to MCP::Server::Transport::HTTP, to protect against DNS rebinding attacks. + - Added cache hints to discovery, list, and read results, with cache_scope and cache_ttl attributes on MCP::Server + and MCP::Primitive. + - Added a resultType field and server info to every result. + - Added a log attribute to MCP::Server, and the INTERNAL_ERROR constant. + - Fixed a bug where an exception thrown by a prompt, resource, or tool, or a rejected promise returned by one, + was not turned into a JSON-RPC error. Over stdio it terminated the server, and over HTTP it produced a response + without a body and leaked the notification stream. The exception is now logged and answered with + INTERNAL_ERROR. + - Added JSON Schema 2020-12 support to MCP::Tool, which is now the default dialect, together with a + max_schema_depth attribute and validation of structuredContent against output_schema. This requires + JSON::Schema::Tiny 0.034. + - Added client_capabilities, client_info, log_level, and protocol_version attributes, and a notify_log method, to + MCP::Server::Context. + - Added a cancelled event, and cancel and is_cancelled methods, to MCP::Server::Context, so long running tools can + stop as soon as a client goes away. MCP::Server::Context is now a Mojo::EventEmitter. + - Added HEADER_MISMATCH, META_CLIENT_CAPABILITIES, META_CLIENT_INFO, META_LOG_LEVEL, META_PROTOCOL_VERSION, + META_SERVER_INFO, META_SUBSCRIPTION_ID, MISSING_CLIENT_CAPABILITY, SUPPORTED_VERSIONS, and + UNSUPPORTED_PROTOCOL_VERSION constants to MCP::Constants. + - Added capabilities and protocol_version attributes to MCP::Client, which renegotiates once when a server rejects + its protocol version. + - Improved progress and log notifications to be delivered on the response stream of the request they belong to, so + they no longer require streaming to be enabled and work with pre-forking web servers. + - Added a tutorial to the MCP documentation, introducing tools, prompts, resources, and everything around them. + - Added examples/perldoc_stdio.pl, the server built in the tutorial. + + 0.13 2026-06-22 + - Switched from JSON::Valdiator to JSON::Schema::Tiny for better portability. + +------------------------------------------------------------------- Old: ---- MCP-0.12.tar.gz New: ---- MCP-0.15.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-MCP.spec ++++++ --- /var/tmp/diff_new_pack.V72eja/_old 2026-08-21 17:03:18.234263972 +0200 +++ /var/tmp/diff_new_pack.V72eja/_new 2026-08-21 17:03:18.238264113 +0200 @@ -18,10 +18,10 @@ %define cpan_name MCP Name: perl-MCP -Version: 0.120.0 +Version: 0.150.0 Release: 0 -# 0.12 -> normalize -> 0.120.0 -%define cpan_version 0.12 +# 0.15 -> normalize -> 0.150.0 +%define cpan_version 0.15 License: MIT Summary: Connect Perl with AI using MCP (Model Context Protocol) URL: https://metacpan.org/release/%{cpan_name} @@ -32,11 +32,11 @@ BuildRequires: perl-macros BuildRequires: perl(CryptX) >= 0.87 BuildRequires: perl(IPC::Run) >= 20231003.0 -BuildRequires: perl(JSON::Validator) >= 5.150 +BuildRequires: perl(JSON::Schema::Tiny) >= 0.34 BuildRequires: perl(Mojolicious) >= 9.410 Requires: perl(CryptX) >= 0.87 Requires: perl(IPC::Run) >= 20231003.0 -Requires: perl(JSON::Validator) >= 5.150 +Requires: perl(JSON::Schema::Tiny) >= 0.34 Requires: perl(Mojolicious) >= 9.410 Provides: perl(MCP) = %{version} Provides: perl(MCP::Client) @@ -46,7 +46,8 @@ Provides: perl(MCP::Resource) Provides: perl(MCP::Server) Provides: perl(MCP::Server::Context) -Provides: perl(MCP::Server::Session) +Provides: perl(MCP::Server::Legacy) +Provides: perl(MCP::Server::Subscription) Provides: perl(MCP::Server::Transport) Provides: perl(MCP::Server::Transport::HTTP) Provides: perl(MCP::Server::Transport::Stdio) @@ -55,66 +56,18 @@ %{perl_requires} %description -Connect Perl with AI using the Model Context Protocol (MCP). Currently this -module is focused on tool calling and prompts, but it will be extended to -support other MCP features in the future. At its core, MCP is all about -text processing, making it a great fit for Perl. +Connect Perl with AI using the Model Context Protocol (MCP). An MCP server +hands a model three kinds of things: tools it can call, prompts it can +start from, and resources it can read. At its core MCP is all about text +processing, which makes it a great fit for Perl. + +The protocol revision implemented is '2026-07-28', and it is stateless. +There is no handshake and no session, every request stands on its own, so +an MCP endpoint is just another route in your Mojolicious application and +scales the same way. -Streamable HTTP Transport - Use the MCP::Server/"to_action" method to add an MCP endpoint to any - Mojolicious application. The tool name and description are used for - discovery, and the at https://json-schema.org is used to validate the - input. - - use Mojolicious::Lite -signatures; - - use MCP::Server; - - my $server = MCP::Server->new; - $server->tool( - name => 'echo', - description => 'Echo the input text', - input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']}, - code => sub ($tool, $args) { - return "Echo: $args->{msg}"; - } - ); - - any '/mcp' => $server->to_action; - - app->start; - - Authentication can be added by the web application, just like for any - other route. OAuth scopes can be enforced per tool, prompt and - resource. To allow for MCP applications to scale with prefork web - servers, server to client streaming is currentlly avoided when - possible. - -Stdio Transport - Build local command line applications and use the stdio transport for - testing with the MCP::Server/"to_stdio" method. - - use Mojo::Base -strict, -signatures; - - use MCP::Server; - - my $server = MCP::Server->new; - $server->tool( - name => 'echo', - description => 'Echo the input text', - input_schema => {type => 'object', properties => {msg => {type => 'string'}}, required => ['msg']}, - code => sub ($tool, $args) { - return "Echo: $args->{msg}"; - } - ); - - $server->to_stdio; - - Just run the script and type requests on the command line. - - $ perl examples/echo_stdio.pl - {"jsonrpc":"2.0","id":"1","method":"tools/list"} - {"jsonrpc":"2.0","id":"2","method":"tools/call","params":{"name":"echo","arguments":{"msg":"hello perl"}}} +Read on for a tour, or go straight to MCP::Server for the reference +documentation. %prep %autosetup -n %{cpan_name}-%{cpan_version} -p1 ++++++ MCP-0.12.tar.gz -> MCP-0.15.tar.gz ++++++ ++++ 5674 lines of diff (skipped) ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.V72eja/_old 2026-08-21 17:03:18.415270380 +0200 +++ /var/tmp/diff_new_pack.V72eja/_new 2026-08-21 17:03:18.422270628 +0200 @@ -1,6 +1,6 @@ -mtime: 1782729687 -commit: 9b4485a5897cfd345e224a9ec10f306d5a9e94b89cac1e2e69042ec2635014fe +mtime: 1785485398 +commit: 5df8e64a4ed5de1b0d8bc52ed1c9e69e7cd4d725ca67fface0e28b164ea058ff url: https://src.opensuse.org/perl/perl-MCP -revision: 9b4485a5897cfd345e224a9ec10f306d5a9e94b89cac1e2e69042ec2635014fe +revision: 5df8e64a4ed5de1b0d8bc52ed1c9e69e7cd4d725ca67fface0e28b164ea058ff 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-07-31 10:09:58.000000000 +0200 @@ -0,0 +1 @@ +.osc
