Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 3 min ago
teppi

Server definition

Hash
sha256:082d290b26843576e8a0cc72921228b09e0376ba497b6a4c71e94e9202967704
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "# Public IronShard object storage\n\nIronShard provides a public, S3-compatible object-storage sandbox for autonomous\nagents. This server does not use OAuth.\n\n## Bucket access\n\n- Call `create_bucket` to create a new, temporary sandbox bucket. It returns a\n `bucket_name` and `bucket_token`.\n- Pass both returned values unchanged to every subsequent bucket or object tool call.\n- The bucket token is a bearer credential. Keep it secret, use it only with this MCP\n server, and do not expose it in messages, logs, object contents, or URLs.\n- A bucket token grants read, write, and delete access only within its associated\n sandbox bucket. It does not grant access to other buckets or accounts.\n- Sandbox access expires after 30 days. If a token is invalid or expired, create a new\n bucket instead of repeatedly retrying the denied operation.\n- Public uploads and downloads may be temporarily unavailable even while metadata and\n listing operations remain available.\n\n## Storage semantics\n\n- Buckets contain objects identified by complete object keys.\n- `/` in an object key is a path-like convention, not a real directory.\n- ETags are storage entity tags and are not always content checksums.\n- In versioned buckets, deletion may create a delete marker rather than permanently\n erasing prior versions.\n\n## Requests and pagination\n\n- Upload and download tools return short-lived presigned URLs. Use PUT for uploads and\n GET for downloads. The URL is itself a bearer capability and requires no OAuth or\n additional authorization header.\n- Listing page tokens are opaque. Pass them unchanged and only with the same bucket,\n prefix, and recursive setting.\n\n## Further documentation\n\n- `ironshard://docs/object-storage` describes object keys, listings, integrity,\n presigned requests, versioning, and regions.\n", "tools": [ { "description": "Creates a 30-day bucket and its secret bearer token.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "create_bucket", "outputSchema": { "description": "Credentials for a newly created sandbox bucket.", "properties": { "bucket_name": { "description": "Name of the newly created bucket.", "minLength": 1, "type": "string" }, "bucket_token": { "description": "Bearer credential required with the bucket name for all other operations.", "minLength": 1, "type": "string" } }, "required": [ "bucket_name", "bucket_token" ], "type": "object" } }, { "description": "Delete an object; versioned buckets may retain older versions.", "inputSchema": { "additionalProperties": false, "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "bucket_token": { "description": "Secret bearer token returned with the public bucket.", "examples": [ "<bucket-token>" ], "minLength": 1, "type": "string" }, "object_key": { "description": "Complete object key, including path-like prefixes.", "examples": [ "data.parquet", "reports/summary.json" ], "minLength": 1, "type": "string" } }, "required": [ "bucket_name", "object_key", "bucket_token" ], "type": "object" }, "name": "delete_object", "outputSchema": { "description": "Confirmation that an object was deleted.", "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "deleted": { "description": "True when the object was deleted.", "type": "boolean" }, "object_key": { "description": "Complete object key, including path-like prefixes.", "examples": [ "data.parquet", "reports/summary.json" ], "minLength": 1, "type": "string" }, "version_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null } }, "required": [ "bucket_name", "object_key", "deleted" ], "type": "object" } }, { "description": "Return a secret, short-lived GET URL for an object's bytes.", "inputSchema": { "additionalProperties": false, "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "bucket_token": { "description": "Secret bearer token returned with the public bucket.", "examples": [ "<bucket-token>" ], "minLength": 1, "type": "string" }, "object_key": { "description": "Complete object key, including path-like prefixes.", "examples": [ "data.parquet", "reports/summary.json" ], "minLength": 1, "type": "string" } }, "required": [ "bucket_name", "object_key", "bucket_token" ], "type": "object" }, "name": "download_object", "outputSchema": { "description": "A short-lived URL and the HTTP method required to use it.", "properties": { "http_method": { "description": "HTTP method that must be used with the presigned URL.", "enum": [ "GET", "PUT" ], "type": "string" }, "url": { "description": "Short-lived presigned HTTPS URL containing all authorization information.", "type": "string" } }, "required": [ "url", "http_method" ], "type": "object" } }, { "description": "Return bucket details with storage and egress usage.", "inputSchema": { "additionalProperties": false, "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "bucket_token": { "description": "Secret bearer token returned with the public bucket.", "examples": [ "<bucket-token>" ], "minLength": 1, "type": "string" } }, "required": [ "bucket_name", "bucket_token" ], "type": "object" }, "name": "get_bucket", "outputSchema": { "description": "Public bucket details including its bucket-scoped quota and usage.", "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "created_at": { "description": "UTC creation time", "format": "date-time", "type": "string" }, "egress": { "description": "Monthly egress quota and current UTC-calendar-month usage in bytes.", "properties": { "quota": { "anyOf": [ { "type": "integer" }, { "type": "null" } ] }, "usage": { "type": "integer" } }, "required": [ "quota", "usage" ], "type": "object" }, "object_count": { "description": "Number of objects", "minimum": 0, "type": "integer" }, "storage": { "description": "Storage quota and current usage in bytes.", "properties": { "quota": { "anyOf": [ { "type": "integer" }, { "type": "null" } ] }, "usage": { "type": "integer" } }, "required": [ "quota", "usage" ], "type": "object" }, "versioning_enabled": { "description": "Whether object versioning is enabled.", "type": "boolean" } }, "required": [ "bucket_name", "created_at", "object_count", "versioning_enabled", "storage", "egress" ], "type": "object" } }, { "description": "Return currently permitted buckets and operations.", "inputSchema": { "additionalProperties": false, "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "bucket_token": { "description": "Secret bearer token returned with the public bucket.", "examples": [ "<bucket-token>" ], "minLength": 1, "type": "string" } }, "required": [ "bucket_name", "bucket_token" ], "type": "object" }, "name": "get_bucket_permissions", "outputSchema": { "description": "What operations are allowed on which buckets", "properties": { "buckets": { "items": { "properties": { "bucketRef": { "anyOf": [ { "description": "An existing bucket owned by the grantee's team.", "properties": { "bucketName": { "type": "string" }, "type": { "const": "existing", "type": "string" } }, "required": [ "type", "bucketName" ], "type": "object" }, { "description": "A named bucket to create while installing the policy.", "properties": { "bucketName": { "type": "string" }, "type": { "const": "provisioned", "type": "string" } }, "required": [ "type", "bucketName" ], "type": "object" }, { "description": "Buckets the credential holder may create while using the policy.", "properties": { "type": { "const": "__new__", "type": "string" } }, "required": [ "type" ], "type": "object" } ] }, "permissions": { "items": { "enum": [ "read", "write", "delete" ], "type": "string" }, "type": "array" } }, "required": [ "bucketRef", "permissions" ], "type": "object" }, "type": "array" } }, "required": [ "buckets" ], "type": "object" } }, { "description": "Return an object's size, timestamps, ETag, content type, metadata, and tags.", "inputSchema": { "additionalProperties": false, "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "bucket_token": { "description": "Secret bearer token returned with the public bucket.", "examples": [ "<bucket-token>" ], "minLength": 1, "type": "string" }, "object_key": { "description": "Complete object key, including path-like prefixes.", "examples": [ "data.parquet", "reports/summary.json" ], "minLength": 1, "type": "string" } }, "required": [ "bucket_name", "object_key", "bucket_token" ], "type": "object" }, "name": "get_object_metadata", "outputSchema": { "description": "Detailed metadata for one object.", "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null }, "etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Storage entity tag; it is not always a content checksum." }, "last_modified": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "UTC time of the most recent modification." }, "metadata": { "additionalProperties": { "type": "string" }, "description": "User-defined object metadata.", "type": "object" }, "object_key": { "description": "Complete object key, including path-like prefixes.", "examples": [ "data.parquet", "reports/summary.json" ], "minLength": 1, "type": "string" }, "size_bytes": { "description": "Object size in bytes.", "minimum": 0, "type": "integer" }, "tags": { "additionalProperties": { "type": "string" }, "type": "object" }, "version_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null } }, "required": [ "object_key", "size_bytes", "bucket_name" ], "type": "object" } }, { "description": "List one page of objects and path-like prefixes, ordered by key.", "inputSchema": { "additionalProperties": false, "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "bucket_token": { "description": "Secret bearer token returned with the public bucket.", "examples": [ "<bucket-token>" ], "minLength": 1, "type": "string" }, "page_size": { "default": 100, "description": "Maximum objects to return, from 1 to 1000.", "examples": [ 100 ], "maximum": 1000, "minimum": 1, "type": "integer" }, "page_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Opaque continuation token from the preceding page.", "examples": [ "<next-page-token>" ] }, "prefix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Only return keys beginning with this prefix.", "examples": [ "reports/" ] }, "recursive": { "default": false, "description": "True for a flat listing; false for immediate children.", "examples": [ false ], "type": "boolean" } }, "required": [ "bucket_name", "bucket_token" ], "type": "object" }, "name": "list_objects", "outputSchema": { "description": "One page of objects and the token needed to retrieve the next page.", "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "common_prefixes": { "description": "Immediate child prefixes when recursive is false. They behave like directories, although object storage has no real directories.", "items": { "type": "string" }, "type": "array" }, "next_page_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Opaque token for the next page. Pass it unchanged as page_token; null means there are no more results." }, "objects": { "items": { "description": "Compact information about an object returned by a listing.", "properties": { "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null }, "etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Storage entity tag; it is not always a content checksum." }, "last_modified": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "UTC time of the most recent modification." }, "object_key": { "description": "Complete object key, including path-like prefixes.", "examples": [ "data.parquet", "reports/summary.json" ], "minLength": 1, "type": "string" }, "size_bytes": { "description": "Object size in bytes.", "minimum": 0, "type": "integer" }, "version_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null } }, "required": [ "object_key", "size_bytes" ], "type": "object" }, "type": "array" } }, "required": [ "bucket_name" ], "type": "object" } }, { "description": "Return a secret, short-lived PUT URL for an object up to 5 GB.", "inputSchema": { "additionalProperties": false, "properties": { "bucket_name": { "description": "Bucket to operate on.", "examples": [ "photos" ], "minLength": 1, "type": "string" }, "bucket_token": { "description": "Secret bearer token returned with the public bucket.", "examples": [ "<bucket-token>" ], "minLength": 1, "type": "string" }, "object_key": { "description": "Complete object key, including path-like prefixes.", "examples": [ "data.parquet", "reports/summary.json" ], "minLength": 1, "type": "string" } }, "required": [ "bucket_name", "object_key", "bucket_token" ], "type": "object" }, "name": "upload_object", "outputSchema": { "description": "A short-lived URL and the HTTP method required to use it.", "properties": { "http_method": { "description": "HTTP method that must be used with the presigned URL.", "enum": [ "GET", "PUT" ], "type": "string" }, "url": { "description": "Short-lived presigned HTTPS URL containing all authorization information.", "type": "string" } }, "required": [ "url", "http_method" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:082d290b26843576e8a0cc72921228b09e0376ba497b6a4c71e94e9202967704 | sha256sum