IronShard Object Storage Sandbox
Create a free sandbox object storage bucket; upload, download, list, inspect, and delete objects.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (4)
- LOWen get_bucket_permissions
- LOWen get_bucket
- LOWen upload_object
- LOWen get_object_metadata
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"agent-storage-sandbox": {
"url": "https://agents-mcp.ironshard.ai/mcp"
}
}
}Puntos de conexión remotos
https://agents-mcp.ironshard.ai/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟡create_bucket
Creates a 30-day bucket and its secret bearer token.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"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"
],
"description": "Credentials for a newly created sandbox bucket."
}🟢get_bucket_permissions(bucket_name, bucket_token)
Return currently permitted buckets and operations.
Esquema de entrada
{
"type": "object",
"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"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"buckets": {
"items": {
"properties": {
"bucketRef": {
"anyOf": [
{
"description": "An existing bucket owned by the grantee's team.",
"properties": {
"type": {
"const": "existing",
"type": "string"
},
"bucketName": {
"type": "string"
}
},
"required": [
"type",
"bucketName"
],
"type": "object"
},
{
"description": "A named bucket to create while installing the policy.",
"properties": {
"type": {
"const": "provisioned",
"type": "string"
},
"bucketName": {
"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"
],
"description": "What operations are allowed on which buckets"
}🟢get_bucket(bucket_name, bucket_token)
Return bucket details with storage and egress usage.
Esquema de entrada
{
"type": "object",
"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"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"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"
},
"object_count": {
"description": "Number of objects",
"minimum": 0,
"type": "integer"
},
"versioning_enabled": {
"description": "Whether object versioning is enabled.",
"type": "boolean"
},
"storage": {
"description": "Storage quota and current usage in bytes.",
"properties": {
"quota": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"usage": {
"type": "integer"
}
},
"required": [
"quota",
"usage"
],
"type": "object"
},
"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"
}
},
"required": [
"bucket_name",
"created_at",
"object_count",
"versioning_enabled",
"storage",
"egress"
],
"description": "Public bucket details including its bucket-scoped quota and usage."
}🟡upload_object(bucket_name, object_key, bucket_token)
Return a secret, short-lived PUT URL for an object up to 5 GB.
Esquema de entrada
{
"type": "object",
"properties": {
"bucket_name": {
"description": "Bucket to operate on.",
"examples": [
"photos"
],
"minLength": 1,
"type": "string"
},
"object_key": {
"description": "Complete object key, including path-like prefixes.",
"examples": [
"data.parquet",
"reports/summary.json"
],
"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",
"object_key",
"bucket_token"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"url": {
"description": "Short-lived presigned HTTPS URL containing all authorization information.",
"type": "string"
},
"http_method": {
"description": "HTTP method that must be used with the presigned URL.",
"enum": [
"GET",
"PUT"
],
"type": "string"
}
},
"required": [
"url",
"http_method"
],
"description": "A short-lived URL and the HTTP method required to use it."
}🟢download_object(bucket_name, object_key, bucket_token)
Return a secret, short-lived GET URL for an object's bytes.
Esquema de entrada
{
"type": "object",
"properties": {
"bucket_name": {
"description": "Bucket to operate on.",
"examples": [
"photos"
],
"minLength": 1,
"type": "string"
},
"object_key": {
"description": "Complete object key, including path-like prefixes.",
"examples": [
"data.parquet",
"reports/summary.json"
],
"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",
"object_key",
"bucket_token"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"url": {
"description": "Short-lived presigned HTTPS URL containing all authorization information.",
"type": "string"
},
"http_method": {
"description": "HTTP method that must be used with the presigned URL.",
"enum": [
"GET",
"PUT"
],
"type": "string"
}
},
"required": [
"url",
"http_method"
],
"description": "A short-lived URL and the HTTP method required to use it."
}🟢list_objects(bucket_name, bucket_token, prefix, recursive, page_size, ...)
List one page of objects and path-like prefixes, ordered by key.
Esquema de entrada
{
"type": "object",
"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"
},
"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"
},
"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>"
]
}
},
"required": [
"bucket_name",
"bucket_token"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"bucket_name": {
"description": "Bucket to operate on.",
"examples": [
"photos"
],
"minLength": 1,
"type": "string"
},
"objects": {
"items": {
"description": "Compact information about an object returned by a listing.",
"properties": {
"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"
},
"last_modified": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "UTC time of the most recent modification."
},
"etag": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Storage entity tag; it is not always a content checksum."
},
"version_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"content_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"object_key",
"size_bytes"
],
"type": "object"
},
"type": "array"
},
"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."
}
},
"required": [
"bucket_name"
],
"description": "One page of objects and the token needed to retrieve the next page."
}🔴delete_object(bucket_name, object_key, bucket_token)
Delete an object; versioned buckets may retain older versions.
Esquema de entrada
{
"type": "object",
"properties": {
"bucket_name": {
"description": "Bucket to operate on.",
"examples": [
"photos"
],
"minLength": 1,
"type": "string"
},
"object_key": {
"description": "Complete object key, including path-like prefixes.",
"examples": [
"data.parquet",
"reports/summary.json"
],
"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",
"object_key",
"bucket_token"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"bucket_name": {
"description": "Bucket to operate on.",
"examples": [
"photos"
],
"minLength": 1,
"type": "string"
},
"object_key": {
"description": "Complete object key, including path-like prefixes.",
"examples": [
"data.parquet",
"reports/summary.json"
],
"minLength": 1,
"type": "string"
},
"deleted": {
"description": "True when the object was deleted.",
"type": "boolean"
},
"version_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"bucket_name",
"object_key",
"deleted"
],
"description": "Confirmation that an object was deleted."
}🟢get_object_metadata(bucket_name, object_key, bucket_token)
Return an object's size, timestamps, ETag, content type, metadata, and tags.
Esquema de entrada
{
"type": "object",
"properties": {
"bucket_name": {
"description": "Bucket to operate on.",
"examples": [
"photos"
],
"minLength": 1,
"type": "string"
},
"object_key": {
"description": "Complete object key, including path-like prefixes.",
"examples": [
"data.parquet",
"reports/summary.json"
],
"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",
"object_key",
"bucket_token"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"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"
},
"last_modified": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "UTC time of the most recent modification."
},
"etag": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Storage entity tag; it is not always a content checksum."
},
"version_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"content_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"bucket_name": {
"description": "Bucket to operate on.",
"examples": [
"photos"
],
"minLength": 1,
"type": "string"
},
"metadata": {
"additionalProperties": {
"type": "string"
},
"description": "User-defined object metadata.",
"type": "object"
},
"tags": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"required": [
"object_key",
"size_bytes",
"bucket_name"
],
"description": "Detailed metadata for one object."
}Prompts recomendados
get_bucket_permissionsget_bucket_permissionslist_objectslist_objectslist_objectsget_bucket_permissionsComunidad
Evidencia