Skip to content

Releases: txn2/mcp-s3

mcp-s3-v1.1.0

03 Apr 08:45
Immutable release. Only release title and notes can be modified.
e9e6203

Choose a tag to compare

Dynamic Connection Management

This release adds runtime connection management to mcp-s3, enabling downstream projects like mcp-data-platform to dynamically add and remove S3 connections without restarting the server. This matches the pattern established by mcp-trino v1.2.0.

Highlights

Runtime Add/Remove Connections (#71)

The multiserver.Manager now supports fully thread-safe dynamic connection management:

// Add a new connection at runtime
err := manager.AddConnection(multiserver.ConnectionConfig{
    Name:     "data-lake",
    Region:   "eu-west-1",
    Endpoint: "https://s3.eu-west-1.amazonaws.com",
}, false)

// Replace an existing connection (closes old client, updates config)
err = manager.AddConnection(multiserver.ConnectionConfig{
    Name:   "data-lake",
    Region: "us-west-2",  // updated region
}, false)

// Remove a connection (closes client, removes config)
err = manager.RemoveConnection("data-lake")

New Public API

Addition Package Description
ConnectionManager interface pkg/tools Abstraction for dynamic connection management; satisfied by multiserver.Manager
WithConnectionManager() option pkg/tools Configures a Toolkit with a connection manager
Toolkit.RemoveClient() pkg/tools Removes a locally-added client by name

Thread Safety Improvements

All Manager read methods (ListConnections, HasConnection, DefaultConnectionName) now acquire RLock for safe concurrent access. The Toolkit delegates to the provider on each GetClient call (no stale client cache), so Manager.RemoveConnection takes immediate effect across all tool invocations.

Default Connection Protection

The default/primary connection is protected from both replacement and removal via AddConnection/RemoveConnection, preventing accidental disconnection of the bootstrap connection.

Behavioral Changes

Operation v1.0.0 v1.1.0
AddConnection with existing name Returns error Replaces config, closes old client
AddConnection on default connection Allowed Returns error
RemoveConnection on default connection Silently removes Returns error
RemoveConnection on non-existent name Silent no-op Returns error
Manager read methods No locking RLock protected
Toolkit.GetClient via provider Cached permanently in Toolkit Delegated to provider each call

Dependency Updates

  • github.com/modelcontextprotocol/go-sdk v1.3.1 → v1.4.1
  • github.com/aws/aws-sdk-go-v2 group updated (multiple patches)
  • golangci-lint updated
  • CI action bumps: codecov, cosign-installer, codeql-action, deploy-pages, sbom-action, docker actions, setup-go

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-s3

Claude Code CLI

claude mcp add s3 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -- mcp-s3

Docker

docker pull ghcr.io/txn2/mcp-s3:v1.1.0

Verification

All release artifacts are signed with Cosign:

cosign verify-blob --bundle mcp-s3_1.1.0_linux_amd64.tar.gz.sigstore.json \
  mcp-s3_1.1.0_linux_amd64.tar.gz

Full Changelog: v1.0.0...v1.1.0

mcp-s3-v1.0.0

28 Feb 05:05
Immutable release. Only release title and notes can be modified.
ec0350d

Choose a tag to compare

Changelog

Features

  • ec0350d: feat: add Tool.Title, OpenWorldHint=true, and OutputSchema for all tools (#45) (@cjimti)

Others

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-s3

Claude Code CLI

claude mcp add s3 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -- mcp-s3

Docker

docker pull ghcr.io/txn2/mcp-s3:v1.0.0

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-s3_1.0.0_linux_amd64.tar.gz.sigstore.json \
  mcp-s3_1.0.0_linux_amd64.tar.gz

mcp-s3-v0.2.1

16 Feb 20:00
Immutable release. Only release title and notes can be modified.
b76516b

Choose a tag to compare

What's New

Default Icons for All Tools

All 9 S3 tools now include a default SVG icon in tools/list responses. MCP clients that support icons (e.g., Claude Desktop) will render these alongside tool names, improving visual discoverability.

Tools with icons: s3_list_connections, s3_list_buckets, s3_list_objects, s3_get_object, s3_get_object_metadata, s3_put_object, s3_copy_object, s3_delete_object, s3_presign_url

Icon Customization API

A new 3-level priority chain lets consumers override icons at any level:

  1. Per-tool via WithIcon() tool option — highest priority
  2. Toolkit-wide via WithIcons() toolkit option — override specific tools by name
  3. Built-in default — all tools get the S3 cloud-storage SVG automatically
// Override a specific tool's icon at registration time
toolkit := tools.NewToolkit(client, cfg,
    tools.WithIcons(map[tools.ToolName][]mcp.Icon{
        tools.ToolListBuckets: {{Source: "https://example.com/custom.svg", MIMEType: "image/svg+xml"}},
    }),
)

This follows the same resolution pattern already used by WithDescriptions() and WithAnnotations().

For mcp-data-platform Users

The mcp-data-platform icons middleware can override these defaults via YAML configuration — no code changes needed:

icons:
  enabled: true
  tools:
    s3_list_buckets:
      src: "https://example.com/custom-s3.svg"
      mime_type: "image/svg+xml"

Files Changed

File Change
icons/s3.svg New — default S3 tool icon
pkg/tools/icons.go New — icon resolution with 3-level priority chain
pkg/tools/icons_test.go New — comprehensive tests for all priority levels
pkg/tools/toolkit.go Add icons map to Toolkit struct
pkg/tools/options.go Add WithIcons() and WithIcon() options
All 9 tool files Add Icons field to each tool registration

Upgrading

This is a backward-compatible minor release. No configuration changes are required. Icons appear automatically in tools/list responses — clients that don't support icons simply ignore the field.

go get github.com/txn2/mcp-s3@v0.2.1

Changelog

  • feat: add default icons for all tools (#39)

Full diff: v0.2.0...v0.2.1

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-s3

Claude Code CLI

claude mcp add s3 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -- mcp-s3

Docker

docker pull ghcr.io/txn2/mcp-s3:v0.2.1

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-s3_0.2.1_linux_amd64.tar.gz.sigstore.json \
  mcp-s3_0.2.1_linux_amd64.tar.gz

mcp-s3-v0.2.0

16 Feb 04:48
Immutable release. Only release title and notes can be modified.
f1550f7

Choose a tag to compare

Highlights

MCP Tool Annotations & Configurable Descriptions

All 9 S3 tools now declare MCP tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint), enabling AI agents to understand tool behavior without executing them. Read-only tools like s3_list_buckets and s3_get_object are annotated as safe and idempotent, while write tools like s3_delete_object declare appropriate destructive hints.

New toolkit options allow downstream projects to override annotations and descriptions at registration time:

toolkit := tools.NewToolkit(client,
    tools.WithDescriptions(map[tools.ToolName]string{
        tools.ToolGetObject: "Custom description for your deployment",
    }),
    tools.WithAnnotations(map[tools.ToolName]*mcp.ToolAnnotations{
        tools.ToolGetObject: {ReadOnlyHint: true, IdempotentHint: true},
    }),
)

This implements Phase 1 of the MCP protocol capabilities expansion planned for the downstream data platform, which identified tool annotations as "zero-risk, immediate value" — improving agent autonomy by eliminating unnecessary confirmation steps for read-only operations.

CI & Code Quality Upgrade

Brings mcp-s3 to parity with its sister projects (mcp-trino, mcp-datahub):

  • Linting: 5 linters → 24 (including revive with 22 rules, gosec, errorlint, gocritic, unparam, and more)
  • Makefile: Full 7-step make verify pipeline — tidy lint test coverage security deadcode build-check
  • Coverage: 89% test coverage with threshold enforcement (80% minimum); codecov.yml for PR patch coverage gates
  • Security: gosec + govulncheck with 0 findings

Dependencies

  • github.com/modelcontextprotocol/go-sdk v1.2.0 → v1.3.0
  • github.com/aws/aws-sdk-go-v2/service/s3 v1.95.1 → v1.96.0

What's Changed

Features

  • Add MCP tool annotations, configurable descriptions, and typed returns
  • Add WithAnnotations(), WithDescriptions(), WithAnnotation(), WithDescription() toolkit options

Code Quality

  • Upgrade .golangci.yml from 5 to 24 linters (matching mcp-trino)
  • Fix 263 lint issues across 32 files
  • Upgrade Makefile with full verification pipeline
  • Add codecov.yml for PR coverage enforcement
  • Update CLAUDE.md with verification docs and AI-specific rules
  • Add comprehensive tool registration tests via MCP in-memory transport

Dependencies

  • deps: bump github.com/modelcontextprotocol/go-sdk from 1.2.0 to 1.3.0 (#36)
  • deps: bump github.com/aws/aws-sdk-go-v2/service/s3 in the aws-sdk group (#33)
  • docker: bump alpine (#23, #31)
  • ci: bump actions/checkout, actions/setup-go, actions/setup-python, actions/deploy-pages, anchore/sbom-action, docker/login-action, github/codeql-action (#24-#37)

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-s3

Claude Code CLI

claude mcp add s3 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -- mcp-s3

Docker

docker pull ghcr.io/txn2/mcp-s3:v0.2.0

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-s3_0.2.0_linux_amd64.tar.gz.sigstore.json \
  mcp-s3_0.2.0_linux_amd64.tar.gz

mcp-s3-v0.1.4

20 Jan 03:48
a77e84e

Choose a tag to compare

Overview

This release migrates mcp-s3 to the official MCP SDK (modelcontextprotocol/go-sdk v1.2.0), bringing improved type safety, better schema generation, and alignment with the broader MCP ecosystem.

What's Changed

Official MCP SDK

  • Migrated from mark3labs/mcp-go to modelcontextprotocol/go-sdk
  • Aligns with sibling projects mcp-trino and mcp-datahub
  • Better compatibility with MCP clients and tooling

Improved Type Safety

  • All tool inputs now use strongly-typed Go structs
  • Automatic JSON schema generation from struct tags
  • Compile-time validation of tool parameters

Enhanced Tool Registration

// Register all tools
toolkit.RegisterAll(server)

// Register specific tools only
toolkit.Register(server, tools.ToolListBuckets, tools.ToolGetObject)

// Register with per-tool middleware
toolkit.RegisterWith(server, tools.ToolPutObject,
    tools.WithPerToolMiddleware(myMiddleware))

New Helper Functions

tools.AllTools()    // Returns all 9 tool names
tools.ReadTools()   // Returns read-only tools
tools.WriteTools()  // Returns write tools (put, delete, copy)

Simplified Middleware

New Before/After pattern replaces the Wrap pattern:

type ToolMiddleware interface {
    Before(ctx context.Context, tc *ToolContext) (context.Context, error)
    After(ctx context.Context, tc *ToolContext, result *mcp.CallToolResult, err error) (*mcp.CallToolResult, error)
}

Breaking Changes

For Library Consumers

Server Creation:

// Before
s := server.NewMCPServer("mcp-s3", "1.0.0")
toolkit.RegisterTools(s)
server.ServeStdio(s)

// After
s := mcp.NewServer(&mcp.Implementation{Name: "mcp-s3", Version: "1.0.0"}, nil)
toolkit.RegisterAll(s)
s.Run(ctx, &mcp.StdioTransport{})

Middleware Interface:

// Before: Wrap pattern
func (m *MyMiddleware) Wrap(next ToolHandler) ToolHandler { ... }

// After: Before/After pattern
func (m *MyMiddleware) Before(ctx, tc) (context.Context, error) { ... }
func (m *MyMiddleware) After(ctx, tc, result, err) (*mcp.CallToolResult, error) { ... }

For End Users

No changes required. All 9 MCP tools work exactly as before:

  • s3_list_buckets
  • s3_list_objects
  • s3_get_object
  • s3_get_object_metadata
  • s3_put_object
  • s3_delete_object
  • s3_copy_object
  • s3_presign_url
  • s3_list_connections

Quality Metrics

Metric Status
Unit Tests ✅ All passing
Race Detection ✅ No races
Linting ✅ 0 issues
Security Scan ✅ 0 issues
Code Coverage ✅ >80% all packages
Cyclomatic Complexity ✅ All functions ≤10

Test Coverage by Package

Package Coverage
internal/server 83.3%
pkg/client 97.1%
pkg/extensions 91.2%
pkg/integration 93.5%
pkg/multiserver 93.0%
pkg/tools 81.8%

Integration Testing

All tools verified against SeaweedFS (S3-compatible storage):

Tool Result
s3_put_object
s3_list_objects
s3_get_object
s3_get_object_metadata
s3_copy_object
s3_delete_object
s3_presign_url
s3_list_connections
s3_list_buckets ✅*

*Verified working; SeaweedFS has a known limitation with bucket listing in anonymous mode.

Upgrade Instructions

Using as Standalone Server

# Pull latest
go install github.com/txn2/mcp-s3/cmd/mcp-s3@v0.1.4

# Or build from source
git pull
go build -o mcp-s3 ./cmd/mcp-s3

Using as Library

go get github.com/txn2/mcp-s3@v0.1.4

Update imports:

// Update import
import "github.com/modelcontextprotocol/go-sdk/mcp"

// Update server creation
s := mcp.NewServer(&mcp.Implementation{
    Name:    "my-server",
    Version: "1.0.0",
}, nil)

// Update toolkit registration
toolkit := tools.NewToolkit(client)
toolkit.RegisterAll(s)

// Update server run
if err := s.Run(ctx, &mcp.StdioTransport{}); err != nil {
    log.Fatal(err)
}

Dependencies

Updated

  • github.com/modelcontextprotocol/go-sdk v1.2.0 (replaces mark3labs/mcp-go)

Unchanged

  • github.com/aws/aws-sdk-go-v2 - AWS SDK for S3 operations

Changelog

Others

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-s3

Claude Code CLI

claude mcp add s3 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -- mcp-s3

Docker

docker pull ghcr.io/txn2/mcp-s3:v0.1.4

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-s3_0.1.4_linux_amd64.tar.gz.sigstore.json \
  mcp-s3_0.1.4_linux_amd64.tar.gz

mcp-s3-v0.1.3

18 Jan 22:32
63ddfaf

Choose a tag to compare

Bug Fixes

Fix mcpb Bundle Startup Crash

Fixed a critical bug where the server would crash on startup when used with mcpb (Model Context Protocol Bundler).

Problem: When mcpb doesn't have a user value for an optional field, it passes the literal template string (e.g., ${user_config.aws_profile}) to the environment. The AWS SDK reads these environment variables directly, causing:

  • AWS_PROFILE=${user_config.aws_profile} → crash with "failed to get shared config profile"
  • AWS_REGION=${user_config.aws_region} → invalid region errors

Solution: Added clearUnresolvedAWSEnvVars() to sanitize AWS environment variables before the SDK reads them. Unresolved template variables are now detected and cleared for:

  • AWS_PROFILE
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN
  • AWS_REGION

Fix getEnvOrDefault() Template Handling

The getEnvOrDefault() function now properly detects unresolved template variables and returns the default value instead of the template string.

Improvements

mcpb Configuration Field Ordering

Moved "Connection Name" (s3_connection_name) to be the first field in the mcpb configuration UI, matching the pattern used by mcp-trino.

Testing

Verified against:

  • SeaweedFS (local Docker)
  • MinIO (live instance at minio.pmgsc-data.org)

All unit tests, linting, and security scans pass.

Files Changed

  • pkg/client/client.go - Add clearUnresolvedAWSEnvVars()
  • pkg/client/config.go - Fix getEnvOrDefault(), add SanitizeAWSEnvVars()
  • pkg/client/config_test.go - Add tests for template sanitization
  • mcpb/manifest.json - Reorder s3_connection_name to first position

mcp-s3-v0.1.1

18 Jan 17:22
b55d09f

Choose a tag to compare

Overview

This release fixes critical issues with Claude Desktop integration via mcpb and enables multi-connection configuration through the manifest.

Bug Fixes

Unresolved Template Variables Cause Startup Failures

Problem: When users install mcp-s3 via mcpb and don't configure optional fields (like AWS_PROFILE), mcpb passes through unresolved template variables as literal strings. This caused errors like:

Error: failed to get shared config profile, ${user_config.aws_profile}

Solution: Added defensive handling in FromEnv() to detect and sanitize unresolved template variables (strings matching ${...} pattern), treating them as empty strings.

Affected fields:

  • S3_ENDPOINT
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN
  • AWS_PROFILE
  • S3_CONNECTION_NAME

New Features

Multi-Connection Configuration via mcpb

Users can now configure multiple S3 connections through the Claude Desktop mcpb manifest:

  • Connection Name (s3_connection_name): Display name for the primary connection (default: "s3")
  • Additional Connections (s3_additional_connections): JSON-formatted additional S3 connections

Example additional connections configuration:

{
  "staging": {
    "endpoint": "https://staging.s3.example.com",
    "access_key_id": "STAGING_KEY",
    "secret_access_key": "STAGING_SECRET"
  },
  "backup": {
    "endpoint": "https://backup.s3.example.com",
    "access_key_id": "BACKUP_KEY",
    "secret_access_key": "BACKUP_SECRET"
  }
}

Files Changed

  • pkg/client/config.go - Added template variable sanitization
  • pkg/client/config_test.go - Added tests for template variable handling
  • mcpb/manifest.json - Added multi-connection configuration fields

Upgrade Notes

This is a backward-compatible release. No configuration changes are required for existing users.

Verification

  • All unit tests pass
  • Linting passes (golangci-lint)
  • Security scan passes (gosec)
  • Manual testing with Claude Desktop confirms fix

Changelog

Others

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-s3

Claude Code CLI

claude mcp add s3 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -- mcp-s3

Docker

docker pull ghcr.io/txn2/mcp-s3:v0.1.1

Verification

All release artifacts are signed with Cosign. Verify with:

cosign verify-blob --bundle mcp-s3_0.1.1_linux_amd64.tar.gz.sigstore.json \
  mcp-s3_0.1.1_linux_amd64.tar.gz

mcp-s3-v0.1.0

18 Jan 08:43
970dff3

Choose a tag to compare

Initial Release

mcp-s3 is a generic, open-source MCP (Model Context Protocol) server for Amazon S3 and S3-compatible object storage. It enables AI assistants like Claude to interact with your object storage through a standardized protocol.

Highlights

  • Universal S3 Compatibility - Works with AWS S3, MinIO, SeaweedFS, LocalStack, Ceph, and any S3-compatible storage
  • Secure by Default - Read-only mode enabled out of the box; write operations require explicit opt-in
  • Composable Architecture - Use standalone or import as a Go library into your own MCP server
  • Multi-Connection Support - Configure multiple S3 endpoints with YAML/JSON configuration files

MCP Tools

Tool Description
s3_list_buckets List accessible S3 buckets
s3_list_objects List objects with prefix, delimiter, and pagination
s3_get_object Retrieve object content
s3_get_object_metadata Get object metadata (HEAD request)
s3_put_object Upload object (disabled by default)
s3_delete_object Delete object (disabled by default)
s3_copy_object Copy object within or between buckets
s3_presign_url Generate presigned GET/PUT URLs
s3_list_connections List configured S3 connections

Installation

Homebrew (macOS)

brew install txn2/tap/mcp-s3

Docker

docker pull ghcr.io/txn2/mcp-s3:v0.1.0

Claude Code CLI

claude mcp add s3 \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=your-key \
  -e AWS_SECRET_ACCESS_KEY=your-secret \
  -- mcp-s3

Binary Download

Download from the release assets for your platform.

Supported Platforms

OS Architecture
Linux amd64, arm64
macOS amd64, arm64
Windows amd64

Configuration

Set environment variables to configure the server:

Variable Description Default
AWS_REGION AWS region us-east-1
AWS_ACCESS_KEY_ID Access key (required)
AWS_SECRET_ACCESS_KEY Secret key (required)
S3_ENDPOINT Custom endpoint for S3-compatible storage (none)
S3_USE_PATH_STYLE Use path-style URLs false
MCP_S3_EXT_READONLY Block write operations true
MCP_S3_MAX_GET_SIZE Max bytes for GET 10MB

Verification

All release artifacts are signed with Cosign using keyless signing. Verify with:

cosign verify-blob \
  --bundle mcp-s3_0.1.0_linux_amd64.tar.gz.sigstore.json \
  mcp-s3_0.1.0_linux_amd64.tar.gz

Documentation

License

Apache 2.0

Changelog

Others

  • eed1d6e: Add .golangci.yml configuration for linting setup (cjimti cj@imti.co)
  • 70ca9f9: Add .goreleaser.yml for release automation configuration (cjimti cj@imti.co)
  • d08e5de: Add CI workflows and Dependabot configuration for automation (cjimti cj@imti.co)
  • 48e1ea8: Add CNAME file for custom domain configuration (cjimti cj@imti.co)
  • f8e8603: Add Dockerfile for containerized builds and runtime setup (cjimti cj@imti.co)
  • 0f95c23: Add GitHub workflows for CodeQL, docs deployment, and OpenSSF Scorecard (cjimti cj@imti.co)
  • 563d33c: Add Makefile for build, test, and workflow automation (cjimti cj@imti.co)
  • 4e29fe3: Add S3 client, audit logging, and middleware implementations (cjimti cj@imti.co)
  • 1594c08: Add SizeLimitInterceptor for enforcing object size limits (cjimti cj@imti.co)
  • 2be7cf6: Add #nosec annotation to bypass false positive for user-provided config file path (cjimti cj@imti.co)
  • 5831470: Add a GitHub pull request template for standardized contributions (cjimti cj@imti.co)
  • 5cf16b4: Add comprehensive documentation including changelog, configuration reference, tools API, and troubleshooting guide (cjimti cj@imti.co)
  • c51e199: Add comprehensive unit tests for extensions package (cjimti cj@imti.co)
  • 3608e2f: Add foundational project documentation and metadata files (cjimti cj@imti.co)
  • 5d0d05d: Add go.mod and go.sum for module dependencies and version management (cjimti cj@imti.co)
  • 24dfc54: Add import for mcp-s3 client package in server implementation (cjimti cj@imti.co)
  • ad986b6: Add import for mcp-s3 client package in tools implementation (cjimti cj@imti.co)
  • bf53597: Add initial documentation for MCP server and library usage (cjimti cj@imti.co)
  • b2b9782: Add initial documentation with README and CONTRIBUTING guidelines (cjimti cj@imti.co)
  • a666a53: Add missing import for tools package in prefixacl extension (cjimti cj@imti.co)
  • 80c4d3f: Add missing import for tools package in readonly extension (cjimti cj@imti.co)
  • 2a23deb: Add missing import for tools package in sizelimit extension (cjimti cj@imti.co)
  • 3b7fd90: Add missing imports for tools and client packages across extensions and tools modules (cjimti cj@imti.co)
  • 970dff3: Align release infrastructure with mcp-trino's working patterns (#12) (Craig Johnston cj@imti.co)
  • ff8025a: Clamp OptionalInt32 return value to int32 range to prevent overflow (cjimti cj@imti.co)
  • 778f04f: Fix audit entry argument sanitization by converting to map before processing (cjimti cj@imti.co)
  • 996d56c: Fix stale Docker image digests that caused the v0.1.0 release to fail. (#11) (Craig Johnston cj@imti.co)
  • 250f60b: Houskeeping/quality (#9) (Craig Johnston cj@imti.co)
  • f08fc8f: Houskeeping/release (#10) (Craig Johnston cj@imti.co)
  • 3c0bc57: Initial commit (Craig Johnston cj@imti.co)
  • ba0f310: Refactor Intercept method to improve argument extraction consistency in PrefixACLInterceptor (cjimti cj@imti.co)
  • cf9818a: Refactor argument extraction across tool handlers to use GetArgs method (cjimti cj@imti.co)
  • fe35712: Refactor argument extraction in auth and headers to improve consistency using GetArgs (cjimti cj@imti.co)
  • 1d3d563: Refactor argument extraction in errors, interceptor, and logging to improve consistency by using GetArgs (cjimti cj@imti.co)
  • 6406736: Refactor argument extraction in handlePresignURL to use GetArgs for consistency (cjimti cj@imti.co)
  • 4ffd305: Refactor argument extraction in put_object to use GetArgs for consistency (cjimti cj@imti.co)
  • dcee407: Refactor argument extraction in sizelimit to improve consistency with other handlers (cjimti cj@imti.co)
  • 73e96e9: Refactor argument extraction in toolkit to handle type assertion more safely and improve consistency (cjimti cj@imti.co)
  • 5d9f5ca: Refactor argument handling in list_buckets and list_objects to use GetArgs for consistency (cjimti cj@imti.co)
  • 8a9d6ae: Remove unused error constants and helper functions from errors.go in tools package (cjimti cj@imti.co)
  • 57629c0: Update .gitignore to include .idea/ and settings.local.json (cjimti cj@imti.co)
  • 2d8e526: Update Docker base images to fixed digests for reproducible builds (cjimti cj@imti.co)
  • 7b00d3a: Update GitHub workflow actions and permissions for improved security and keyless signing (cjimti cj@imti.co)
  • 2d03dca: Update GitHub workflow actions to latest stable versions (cjimti cj@imti.co)
  • d09fd30: Update GitHub workflow actions to latest stable versions and hashes (cjimti cj@imti.co)
  • e83b3d3: Update GitHub workflow actions to simplified version tags (cjimti cj@imti.co)
  • 2adc0bd: Update MkDocs navigation and pin workflow actions to fixed versions (cjimti cj@imti.co)
  • c99f956: Update .gitignore to exclude MkDocs output, build artifacts, and MCP temporary files (cjimti cj@imti.co)
  • fd38026: Update .golangci.yml to streamline linter configuration and include new settings (cjimti cj@imti.co)
  • 88cd867: ci: bump actions/checkout from 4 to 6 (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
  • 813ad6a: ci: bump actions/setup-go from 5 to 6 (dependabot[bot] <49699333+depen...
Read more