Class: LittleGhost::MCP::SigV4Signer
- Inherits:
-
Object
- Object
- LittleGhost::MCP::SigV4Signer
- Defined in:
- lib/little_ghost/mcp/client.rb
Overview
SigV4Signer adds AWS Signature Version 4 authentication to MCP requests.
Requires the application-provided aws-sigv4 gem and uses its normal AWS
credentials-provider chain unless one is supplied explicitly.
Instance Method Summary collapse
-
#call(request) ⇒ Object
Signs
requestin place immediately before transport. -
#initialize(service:, region:, credentials_provider: nil) ⇒ SigV4Signer
constructor
Configures signing for
serviceandregion.
Constructor Details
#initialize(service:, region:, credentials_provider: nil) ⇒ SigV4Signer
Configures signing for service and region.
772 773 774 775 776 777 778 779 780 781 |
# File 'lib/little_ghost/mcp/client.rb', line 772 def initialize(service:, region:, credentials_provider: nil) require "aws-sigv4" @signer = Aws::Sigv4::Signer.new( service: service, region: region, credentials_provider: credentials_provider ) rescue LoadError raise ConfigurationError, "MCP SigV4 signing requires the optional aws-sigv4 gem" end |
Instance Method Details
#call(request) ⇒ Object
Signs request in place immediately before transport.
784 785 786 787 788 789 790 791 792 |
# File 'lib/little_ghost/mcp/client.rb', line 784 def call(request) signature = @signer.sign_request( http_method: request.method, url: request.uri, headers: request.to_hash.transform_values { |values| Array(values).join(",") }, body: request.body ) signature.headers.each { |name, value| request[name] = value } end |