From d80b13736e13ade19b9d912456eaad9a5aca2be7 Mon Sep 17 00:00:00 2001 From: Joey Cardosi Date: Fri, 30 May 2025 12:15:11 -0400 Subject: [PATCH] just redo all of it from scratch --- README.md | 4 +- examples/stdio_server.rb | 4 +- lib/mcp.rb | 41 +++++++++++-------- lib/mcp/server.rb | 4 +- lib/mcp/{ => server}/transports/stdio.rb | 2 +- lib/mcp/{ => shared}/configuration.rb | 0 lib/mcp/{ => shared}/content.rb | 0 lib/mcp/{ => shared}/instrumentation.rb | 0 lib/mcp/{ => shared}/methods.rb | 0 lib/mcp/{ => shared}/prompt.rb | 0 lib/mcp/{ => shared}/prompt/argument.rb | 0 lib/mcp/{ => shared}/prompt/message.rb | 0 lib/mcp/{ => shared}/prompt/result.rb | 0 lib/mcp/{ => shared}/resource.rb | 0 lib/mcp/{ => shared}/resource/contents.rb | 0 lib/mcp/{ => shared}/resource/embedded.rb | 0 lib/mcp/{ => shared}/resource_template.rb | 0 lib/mcp/{ => shared}/string_utils.rb | 0 lib/mcp/{ => shared}/tool.rb | 0 lib/mcp/{ => shared}/tool/annotations.rb | 0 lib/mcp/{ => shared}/tool/input_schema.rb | 0 lib/mcp/{ => shared}/tool/response.rb | 0 lib/mcp/{ => shared}/transport.rb | 0 lib/mcp/{ => shared}/version.rb | 0 mcp.gemspec | 2 +- .../transports/stdio_transport_test.rb | 2 +- .../server_test.rb | 0 .../shared}/configuration_test.rb | 0 .../shared}/instrumentation_test.rb | 0 .../shared}/methods_test.rb | 0 .../shared}/prompt_test.rb | 0 .../shared}/string_utils_test.rb | 0 .../shared}/tool/input_schema_test.rb | 0 .../tool_test.rb | 0 34 files changed, 33 insertions(+), 26 deletions(-) rename lib/mcp/{ => server}/transports/stdio.rb (94%) rename lib/mcp/{ => shared}/configuration.rb (100%) rename lib/mcp/{ => shared}/content.rb (100%) rename lib/mcp/{ => shared}/instrumentation.rb (100%) rename lib/mcp/{ => shared}/methods.rb (100%) rename lib/mcp/{ => shared}/prompt.rb (100%) rename lib/mcp/{ => shared}/prompt/argument.rb (100%) rename lib/mcp/{ => shared}/prompt/message.rb (100%) rename lib/mcp/{ => shared}/prompt/result.rb (100%) rename lib/mcp/{ => shared}/resource.rb (100%) rename lib/mcp/{ => shared}/resource/contents.rb (100%) rename lib/mcp/{ => shared}/resource/embedded.rb (100%) rename lib/mcp/{ => shared}/resource_template.rb (100%) rename lib/mcp/{ => shared}/string_utils.rb (100%) rename lib/mcp/{ => shared}/tool.rb (100%) rename lib/mcp/{ => shared}/tool/annotations.rb (100%) rename lib/mcp/{ => shared}/tool/input_schema.rb (100%) rename lib/mcp/{ => shared}/tool/response.rb (100%) rename lib/mcp/{ => shared}/transport.rb (100%) rename lib/mcp/{ => shared}/version.rb (100%) rename test/{model_context_protocol => mcp/server}/transports/stdio_transport_test.rb (98%) rename test/{model_context_protocol => mcp}/server_test.rb (100%) rename test/{model_context_protocol => mcp/shared}/configuration_test.rb (100%) rename test/{model_context_protocol => mcp/shared}/instrumentation_test.rb (100%) rename test/{model_context_protocol => mcp/shared}/methods_test.rb (100%) rename test/{model_context_protocol => mcp/shared}/prompt_test.rb (100%) rename test/{model_context_protocol => mcp/shared}/string_utils_test.rb (100%) rename test/{model_context_protocol => mcp/shared}/tool/input_schema_test.rb (100%) rename test/{model_context_protocol => mcp}/tool_test.rb (100%) diff --git a/README.md b/README.md index 6c4c527..2acf2fd 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ If you want to build a local command-line application, you can use the stdio tra ```ruby #!/usr/bin/env ruby require "mcp" -require "mcp/transports/stdio" +require "mcp/server/transports/stdio" # Create a simple tool class ExampleTool < MCP::Tool @@ -115,7 +115,7 @@ server = MCP::Server.new( ) # Create and start the transport -transport = MCP::Transports::StdioTransport.new(server) +transport = MCP::Server::Transports::StdioTransport.new(server) transport.open ``` diff --git a/examples/stdio_server.rb b/examples/stdio_server.rb index 177b372..cddf912 100755 --- a/examples/stdio_server.rb +++ b/examples/stdio_server.rb @@ -3,7 +3,7 @@ $LOAD_PATH.unshift(File.expand_path("../lib", __dir__)) require "mcp" -require "mcp/transports/stdio" +require "mcp/server/transports/stdio" # Create a simple tool class ExampleTool < MCP::Tool @@ -91,5 +91,5 @@ server.resources_read_handler do |params| end # Create and start the transport -transport = MCP::Transports::StdioTransport.new(server) +transport = MCP::Server::Transports::StdioTransport.new(server) transport.open diff --git a/lib/mcp.rb b/lib/mcp.rb index 7eb8870..344a253 100644 --- a/lib/mcp.rb +++ b/lib/mcp.rb @@ -1,23 +1,30 @@ # frozen_string_literal: true +require_relative "mcp/shared/version" +require_relative "mcp/shared/configuration" +require_relative "mcp/shared/instrumentation" +require_relative "mcp/shared/methods" +require_relative "mcp/shared/transport" +require_relative "mcp/shared/content" +require_relative "mcp/shared/string_utils" + +require_relative "mcp/shared/resource" +require_relative "mcp/shared/resource/contents" +require_relative "mcp/shared/resource/embedded" +require_relative "mcp/shared/resource_template" + +require_relative "mcp/shared/tool" +require_relative "mcp/shared/tool/input_schema" +require_relative "mcp/shared/tool/response" +require_relative "mcp/shared/tool/annotations" + +require_relative "mcp/shared/prompt" +require_relative "mcp/shared/prompt/argument" +require_relative "mcp/shared/prompt/message" +require_relative "mcp/shared/prompt/result" + require_relative "mcp/server" -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" +require_relative "mcp/server/transports/stdio" module MCP class << self diff --git a/lib/mcp/server.rb b/lib/mcp/server.rb index 6dde615..7a406fa 100644 --- a/lib/mcp/server.rb +++ b/lib/mcp/server.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true require "json_rpc_handler" -require_relative "instrumentation" -require_relative "methods" +require_relative "shared/instrumentation" +require_relative "shared/methods" module MCP class Server diff --git a/lib/mcp/transports/stdio.rb b/lib/mcp/server/transports/stdio.rb similarity index 94% rename from lib/mcp/transports/stdio.rb rename to lib/mcp/server/transports/stdio.rb index b76b961..8c12aa9 100644 --- a/lib/mcp/transports/stdio.rb +++ b/lib/mcp/server/transports/stdio.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require_relative "../transport" +require_relative "../../shared/transport" require "json" module MCP diff --git a/lib/mcp/configuration.rb b/lib/mcp/shared/configuration.rb similarity index 100% rename from lib/mcp/configuration.rb rename to lib/mcp/shared/configuration.rb diff --git a/lib/mcp/content.rb b/lib/mcp/shared/content.rb similarity index 100% rename from lib/mcp/content.rb rename to lib/mcp/shared/content.rb diff --git a/lib/mcp/instrumentation.rb b/lib/mcp/shared/instrumentation.rb similarity index 100% rename from lib/mcp/instrumentation.rb rename to lib/mcp/shared/instrumentation.rb diff --git a/lib/mcp/methods.rb b/lib/mcp/shared/methods.rb similarity index 100% rename from lib/mcp/methods.rb rename to lib/mcp/shared/methods.rb diff --git a/lib/mcp/prompt.rb b/lib/mcp/shared/prompt.rb similarity index 100% rename from lib/mcp/prompt.rb rename to lib/mcp/shared/prompt.rb diff --git a/lib/mcp/prompt/argument.rb b/lib/mcp/shared/prompt/argument.rb similarity index 100% rename from lib/mcp/prompt/argument.rb rename to lib/mcp/shared/prompt/argument.rb diff --git a/lib/mcp/prompt/message.rb b/lib/mcp/shared/prompt/message.rb similarity index 100% rename from lib/mcp/prompt/message.rb rename to lib/mcp/shared/prompt/message.rb diff --git a/lib/mcp/prompt/result.rb b/lib/mcp/shared/prompt/result.rb similarity index 100% rename from lib/mcp/prompt/result.rb rename to lib/mcp/shared/prompt/result.rb diff --git a/lib/mcp/resource.rb b/lib/mcp/shared/resource.rb similarity index 100% rename from lib/mcp/resource.rb rename to lib/mcp/shared/resource.rb diff --git a/lib/mcp/resource/contents.rb b/lib/mcp/shared/resource/contents.rb similarity index 100% rename from lib/mcp/resource/contents.rb rename to lib/mcp/shared/resource/contents.rb diff --git a/lib/mcp/resource/embedded.rb b/lib/mcp/shared/resource/embedded.rb similarity index 100% rename from lib/mcp/resource/embedded.rb rename to lib/mcp/shared/resource/embedded.rb diff --git a/lib/mcp/resource_template.rb b/lib/mcp/shared/resource_template.rb similarity index 100% rename from lib/mcp/resource_template.rb rename to lib/mcp/shared/resource_template.rb diff --git a/lib/mcp/string_utils.rb b/lib/mcp/shared/string_utils.rb similarity index 100% rename from lib/mcp/string_utils.rb rename to lib/mcp/shared/string_utils.rb diff --git a/lib/mcp/tool.rb b/lib/mcp/shared/tool.rb similarity index 100% rename from lib/mcp/tool.rb rename to lib/mcp/shared/tool.rb diff --git a/lib/mcp/tool/annotations.rb b/lib/mcp/shared/tool/annotations.rb similarity index 100% rename from lib/mcp/tool/annotations.rb rename to lib/mcp/shared/tool/annotations.rb diff --git a/lib/mcp/tool/input_schema.rb b/lib/mcp/shared/tool/input_schema.rb similarity index 100% rename from lib/mcp/tool/input_schema.rb rename to lib/mcp/shared/tool/input_schema.rb diff --git a/lib/mcp/tool/response.rb b/lib/mcp/shared/tool/response.rb similarity index 100% rename from lib/mcp/tool/response.rb rename to lib/mcp/shared/tool/response.rb diff --git a/lib/mcp/transport.rb b/lib/mcp/shared/transport.rb similarity index 100% rename from lib/mcp/transport.rb rename to lib/mcp/shared/transport.rb diff --git a/lib/mcp/version.rb b/lib/mcp/shared/version.rb similarity index 100% rename from lib/mcp/version.rb rename to lib/mcp/shared/version.rb diff --git a/mcp.gemspec b/mcp.gemspec index c598f45..0faf14d 100644 --- a/mcp.gemspec +++ b/mcp.gemspec @@ -1,6 +1,6 @@ # frozen_string_literal: true -require_relative "lib/mcp/version" +require_relative "lib/mcp/shared/version" Gem::Specification.new do |spec| spec.name = "mcp" diff --git a/test/model_context_protocol/transports/stdio_transport_test.rb b/test/mcp/server/transports/stdio_transport_test.rb similarity index 98% rename from test/model_context_protocol/transports/stdio_transport_test.rb rename to test/mcp/server/transports/stdio_transport_test.rb index 2fe5df2..c8e20fe 100644 --- a/test/model_context_protocol/transports/stdio_transport_test.rb +++ b/test/mcp/server/transports/stdio_transport_test.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "test_helper" -require "mcp/transports/stdio" +require "mcp/server/transports/stdio" require "json" module MCP diff --git a/test/model_context_protocol/server_test.rb b/test/mcp/server_test.rb similarity index 100% rename from test/model_context_protocol/server_test.rb rename to test/mcp/server_test.rb diff --git a/test/model_context_protocol/configuration_test.rb b/test/mcp/shared/configuration_test.rb similarity index 100% rename from test/model_context_protocol/configuration_test.rb rename to test/mcp/shared/configuration_test.rb diff --git a/test/model_context_protocol/instrumentation_test.rb b/test/mcp/shared/instrumentation_test.rb similarity index 100% rename from test/model_context_protocol/instrumentation_test.rb rename to test/mcp/shared/instrumentation_test.rb diff --git a/test/model_context_protocol/methods_test.rb b/test/mcp/shared/methods_test.rb similarity index 100% rename from test/model_context_protocol/methods_test.rb rename to test/mcp/shared/methods_test.rb diff --git a/test/model_context_protocol/prompt_test.rb b/test/mcp/shared/prompt_test.rb similarity index 100% rename from test/model_context_protocol/prompt_test.rb rename to test/mcp/shared/prompt_test.rb diff --git a/test/model_context_protocol/string_utils_test.rb b/test/mcp/shared/string_utils_test.rb similarity index 100% rename from test/model_context_protocol/string_utils_test.rb rename to test/mcp/shared/string_utils_test.rb diff --git a/test/model_context_protocol/tool/input_schema_test.rb b/test/mcp/shared/tool/input_schema_test.rb similarity index 100% rename from test/model_context_protocol/tool/input_schema_test.rb rename to test/mcp/shared/tool/input_schema_test.rb diff --git a/test/model_context_protocol/tool_test.rb b/test/mcp/tool_test.rb similarity index 100% rename from test/model_context_protocol/tool_test.rb rename to test/mcp/tool_test.rb