From 9d2447b351fde72842c0504b74788014e258dda3 Mon Sep 17 00:00:00 2001 From: Topher Bullock Date: Thu, 29 May 2025 17:11:40 -0400 Subject: [PATCH] rename lib/{model_context_protocol => mcp} --- examples/stdio_server.rb | 4 +-- lib/mcp.rb | 35 +++++++++---------- .../configuration.rb | 2 +- .../content.rb | 2 +- .../instrumentation.rb | 2 +- .../methods.rb | 2 +- lib/{model_context_protocol => mcp}/prompt.rb | 4 +-- .../prompt/argument.rb | 2 +- .../prompt/message.rb | 2 +- .../prompt/result.rb | 2 +- .../resource.rb | 2 +- .../resource/contents.rb | 2 +- .../resource/embedded.rb | 2 +- .../resource_template.rb | 2 +- lib/{model_context_protocol => mcp}/server.rb | 4 +-- .../string_utils.rb | 2 +- lib/{model_context_protocol => mcp}/tool.rb | 2 +- .../tool/annotations.rb | 2 +- .../tool/input_schema.rb | 2 +- .../tool/response.rb | 2 +- .../transport.rb | 2 +- .../transports/stdio.rb | 2 +- .../version.rb | 2 +- mcp.gemspec | 4 +-- .../configuration_test.rb | 2 +- .../instrumentation_test.rb | 4 +-- test/model_context_protocol/methods_test.rb | 2 +- test/model_context_protocol/prompt_test.rb | 2 +- test/model_context_protocol/server_test.rb | 12 +++---- .../string_utils_test.rb | 2 +- .../tool/input_schema_test.rb | 2 +- test/model_context_protocol/tool_test.rb | 2 +- .../transports/stdio_transport_test.rb | 6 ++-- test/test_helper.rb | 2 +- 34 files changed, 62 insertions(+), 63 deletions(-) rename lib/{model_context_protocol => mcp}/configuration.rb (98%) rename lib/{model_context_protocol => mcp}/content.rb (95%) rename lib/{model_context_protocol => mcp}/instrumentation.rb (95%) rename lib/{model_context_protocol => mcp}/methods.rb (98%) rename lib/{model_context_protocol => mcp}/prompt.rb (95%) rename lib/{model_context_protocol => mcp}/prompt/argument.rb (93%) rename lib/{model_context_protocol => mcp}/prompt/message.rb (91%) rename lib/{model_context_protocol => mcp}/prompt/result.rb (92%) rename lib/{model_context_protocol => mcp}/resource.rb (93%) rename lib/{model_context_protocol => mcp}/resource/contents.rb (96%) rename lib/{model_context_protocol => mcp}/resource/embedded.rb (92%) rename lib/{model_context_protocol => mcp}/resource_template.rb (94%) rename lib/{model_context_protocol => mcp}/server.rb (98%) rename lib/{model_context_protocol => mcp}/string_utils.rb (94%) rename lib/{model_context_protocol => mcp}/tool.rb (98%) rename lib/{model_context_protocol => mcp}/tool/annotations.rb (96%) rename lib/{model_context_protocol => mcp}/tool/input_schema.rb (95%) rename lib/{model_context_protocol => mcp}/tool/response.rb (91%) rename lib/{model_context_protocol => mcp}/transport.rb (96%) rename lib/{model_context_protocol => mcp}/transports/stdio.rb (96%) rename lib/{model_context_protocol => mcp}/version.rb (66%) diff --git a/examples/stdio_server.rb b/examples/stdio_server.rb index 631822e..177b372 100755 --- a/examples/stdio_server.rb +++ b/examples/stdio_server.rb @@ -2,8 +2,8 @@ # frozen_string_literal: true $LOAD_PATH.unshift(File.expand_path("../lib", __dir__)) -require "model_context_protocol" -require "model_context_protocol/transports/stdio" +require "mcp" +require "mcp/transports/stdio" # Create a simple tool class ExampleTool < MCP::Tool diff --git a/lib/mcp.rb b/lib/mcp.rb index 369cae2..7eb8870 100644 --- a/lib/mcp.rb +++ b/lib/mcp.rb @@ -1,22 +1,23 @@ # frozen_string_literal: true require_relative "mcp/server" -require_relative "model_context_protocol/string_utils" -require_relative "model_context_protocol/tool" -require_relative "model_context_protocol/tool/input_schema" -require_relative "model_context_protocol/tool/annotations" -require_relative "model_context_protocol/tool/response" -require_relative "model_context_protocol/content" -require_relative "model_context_protocol/resource" -require_relative "model_context_protocol/resource/contents" -require_relative "model_context_protocol/resource/embedded" -require_relative "model_context_protocol/resource_template" -require_relative "model_context_protocol/prompt" -require_relative "model_context_protocol/prompt/argument" -require_relative "model_context_protocol/prompt/message" -require_relative "model_context_protocol/prompt/result" -require_relative "model_context_protocol/version" -require_relative "model_context_protocol/configuration" +require_relative "mcp/string_utils" +require_relative "mcp/tool" +require_relative "mcp/tool/input_schema" +require_relative "mcp/tool/annotations" +require_relative "mcp/tool/response" +require_relative "mcp/content" +require_relative "mcp/resource" +require_relative "mcp/resource/contents" +require_relative "mcp/resource/embedded" +require_relative "mcp/resource_template" +require_relative "mcp/prompt" +require_relative "mcp/prompt/argument" +require_relative "mcp/prompt/message" +require_relative "mcp/prompt/result" +require_relative "mcp/version" +require_relative "mcp/configuration" +require_relative "mcp/methods" module MCP class << self @@ -38,5 +39,3 @@ module MCP end end end - -ModelContextProtocol = MCP diff --git a/lib/model_context_protocol/configuration.rb b/lib/mcp/configuration.rb similarity index 98% rename from lib/model_context_protocol/configuration.rb rename to lib/mcp/configuration.rb index b6dab82..39eeebe 100644 --- a/lib/model_context_protocol/configuration.rb +++ b/lib/mcp/configuration.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP class Configuration DEFAULT_PROTOCOL_VERSION = "2024-11-05" diff --git a/lib/model_context_protocol/content.rb b/lib/mcp/content.rb similarity index 95% rename from lib/model_context_protocol/content.rb rename to lib/mcp/content.rb index 6a11e7a..65fc11f 100644 --- a/lib/model_context_protocol/content.rb +++ b/lib/mcp/content.rb @@ -1,7 +1,7 @@ # typed: true # frozen_string_literal: true -module ModelContextProtocol +module MCP module Content class Text attr_reader :text, :annotations diff --git a/lib/model_context_protocol/instrumentation.rb b/lib/mcp/instrumentation.rb similarity index 95% rename from lib/model_context_protocol/instrumentation.rb rename to lib/mcp/instrumentation.rb index 73d1209..5632fdd 100644 --- a/lib/model_context_protocol/instrumentation.rb +++ b/lib/mcp/instrumentation.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP module Instrumentation def instrument_call(method, &block) start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC) diff --git a/lib/model_context_protocol/methods.rb b/lib/mcp/methods.rb similarity index 98% rename from lib/model_context_protocol/methods.rb rename to lib/mcp/methods.rb index 02ac4b7..4f0b0b2 100644 --- a/lib/model_context_protocol/methods.rb +++ b/lib/mcp/methods.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP module Methods INITIALIZE = "initialize" PING = "ping" diff --git a/lib/model_context_protocol/prompt.rb b/lib/mcp/prompt.rb similarity index 95% rename from lib/model_context_protocol/prompt.rb rename to lib/mcp/prompt.rb index d7cd4b9..7624ef5 100644 --- a/lib/model_context_protocol/prompt.rb +++ b/lib/mcp/prompt.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class Prompt class << self NOT_SET = Object.new @@ -67,7 +67,7 @@ module ModelContextProtocol missing = required_args - args.keys return if missing.empty? - raise ModelContextProtocol::Server::RequestHandlerError.new( + raise MCP::Server::RequestHandlerError.new( "Missing required arguments: #{missing.join(", ")}", nil, error_type: :missing_required_arguments ) end diff --git a/lib/model_context_protocol/prompt/argument.rb b/lib/mcp/prompt/argument.rb similarity index 93% rename from lib/model_context_protocol/prompt/argument.rb rename to lib/mcp/prompt/argument.rb index 9940284..2a22fd4 100644 --- a/lib/model_context_protocol/prompt/argument.rb +++ b/lib/mcp/prompt/argument.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class Prompt class Argument attr_reader :name, :description, :required, :arguments diff --git a/lib/model_context_protocol/prompt/message.rb b/lib/mcp/prompt/message.rb similarity index 91% rename from lib/model_context_protocol/prompt/message.rb rename to lib/mcp/prompt/message.rb index e7bf602..b5c94f9 100644 --- a/lib/model_context_protocol/prompt/message.rb +++ b/lib/mcp/prompt/message.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class Prompt class Message attr_reader :role, :content diff --git a/lib/model_context_protocol/prompt/result.rb b/lib/mcp/prompt/result.rb similarity index 92% rename from lib/model_context_protocol/prompt/result.rb rename to lib/mcp/prompt/result.rb index 685bbc8..693885f 100644 --- a/lib/model_context_protocol/prompt/result.rb +++ b/lib/mcp/prompt/result.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class Prompt class Result attr_reader :description, :messages diff --git a/lib/model_context_protocol/resource.rb b/lib/mcp/resource.rb similarity index 93% rename from lib/model_context_protocol/resource.rb rename to lib/mcp/resource.rb index 800834f..5b985a9 100644 --- a/lib/model_context_protocol/resource.rb +++ b/lib/mcp/resource.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class Resource attr_reader :uri, :name, :description, :mime_type diff --git a/lib/model_context_protocol/resource/contents.rb b/lib/mcp/resource/contents.rb similarity index 96% rename from lib/model_context_protocol/resource/contents.rb rename to lib/mcp/resource/contents.rb index 34282f3..0bebb39 100644 --- a/lib/model_context_protocol/resource/contents.rb +++ b/lib/mcp/resource/contents.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class Resource class Contents attr_reader :uri, :mime_type diff --git a/lib/model_context_protocol/resource/embedded.rb b/lib/mcp/resource/embedded.rb similarity index 92% rename from lib/model_context_protocol/resource/embedded.rb rename to lib/mcp/resource/embedded.rb index 9449d8b..4cc9132 100644 --- a/lib/model_context_protocol/resource/embedded.rb +++ b/lib/mcp/resource/embedded.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class Resource class Embedded attr_reader :resource, :annotations diff --git a/lib/model_context_protocol/resource_template.rb b/lib/mcp/resource_template.rb similarity index 94% rename from lib/model_context_protocol/resource_template.rb rename to lib/mcp/resource_template.rb index f82242a..e2cc6f2 100644 --- a/lib/model_context_protocol/resource_template.rb +++ b/lib/mcp/resource_template.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP class ResourceTemplate attr_reader :uri_template, :name, :description, :mime_type diff --git a/lib/model_context_protocol/server.rb b/lib/mcp/server.rb similarity index 98% rename from lib/model_context_protocol/server.rb rename to lib/mcp/server.rb index 0bde655..6dde615 100644 --- a/lib/model_context_protocol/server.rb +++ b/lib/mcp/server.rb @@ -4,7 +4,7 @@ require "json_rpc_handler" require_relative "instrumentation" require_relative "methods" -module ModelContextProtocol +module MCP class Server DEFAULT_VERSION = "0.1.0" @@ -44,7 +44,7 @@ module ModelContextProtocol @resource_templates = resource_templates @resource_index = index_resources_by_uri(resources) @server_context = server_context - @configuration = ModelContextProtocol.configuration.merge(configuration) + @configuration = MCP.configuration.merge(configuration) @handlers = { Methods::RESOURCES_LIST => method(:list_resources), diff --git a/lib/model_context_protocol/string_utils.rb b/lib/mcp/string_utils.rb similarity index 94% rename from lib/model_context_protocol/string_utils.rb rename to lib/mcp/string_utils.rb index 08bd5a8..3f0dcdb 100644 --- a/lib/model_context_protocol/string_utils.rb +++ b/lib/mcp/string_utils.rb @@ -1,7 +1,7 @@ # typed: strict # frozen_string_literal: true -module ModelContextProtocol +module MCP module StringUtils extend self diff --git a/lib/model_context_protocol/tool.rb b/lib/mcp/tool.rb similarity index 98% rename from lib/model_context_protocol/tool.rb rename to lib/mcp/tool.rb index 388cf88..48378e4 100644 --- a/lib/model_context_protocol/tool.rb +++ b/lib/mcp/tool.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP class Tool class << self NOT_SET = Object.new diff --git a/lib/model_context_protocol/tool/annotations.rb b/lib/mcp/tool/annotations.rb similarity index 96% rename from lib/model_context_protocol/tool/annotations.rb rename to lib/mcp/tool/annotations.rb index 2266c9f..6344334 100644 --- a/lib/model_context_protocol/tool/annotations.rb +++ b/lib/mcp/tool/annotations.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP class Tool class Annotations attr_reader :title, :read_only_hint, :destructive_hint, :idempotent_hint, :open_world_hint diff --git a/lib/model_context_protocol/tool/input_schema.rb b/lib/mcp/tool/input_schema.rb similarity index 95% rename from lib/model_context_protocol/tool/input_schema.rb rename to lib/mcp/tool/input_schema.rb index 4718205..4683b7e 100644 --- a/lib/model_context_protocol/tool/input_schema.rb +++ b/lib/mcp/tool/input_schema.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP class Tool class InputSchema attr_reader :properties, :required diff --git a/lib/model_context_protocol/tool/response.rb b/lib/mcp/tool/response.rb similarity index 91% rename from lib/model_context_protocol/tool/response.rb rename to lib/mcp/tool/response.rb index 9207793..abf6ff4 100644 --- a/lib/model_context_protocol/tool/response.rb +++ b/lib/mcp/tool/response.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP class Tool class Response attr_reader :content, :is_error diff --git a/lib/model_context_protocol/transport.rb b/lib/mcp/transport.rb similarity index 96% rename from lib/model_context_protocol/transport.rb rename to lib/mcp/transport.rb index fc6aca5..7e4b63e 100644 --- a/lib/model_context_protocol/transport.rb +++ b/lib/mcp/transport.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP class Transport def initialize(server) @server = server diff --git a/lib/model_context_protocol/transports/stdio.rb b/lib/mcp/transports/stdio.rb similarity index 96% rename from lib/model_context_protocol/transports/stdio.rb rename to lib/mcp/transports/stdio.rb index f72508b..b76b961 100644 --- a/lib/model_context_protocol/transports/stdio.rb +++ b/lib/mcp/transports/stdio.rb @@ -3,7 +3,7 @@ require_relative "../transport" require "json" -module ModelContextProtocol +module MCP module Transports class StdioTransport < Transport def initialize(server) diff --git a/lib/model_context_protocol/version.rb b/lib/mcp/version.rb similarity index 66% rename from lib/model_context_protocol/version.rb rename to lib/mcp/version.rb index c2e2323..1297fbf 100644 --- a/lib/model_context_protocol/version.rb +++ b/lib/mcp/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -module ModelContextProtocol +module MCP VERSION = "0.7.0" end diff --git a/mcp.gemspec b/mcp.gemspec index 2659437..c598f45 100644 --- a/mcp.gemspec +++ b/mcp.gemspec @@ -1,10 +1,10 @@ # frozen_string_literal: true -require_relative "lib/model_context_protocol/version" +require_relative "lib/mcp/version" Gem::Specification.new do |spec| spec.name = "mcp" - spec.version = ModelContextProtocol::VERSION + spec.version = MCP::VERSION spec.authors = ["Model Context Protocol"] spec.email = ["mcp-support@anthropic.com"] diff --git a/test/model_context_protocol/configuration_test.rb b/test/model_context_protocol/configuration_test.rb index e71efd4..71a1c27 100644 --- a/test/model_context_protocol/configuration_test.rb +++ b/test/model_context_protocol/configuration_test.rb @@ -2,7 +2,7 @@ require "test_helper" -module ModelContextProtocol +module MCP class ConfigurationTest < ActiveSupport::TestCase test "initializes with a default no-op exception reporter" do config = Configuration.new diff --git a/test/model_context_protocol/instrumentation_test.rb b/test/model_context_protocol/instrumentation_test.rb index 7a4f933..e1ecf51 100644 --- a/test/model_context_protocol/instrumentation_test.rb +++ b/test/model_context_protocol/instrumentation_test.rb @@ -2,14 +2,14 @@ require "test_helper" -module ModelContextProtocol +module MCP class InstrumentationTest < ActiveSupport::TestCase class Subject include Instrumentation attr_reader :instrumentation_data_received, :configuration def initialize - @configuration = ModelContextProtocol::Configuration.new + @configuration = MCP::Configuration.new @configuration.instrumentation_callback = ->(data) { @instrumentation_data_received = data } end diff --git a/test/model_context_protocol/methods_test.rb b/test/model_context_protocol/methods_test.rb index f35b3b7..28e3f05 100644 --- a/test/model_context_protocol/methods_test.rb +++ b/test/model_context_protocol/methods_test.rb @@ -3,7 +3,7 @@ require "test_helper" -module ModelContextProtocol +module MCP class MethodsTest < ActiveSupport::TestCase test "ensure_capability! for tools/list method raises an error if tools capability is not present" do error = assert_raises(Methods::MissingRequiredCapabilityError) do diff --git a/test/model_context_protocol/prompt_test.rb b/test/model_context_protocol/prompt_test.rb index 151875c..b93395f 100644 --- a/test/model_context_protocol/prompt_test.rb +++ b/test/model_context_protocol/prompt_test.rb @@ -3,7 +3,7 @@ require "test_helper" -module ModelContextProtocol +module MCP class PromptTest < ActiveSupport::TestCase class TestPrompt < Prompt description "Test prompt" diff --git a/test/model_context_protocol/server_test.rb b/test/model_context_protocol/server_test.rb index fec44fa..01b7622 100644 --- a/test/model_context_protocol/server_test.rb +++ b/test/model_context_protocol/server_test.rb @@ -5,7 +5,7 @@ require "test_helper" require "json" require "debug" -module ModelContextProtocol +module MCP class ServerTest < ActiveSupport::TestCase include InstrumentationTestHelper setup do @@ -47,7 +47,7 @@ module ModelContextProtocol ) @server_name = "test_server" - configuration = ModelContextProtocol::Configuration.new + configuration = MCP::Configuration.new configuration.instrumentation_callback = instrumentation_helper.callback @server = Server.new( @@ -61,7 +61,7 @@ module ModelContextProtocol ) end - # https://spec.modelcontextprotocol.io/specification/2025-03-26/basic/utilities/ping/#behavior-requirements + # https://spec.MCP.io/specification/2025-03-26/basic/utilities/ping/#behavior-requirements test "#handle ping request returns empty response" do request = { jsonrpc: "2.0", @@ -655,14 +655,14 @@ module ModelContextProtocol test "the global configuration is used if no configuration is passed to the server" do server = Server.new(name: "test_server") - assert_equal ModelContextProtocol.configuration.instrumentation_callback, + assert_equal MCP.configuration.instrumentation_callback, server.configuration.instrumentation_callback - assert_equal ModelContextProtocol.configuration.exception_reporter, + assert_equal MCP.configuration.exception_reporter, server.configuration.exception_reporter end test "the server configuration takes precedence over the global configuration" do - configuration = ModelContextProtocol::Configuration.new + configuration = MCP::Configuration.new local_callback = ->(data) { puts "Local callback #{data.inspect}" } local_exception_reporter = ->(exception, server_context) { puts "Local exception reporter #{exception.inspect} #{server_context.inspect}" diff --git a/test/model_context_protocol/string_utils_test.rb b/test/model_context_protocol/string_utils_test.rb index b43d1ee..6613e89 100644 --- a/test/model_context_protocol/string_utils_test.rb +++ b/test/model_context_protocol/string_utils_test.rb @@ -2,7 +2,7 @@ require "test_helper" -module ModelContextProtocol +module MCP class StringUtilsTest < Minitest::Test def test_handle_from_class_name_returns_the_class_name_without_the_module_for_a_class_without_a_module assert_equal("test", StringUtils.handle_from_class_name("Test")) diff --git a/test/model_context_protocol/tool/input_schema_test.rb b/test/model_context_protocol/tool/input_schema_test.rb index c28bbcf..1ded7af 100644 --- a/test/model_context_protocol/tool/input_schema_test.rb +++ b/test/model_context_protocol/tool/input_schema_test.rb @@ -2,7 +2,7 @@ require "test_helper" -module ModelContextProtocol +module MCP class Tool class InputSchemaTest < ActiveSupport::TestCase test "required arguments are converted to symbols" do diff --git a/test/model_context_protocol/tool_test.rb b/test/model_context_protocol/tool_test.rb index 1b96022..f53352b 100644 --- a/test/model_context_protocol/tool_test.rb +++ b/test/model_context_protocol/tool_test.rb @@ -3,7 +3,7 @@ require "test_helper" -module ModelContextProtocol +module MCP class ToolTest < ActiveSupport::TestCase class TestTool < Tool tool_name "test_tool" diff --git a/test/model_context_protocol/transports/stdio_transport_test.rb b/test/model_context_protocol/transports/stdio_transport_test.rb index 498b0ff..42c76cf 100644 --- a/test/model_context_protocol/transports/stdio_transport_test.rb +++ b/test/model_context_protocol/transports/stdio_transport_test.rb @@ -1,16 +1,16 @@ # frozen_string_literal: true require "test_helper" -require "model_context_protocol/transports/stdio" +require "mcp/transports/stdio" require "json" -module ModelContextProtocol +module MCP module Transports class StdioTransportTest < ActiveSupport::TestCase include InstrumentationTestHelper setup do - configuration = ModelContextProtocol::Configuration.new + configuration = MCP::Configuration.new configuration.instrumentation_callback = instrumentation_helper.callback @server = Server.new(name: "test_server", configuration: configuration) @transport = StdioTransport.new(@server) diff --git a/test/test_helper.rb b/test/test_helper.rb index 0ba9013..99f6bba 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -3,7 +3,7 @@ ENV["RAILS_ENV"] ||= "test" require "bundler/setup" -require "model_context_protocol" +require "mcp" require "minitest/autorun" require "minitest/reporters"