Skyhook
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Skyhooklist objects in my bucket with prefix 'drafts' and show latest versions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Skyhook
MCP server for Amazon S3 (and S3-compatible stores). Sign in with Google, connect a bucket — or start in a private sandbox — then point Claude, Cursor, or any MCP client at Skyhook.
Re-uploading the same key versions the document. Fetch without version_id always returns latest.
Tools
Tool | What it does |
| Upload. Same key → new version; the key points at latest. |
| List objects (latest of each key), optional prefix. |
| Read bytes. Omit |
| Presigned GET URL (latest, or a specific |
| Size, content type, version, etag. Defaults to latest. |
| History for a key, newest first, |
| Delete a key (all versions) or a single |
| Bucket, region, storage mode. Never returns secrets. |
Related MCP server: s3-mcp
MCP client
After Google sign-in, mint a bearer token (sk_hk_…) in the console.
{
"mcpServers": {
"skyhook": {
"url": "https://YOUR-HOST/api/mcp",
"headers": {
"Authorization": "Bearer sk_hk_…"
}
}
}
}Transport is Streamable HTTP (POST /api/mcp). Requests without a valid token get 401.
Versioning
Each upload of a key records a new revision (up to 50 kept).
The object key is a pointer at latest.
s3_read/s3_stat/s3_get_urlwith noversion_idalways fetch latest.Pass
version_idto read or delete a historical revision.s3_deletewithoutversion_idremoves the key and all versions; withversion_idit drops that revision and retargets remaining latest.If the S3 bucket has versioning enabled, Skyhook stores the S3
VersionId. Otherwise history is kept in Skyhook (bodies retained when they fit in the sandbox size cap).
Storage
Until AWS / R2 / MinIO credentials are saved, uploads land in a per-user sandbox. Paste a bucket, region, access key, and secret in the console to switch to real S3. Compatible with path-style endpoints (MinIO, R2).
Auth
Skyhook identities are Google (and X) accounts. Every object, token, and connection is scoped to the signed-in user. AWS secrets are encrypted at rest (AES-256-GCM). MCP tokens are stored as SHA-256 hashes — the plaintext sk_hk_… value is shown once.
Develop
npm install
npm run devApp at http://localhost:8080. Local preview uses embedded Postgres (PGLite) when DATABASE_URL is unset.
npm run typecheck
npm run buildEnvironment
Do not commit a .env. Set these in your host:
Variable | Required | Purpose |
| production | Neon / Postgres. Omit locally to use PGLite. |
| production | Session + secret-encryption key. |
| production | Auth broker issuer (Google/X via broker). |
| production | Per-app OAuth client. |
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Persistent file storage for AI agents via MCP and curl. Upload, download, and version files.
Cloud-hosted MCP server for durable AI memory
Related MCP Servers
- AlicenseAqualityFmaintenanceA Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.23127MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server for AWS S3 integration using FastMCP and boto3. This server provides access to S3 functionality through MCP-compatible tools.101MIT
- AlicenseAqualityDmaintenanceMCP server for AWS S3 — list buckets, browse objects, upload/download files, and generate presigned URLs.761 npm4MIT
- AlicenseAqualityDmaintenanceMCP server for uploading, listing, and retrieving files on S3-compatible storage (AWS S3, DigitalOcean Spaces) with public/private access and temporary URLs.45 npmMIT