Releases: txn2/mcp-s3
mcp-s3-v1.1.0
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-sdkv1.3.1 → v1.4.1github.com/aws/aws-sdk-go-v2group updated (multiple patches)golangci-lintupdated- CI action bumps: codecov, cosign-installer, codeql-action, deploy-pages, sbom-action, docker actions, setup-go
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-s3Claude 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-s3Docker
docker pull ghcr.io/txn2/mcp-s3:v1.1.0Verification
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.gzFull Changelog: v1.0.0...v1.1.0
mcp-s3-v1.0.0
Changelog
Features
Others
- 84f1fde: ci: bump github/codeql-action from 4.32.3 to 4.32.4 (#41) (@dependabot[bot])
- de65e76: ci: bump goreleaser/goreleaser-action from 6.4.0 to 7.0.0 (#40) (@dependabot[bot])
- 2a14391: deps: bump github.com/modelcontextprotocol/go-sdk from 1.3.0 to 1.3.1 (#43) (@dependabot[bot])
- ec400a2: deps: bump the aws-sdk group with 2 updates (#42) (@dependabot[bot])
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-s3Claude 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-s3Docker
docker pull ghcr.io/txn2/mcp-s3:v1.0.0Verification
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.gzmcp-s3-v0.2.1
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:
- Per-tool via
WithIcon()tool option — highest priority - Toolkit-wide via
WithIcons()toolkit option — override specific tools by name - 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.1Changelog
- feat: add default icons for all tools (#39)
Full diff: v0.2.0...v0.2.1
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-s3Claude 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-s3Docker
docker pull ghcr.io/txn2/mcp-s3:v0.2.1Verification
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.gzmcp-s3-v0.2.0
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 verifypipeline —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-sdkv1.2.0 → v1.3.0github.com/aws/aws-sdk-go-v2/service/s3v1.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.ymlfrom 5 to 24 linters (matching mcp-trino) - Fix 263 lint issues across 32 files
- Upgrade Makefile with full verification pipeline
- Add
codecov.ymlfor PR coverage enforcement - Update
CLAUDE.mdwith 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-s3Claude 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-s3Docker
docker pull ghcr.io/txn2/mcp-s3:v0.2.0Verification
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.gzmcp-s3-v0.1.4
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-gotomodelcontextprotocol/go-sdk - Aligns with sibling projects
mcp-trinoandmcp-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_bucketss3_list_objectss3_get_objects3_get_object_metadatas3_put_objects3_delete_objects3_copy_objects3_presign_urls3_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-s3Using as Library
go get github.com/txn2/mcp-s3@v0.1.4Update 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-sdkv1.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-s3Claude 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-s3Docker
docker pull ghcr.io/txn2/mcp-s3:v0.1.4Verification
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.gzmcp-s3-v0.1.3
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_PROFILEAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKENAWS_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- AddclearUnresolvedAWSEnvVars()pkg/client/config.go- FixgetEnvOrDefault(), addSanitizeAWSEnvVars()pkg/client/config_test.go- Add tests for template sanitizationmcpb/manifest.json- Reorders3_connection_nameto first position
mcp-s3-v0.1.1
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_ENDPOINTAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKENAWS_PROFILES3_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 sanitizationpkg/client/config_test.go- Added tests for template variable handlingmcpb/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
- 5d64163: ci: bump actions/checkout from 4 to 6 (#14) (@dependabot[bot])
- b55d09f: ci: bump actions/setup-python from 5 to 6 (#17) (@dependabot[bot])
- 23f36bb: ci: bump actions/upload-pages-artifact from 3 to 4 (#18) (@dependabot[bot])
- 7b00c79: ci: bump anchore/sbom-action from 0.21.0 to 0.21.1 (#16) (@dependabot[bot])
- ae470a9: ci: bump github/codeql-action from 3.28.18 to 4.31.10 (#15) (@dependabot[bot])
- a1fd95f: docker: bump alpine from 3.21 to 3.23 (#13) (@dependabot[bot])
- 7c1e031: ix Unresolved Template Variables + Enable Multiple Connections (#19) (@cjimti)
Installation
Homebrew (macOS)
brew install txn2/tap/mcp-s3Claude 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-s3Docker
docker pull ghcr.io/txn2/mcp-s3:v0.1.1Verification
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.gzmcp-s3-v0.1.0
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-s3Docker
docker pull ghcr.io/txn2/mcp-s3:v0.1.0Claude 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-s3Binary 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.gzDocumentation
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
#nosecannotation 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-s3client package in server implementation (cjimti cj@imti.co) - ad986b6: Add import for
mcp-s3client 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
toolsandclientpackages 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
OptionalInt32return 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
Interceptmethod to improve argument extraction consistency inPrefixACLInterceptor(cjimti cj@imti.co) - cf9818a: Refactor argument extraction across tool handlers to use
GetArgsmethod (cjimti cj@imti.co) - fe35712: Refactor argument extraction in
authandheadersto improve consistency usingGetArgs(cjimti cj@imti.co) - 1d3d563: Refactor argument extraction in
errors,interceptor, andloggingto improve consistency by usingGetArgs(cjimti cj@imti.co) - 6406736: Refactor argument extraction in
handlePresignURLto useGetArgsfor consistency (cjimti cj@imti.co) - 4ffd305: Refactor argument extraction in
put_objectto useGetArgsfor consistency (cjimti cj@imti.co) - dcee407: Refactor argument extraction in
sizelimitto improve consistency with other handlers (cjimti cj@imti.co) - 73e96e9: Refactor argument extraction in
toolkitto handle type assertion more safely and improve consistency (cjimti cj@imti.co) - 5d9f5ca: Refactor argument handling in
list_bucketsandlist_objectsto useGetArgsfor consistency (cjimti cj@imti.co) - 8a9d6ae: Remove unused error constants and helper functions from
errors.gointoolspackage (cjimti cj@imti.co) - 57629c0: Update .gitignore to include
.idea/andsettings.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
.gitignoreto exclude MkDocs output, build artifacts, and MCP temporary files (cjimti cj@imti.co) - fd38026: Update
.golangci.ymlto 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...