[{"data":1,"prerenderedAt":2402},["ShallowReactive",2],{"docs-meta-/docs/agent-buckets":3,"content-query-XlA5SYWOWA":6,"content-navigation-Tlu2f2EPlD":2372},{"title":4,"description":5},"Agent Buckets","Autonomous AI agents can discover IronShard, create a real bucket through the public Agent MCP server, use IronShard-native object storage features, and optionally hand the bucket off to an owner — without tenant OAuth.",{"_path":7,"_dir":8,"_draft":9,"_partial":9,"_locale":10,"title":4,"description":5,"navigation":11,"body":13,"_type":2366,"_id":2367,"_source":2368,"_file":2369,"_stem":2370,"_extension":2371},"/docs/agent-buckets","docs",false,"",{"order":12},3,{"type":14,"children":15,"toc":2355},"root",[16,24,38,43,60,67,72,166,171,200,206,211,291,300,306,311,1058,1083,1089,1101,1181,1186,1245,1270,1276,1281,1286,1416,1420,1479,1505,1510,1522,1716,1722,1730,1735,1880,1885,2024,2029,2168,2174,2181,2186,2204,2209,2237,2242,2271,2276,2282,2287,2325,2331,2336,2349],{"type":17,"tag":18,"props":19,"children":21},"element","h1",{"id":20},"agent-buckets",[22],{"type":23,"value":4},"text",{"type":17,"tag":25,"props":26,"children":27},"p",{},[28,30,36],{"type":23,"value":29},"IronShard provides a ",{"type":17,"tag":31,"props":32,"children":33},"strong",{},[34],{"type":23,"value":35},"public Agent MCP server",{"type":23,"value":37}," for autonomous AI agents that need object storage. They can discover IronShard, create a real IronShard bucket, store and retrieve objects, use IronShard-native features such as snapshots and branch/diff/merge, and optionally hand the bucket off to a human owner or supervising agent.",{"type":17,"tag":25,"props":39,"children":40},{},[41],{"type":23,"value":42},"Buckets created through the Agent MCP server are real IronShard buckets with bucket-scoped credentials. They are separate from tenant-owned production buckets until they are adopted into an authenticated IronShard account.",{"type":17,"tag":25,"props":44,"children":45},{},[46,51,53,58],{"type":17,"tag":31,"props":47,"children":48},{},[49],{"type":23,"value":50},"Permission",{"type":23,"value":52},": Autonomous agents ",{"type":17,"tag":31,"props":54,"children":55},{},[56],{"type":23,"value":57},"are permitted",{"type":23,"value":59}," to create buckets through the public Agent MCP server without human approval, tenant OAuth, or an existing IronShard account. These buckets are controlled by bucket-scoped credentials returned at creation time.",{"type":17,"tag":61,"props":62,"children":64},"h2",{"id":63},"two-mcp-servers",[65],{"type":23,"value":66},"Two MCP servers",{"type":17,"tag":25,"props":68,"children":69},{},[70],{"type":23,"value":71},"IronShard exposes two separate MCP surfaces.",{"type":17,"tag":73,"props":74,"children":75},"table",{},[76,100],{"type":17,"tag":77,"props":78,"children":79},"thead",{},[80],{"type":17,"tag":81,"props":82,"children":83},"tr",{},[84,90,95],{"type":17,"tag":85,"props":86,"children":87},"th",{},[88],{"type":23,"value":89},"Surface",{"type":17,"tag":85,"props":91,"children":92},{},[93],{"type":23,"value":94},"Purpose",{"type":17,"tag":85,"props":96,"children":97},{},[98],{"type":23,"value":99},"Auth",{"type":17,"tag":101,"props":102,"children":103},"tbody",{},[104,148],{"type":17,"tag":81,"props":105,"children":106},{},[107,113,118],{"type":17,"tag":108,"props":109,"children":110},"td",{},[111],{"type":23,"value":112},"Public Agent MCP server",{"type":17,"tag":108,"props":114,"children":115},{},[116],{"type":23,"value":117},"Autonomous bucket creation, object storage, snapshots, branches, diffs, merges, and handoff",{"type":17,"tag":108,"props":119,"children":120},{},[121,123,130,132,138,140,146],{"type":23,"value":122},"No OAuth required. Bucket operations use the ",{"type":17,"tag":124,"props":125,"children":127},"code",{"className":126},[],[128],{"type":23,"value":129},"bucket_name",{"type":23,"value":131}," and ",{"type":17,"tag":124,"props":133,"children":135},{"className":134},[],[136],{"type":23,"value":137},"bucket_token",{"type":23,"value":139}," returned by ",{"type":17,"tag":124,"props":141,"children":143},{"className":142},[],[144],{"type":23,"value":145},"create_bucket",{"type":23,"value":147},".",{"type":17,"tag":81,"props":149,"children":150},{},[151,156,161],{"type":17,"tag":108,"props":152,"children":153},{},[154],{"type":23,"value":155},"Production MCP server",{"type":17,"tag":108,"props":157,"children":158},{},[159],{"type":23,"value":160},"Tenant-owned buckets, adopted agent buckets, governance, agent credentials, policies, audit, and organization settings",{"type":17,"tag":108,"props":162,"children":163},{},[164],{"type":23,"value":165},"OAuth required on every tool. A human, organization, or authorized agent must have access to an IronShard tenant.",{"type":17,"tag":25,"props":167,"children":168},{},[169],{"type":23,"value":170},"The same storage concepts exist on both servers, but the authority model is different.",{"type":17,"tag":172,"props":173,"children":174},"ul",{},[175,188],{"type":17,"tag":176,"props":177,"children":178},"li",{},[179,181,186],{"type":23,"value":180},"On the Public Agent MCP server, ",{"type":17,"tag":124,"props":182,"children":184},{"className":183},[],[185],{"type":23,"value":145},{"type":23,"value":187}," creates a bucket through the public agent flow and returns bucket-scoped credentials.",{"type":17,"tag":176,"props":189,"children":190},{},[191,193,198],{"type":23,"value":192},"On the Production MCP server, ",{"type":17,"tag":124,"props":194,"children":196},{"className":195},[],[197],{"type":23,"value":145},{"type":23,"value":199}," creates a tenant-owned production bucket using OAuth and account policy.",{"type":17,"tag":61,"props":201,"children":203},{"id":202},"connect",[204],{"type":23,"value":205},"Connect",{"type":17,"tag":25,"props":207,"children":208},{},[209],{"type":23,"value":210},"Connect your agent to the public Agent MCP server.",{"type":17,"tag":73,"props":212,"children":213},{},[214,230],{"type":17,"tag":77,"props":215,"children":216},{},[217],{"type":17,"tag":81,"props":218,"children":219},{},[220,225],{"type":17,"tag":85,"props":221,"children":222},{},[223],{"type":23,"value":224},"Field",{"type":17,"tag":85,"props":226,"children":227},{},[228],{"type":23,"value":229},"Value",{"type":17,"tag":101,"props":231,"children":232},{},[233,246,262,278],{"type":17,"tag":81,"props":234,"children":235},{},[236,241],{"type":17,"tag":108,"props":237,"children":238},{},[239],{"type":23,"value":240},"Protocol",{"type":17,"tag":108,"props":242,"children":243},{},[244],{"type":23,"value":245},"Model Context Protocol (MCP)",{"type":17,"tag":81,"props":247,"children":248},{},[249,253],{"type":17,"tag":108,"props":250,"children":251},{},[252],{"type":23,"value":112},{"type":17,"tag":108,"props":254,"children":255},{},[256],{"type":17,"tag":124,"props":257,"children":259},{"className":258},[],[260],{"type":23,"value":261},"https://agents-mcp.ironshard.ai/mcp",{"type":17,"tag":81,"props":263,"children":264},{},[265,270],{"type":17,"tag":108,"props":266,"children":267},{},[268],{"type":23,"value":269},"Initial tool",{"type":17,"tag":108,"props":271,"children":272},{},[273],{"type":17,"tag":124,"props":274,"children":276},{"className":275},[],[277],{"type":23,"value":145},{"type":17,"tag":81,"props":279,"children":280},{},[281,286],{"type":17,"tag":108,"props":282,"children":283},{},[284],{"type":23,"value":285},"MCP auth",{"type":17,"tag":108,"props":287,"children":288},{},[289],{"type":23,"value":290},"None required for bucket creation",{"type":17,"tag":25,"props":292,"children":293},{},[294],{"type":17,"tag":295,"props":296,"children":297},"em",{},[298],{"type":23,"value":299},"Note: technical values on this page may change as the public Agent MCP surface expands.",{"type":17,"tag":61,"props":301,"children":303},{"id":302},"public-agent-mcp-tools",[304],{"type":23,"value":305},"Public Agent MCP tools",{"type":17,"tag":25,"props":307,"children":308},{},[309],{"type":23,"value":310},"The Agent MCP server exposes tools for creating and operating buckets directly from autonomous agent workflows.",{"type":17,"tag":73,"props":312,"children":313},{},[314,334],{"type":17,"tag":77,"props":315,"children":316},{},[317],{"type":17,"tag":81,"props":318,"children":319},{},[320,325,329],{"type":17,"tag":85,"props":321,"children":322},{},[323],{"type":23,"value":324},"Tool",{"type":17,"tag":85,"props":326,"children":327},{},[328],{"type":23,"value":94},{"type":17,"tag":85,"props":330,"children":331},{},[332],{"type":23,"value":333},"Status",{"type":17,"tag":101,"props":335,"children":336},{},[337,370,391,412,433,455,476,497,518,547,575,596,617,638,659,680,701,722,743,764,785,806,827,848,869,890,911,932,953,974,995,1016,1037],{"type":17,"tag":81,"props":338,"children":339},{},[340,348,365],{"type":17,"tag":108,"props":341,"children":342},{},[343],{"type":17,"tag":124,"props":344,"children":346},{"className":345},[],[347],{"type":23,"value":145},{"type":17,"tag":108,"props":349,"children":350},{},[351,353,358,359,364],{"type":23,"value":352},"Creates a sandbox bucket through IronShard's public Agent MCP flow without tenant OAuth. Takes no arguments. Returns ",{"type":17,"tag":124,"props":354,"children":356},{"className":355},[],[357],{"type":23,"value":129},{"type":23,"value":131},{"type":17,"tag":124,"props":360,"children":362},{"className":361},[],[363],{"type":23,"value":137},{"type":23,"value":147},{"type":17,"tag":108,"props":366,"children":367},{},[368],{"type":23,"value":369},"Available",{"type":17,"tag":81,"props":371,"children":372},{},[373,382,387],{"type":17,"tag":108,"props":374,"children":375},{},[376],{"type":17,"tag":124,"props":377,"children":379},{"className":378},[],[380],{"type":23,"value":381},"get_bucket",{"type":17,"tag":108,"props":383,"children":384},{},[385],{"type":23,"value":386},"Returns configuration and policy-visible state for one bucket, including creation time, object count, and versioning status.",{"type":17,"tag":108,"props":388,"children":389},{},[390],{"type":23,"value":369},{"type":17,"tag":81,"props":392,"children":393},{},[394,403,408],{"type":17,"tag":108,"props":395,"children":396},{},[397],{"type":17,"tag":124,"props":398,"children":400},{"className":399},[],[401],{"type":23,"value":402},"list_buckets",{"type":17,"tag":108,"props":404,"children":405},{},[406],{"type":23,"value":407},"Lists the buckets reachable with the supplied token, with object counts.",{"type":17,"tag":108,"props":409,"children":410},{},[411],{"type":23,"value":369},{"type":17,"tag":81,"props":413,"children":414},{},[415,424,429],{"type":17,"tag":108,"props":416,"children":417},{},[418],{"type":17,"tag":124,"props":419,"children":421},{"className":420},[],[422],{"type":23,"value":423},"get_bucket_permissions",{"type":17,"tag":108,"props":425,"children":426},{},[427],{"type":23,"value":428},"Returns the operations the supplied token is permitted to perform on each bucket it can reach.",{"type":17,"tag":108,"props":430,"children":431},{},[432],{"type":23,"value":369},{"type":17,"tag":81,"props":434,"children":435},{},[436,445,450],{"type":17,"tag":108,"props":437,"children":438},{},[439],{"type":17,"tag":124,"props":440,"children":442},{"className":441},[],[443],{"type":23,"value":444},"get_bucket_usage",{"type":17,"tag":108,"props":446,"children":447},{},[448],{"type":23,"value":449},"Returns current storage, request, object-count, and egress usage for the bucket.",{"type":17,"tag":108,"props":451,"children":452},{},[453],{"type":23,"value":454},"Planned",{"type":17,"tag":81,"props":456,"children":457},{},[458,467,472],{"type":17,"tag":108,"props":459,"children":460},{},[461],{"type":17,"tag":124,"props":462,"children":464},{"className":463},[],[465],{"type":23,"value":466},"extend_bucket",{"type":17,"tag":108,"props":468,"children":469},{},[470],{"type":23,"value":471},"Extends the bucket lifetime or operating window if the bucket policy allows it.",{"type":17,"tag":108,"props":473,"children":474},{},[475],{"type":23,"value":454},{"type":17,"tag":81,"props":477,"children":478},{},[479,488,493],{"type":17,"tag":108,"props":480,"children":481},{},[482],{"type":17,"tag":124,"props":483,"children":485},{"className":484},[],[486],{"type":23,"value":487},"revoke_bucket",{"type":17,"tag":108,"props":489,"children":490},{},[491],{"type":23,"value":492},"Revokes the bucket and disables further access to its data and credentials.",{"type":17,"tag":108,"props":494,"children":495},{},[496],{"type":23,"value":454},{"type":17,"tag":81,"props":498,"children":499},{},[500,509,514],{"type":17,"tag":108,"props":501,"children":502},{},[503],{"type":17,"tag":124,"props":504,"children":506},{"className":505},[],[507],{"type":23,"value":508},"generate_bucket_handoff",{"type":17,"tag":108,"props":510,"children":511},{},[512],{"type":23,"value":513},"Generates a human- or super-agent-facing handoff summary with management links and audit evidence.",{"type":17,"tag":108,"props":515,"children":516},{},[517],{"type":23,"value":454},{"type":17,"tag":81,"props":519,"children":520},{},[521,530,543],{"type":17,"tag":108,"props":522,"children":523},{},[524],{"type":17,"tag":124,"props":525,"children":527},{"className":526},[],[528],{"type":23,"value":529},"upload_object",{"type":17,"tag":108,"props":531,"children":532},{},[533,535,541],{"type":23,"value":534},"Creates a short-lived presigned ",{"type":17,"tag":124,"props":536,"children":538},{"className":537},[],[539],{"type":23,"value":540},"PUT",{"type":23,"value":542}," URL for uploading an object to the bucket.",{"type":17,"tag":108,"props":544,"children":545},{},[546],{"type":23,"value":369},{"type":17,"tag":81,"props":548,"children":549},{},[550,559,571],{"type":17,"tag":108,"props":551,"children":552},{},[553],{"type":17,"tag":124,"props":554,"children":556},{"className":555},[],[557],{"type":23,"value":558},"download_object",{"type":17,"tag":108,"props":560,"children":561},{},[562,563,569],{"type":23,"value":534},{"type":17,"tag":124,"props":564,"children":566},{"className":565},[],[567],{"type":23,"value":568},"GET",{"type":23,"value":570}," URL for downloading an object from the bucket.",{"type":17,"tag":108,"props":572,"children":573},{},[574],{"type":23,"value":369},{"type":17,"tag":81,"props":576,"children":577},{},[578,587,592],{"type":17,"tag":108,"props":579,"children":580},{},[581],{"type":17,"tag":124,"props":582,"children":584},{"className":583},[],[585],{"type":23,"value":586},"list_objects",{"type":17,"tag":108,"props":588,"children":589},{},[590],{"type":23,"value":591},"Lists objects in the bucket, with an optional prefix filter, recursive or directory-style listing, and pagination.",{"type":17,"tag":108,"props":593,"children":594},{},[595],{"type":23,"value":369},{"type":17,"tag":81,"props":597,"children":598},{},[599,608,613],{"type":17,"tag":108,"props":600,"children":601},{},[602],{"type":17,"tag":124,"props":603,"children":605},{"className":604},[],[606],{"type":23,"value":607},"delete_object",{"type":17,"tag":108,"props":609,"children":610},{},[611],{"type":23,"value":612},"Deletes an object from the bucket. Idempotent: deleting a key that is already gone succeeds.",{"type":17,"tag":108,"props":614,"children":615},{},[616],{"type":23,"value":369},{"type":17,"tag":81,"props":618,"children":619},{},[620,629,634],{"type":17,"tag":108,"props":621,"children":622},{},[623],{"type":17,"tag":124,"props":624,"children":626},{"className":625},[],[627],{"type":23,"value":628},"get_object_metadata",{"type":17,"tag":108,"props":630,"children":631},{},[632],{"type":23,"value":633},"Returns object metadata, including size, version ID, ETag, content type, tags, and timestamps.",{"type":17,"tag":108,"props":635,"children":636},{},[637],{"type":23,"value":369},{"type":17,"tag":81,"props":639,"children":640},{},[641,650,655],{"type":17,"tag":108,"props":642,"children":643},{},[644],{"type":17,"tag":124,"props":645,"children":647},{"className":646},[],[648],{"type":23,"value":649},"copy_object",{"type":17,"tag":108,"props":651,"children":652},{},[653],{"type":23,"value":654},"Copies an object within the bucket.",{"type":17,"tag":108,"props":656,"children":657},{},[658],{"type":23,"value":454},{"type":17,"tag":81,"props":660,"children":661},{},[662,671,676],{"type":17,"tag":108,"props":663,"children":664},{},[665],{"type":17,"tag":124,"props":666,"children":668},{"className":667},[],[669],{"type":23,"value":670},"create_snapshot",{"type":17,"tag":108,"props":672,"children":673},{},[674],{"type":23,"value":675},"Creates a point-in-time snapshot of the bucket or selected object prefix.",{"type":17,"tag":108,"props":677,"children":678},{},[679],{"type":23,"value":454},{"type":17,"tag":81,"props":681,"children":682},{},[683,692,697],{"type":17,"tag":108,"props":684,"children":685},{},[686],{"type":17,"tag":124,"props":687,"children":689},{"className":688},[],[690],{"type":23,"value":691},"list_snapshots",{"type":17,"tag":108,"props":693,"children":694},{},[695],{"type":23,"value":696},"Lists snapshots available in the bucket.",{"type":17,"tag":108,"props":698,"children":699},{},[700],{"type":23,"value":454},{"type":17,"tag":81,"props":702,"children":703},{},[704,713,718],{"type":17,"tag":108,"props":705,"children":706},{},[707],{"type":17,"tag":124,"props":708,"children":710},{"className":709},[],[711],{"type":23,"value":712},"get_snapshot",{"type":17,"tag":108,"props":714,"children":715},{},[716],{"type":23,"value":717},"Returns metadata for a specific snapshot.",{"type":17,"tag":108,"props":719,"children":720},{},[721],{"type":23,"value":454},{"type":17,"tag":81,"props":723,"children":724},{},[725,734,739],{"type":17,"tag":108,"props":726,"children":727},{},[728],{"type":17,"tag":124,"props":729,"children":731},{"className":730},[],[732],{"type":23,"value":733},"restore_snapshot",{"type":17,"tag":108,"props":735,"children":736},{},[737],{"type":23,"value":738},"Restores data from a snapshot into the bucket.",{"type":17,"tag":108,"props":740,"children":741},{},[742],{"type":23,"value":454},{"type":17,"tag":81,"props":744,"children":745},{},[746,755,760],{"type":17,"tag":108,"props":747,"children":748},{},[749],{"type":17,"tag":124,"props":750,"children":752},{"className":751},[],[753],{"type":23,"value":754},"delete_snapshot",{"type":17,"tag":108,"props":756,"children":757},{},[758],{"type":23,"value":759},"Deletes a snapshot if bucket policy allows deletion.",{"type":17,"tag":108,"props":761,"children":762},{},[763],{"type":23,"value":454},{"type":17,"tag":81,"props":765,"children":766},{},[767,776,781],{"type":17,"tag":108,"props":768,"children":769},{},[770],{"type":17,"tag":124,"props":771,"children":773},{"className":772},[],[774],{"type":23,"value":775},"create_branch",{"type":17,"tag":108,"props":777,"children":778},{},[779],{"type":23,"value":780},"Creates a writable branch from the current bucket state, a snapshot, or another branch.",{"type":17,"tag":108,"props":782,"children":783},{},[784],{"type":23,"value":454},{"type":17,"tag":81,"props":786,"children":787},{},[788,797,802],{"type":17,"tag":108,"props":789,"children":790},{},[791],{"type":17,"tag":124,"props":792,"children":794},{"className":793},[],[795],{"type":23,"value":796},"list_branches",{"type":17,"tag":108,"props":798,"children":799},{},[800],{"type":23,"value":801},"Lists branches in the bucket.",{"type":17,"tag":108,"props":803,"children":804},{},[805],{"type":23,"value":454},{"type":17,"tag":81,"props":807,"children":808},{},[809,818,823],{"type":17,"tag":108,"props":810,"children":811},{},[812],{"type":17,"tag":124,"props":813,"children":815},{"className":814},[],[816],{"type":23,"value":817},"get_branch",{"type":17,"tag":108,"props":819,"children":820},{},[821],{"type":23,"value":822},"Returns metadata and status for a specific branch.",{"type":17,"tag":108,"props":824,"children":825},{},[826],{"type":23,"value":454},{"type":17,"tag":81,"props":828,"children":829},{},[830,839,844],{"type":17,"tag":108,"props":831,"children":832},{},[833],{"type":17,"tag":124,"props":834,"children":836},{"className":835},[],[837],{"type":23,"value":838},"delete_branch",{"type":17,"tag":108,"props":840,"children":841},{},[842],{"type":23,"value":843},"Deletes an unneeded branch and its unmerged changes.",{"type":17,"tag":108,"props":845,"children":846},{},[847],{"type":23,"value":454},{"type":17,"tag":81,"props":849,"children":850},{},[851,860,865],{"type":17,"tag":108,"props":852,"children":853},{},[854],{"type":17,"tag":124,"props":855,"children":857},{"className":856},[],[858],{"type":23,"value":859},"create_branch_object_upload_url",{"type":17,"tag":108,"props":861,"children":862},{},[863],{"type":23,"value":864},"Creates a presigned upload URL for writing an object to a specific branch.",{"type":17,"tag":108,"props":866,"children":867},{},[868],{"type":23,"value":454},{"type":17,"tag":81,"props":870,"children":871},{},[872,881,886],{"type":17,"tag":108,"props":873,"children":874},{},[875],{"type":17,"tag":124,"props":876,"children":878},{"className":877},[],[879],{"type":23,"value":880},"create_branch_object_download_url",{"type":17,"tag":108,"props":882,"children":883},{},[884],{"type":23,"value":885},"Creates a presigned download URL for reading an object from a specific branch.",{"type":17,"tag":108,"props":887,"children":888},{},[889],{"type":23,"value":454},{"type":17,"tag":81,"props":891,"children":892},{},[893,902,907],{"type":17,"tag":108,"props":894,"children":895},{},[896],{"type":17,"tag":124,"props":897,"children":899},{"className":898},[],[900],{"type":23,"value":901},"list_objects_on_branch",{"type":17,"tag":108,"props":903,"children":904},{},[905],{"type":23,"value":906},"Lists objects visible on a specific branch.",{"type":17,"tag":108,"props":908,"children":909},{},[910],{"type":23,"value":454},{"type":17,"tag":81,"props":912,"children":913},{},[914,923,928],{"type":17,"tag":108,"props":915,"children":916},{},[917],{"type":17,"tag":124,"props":918,"children":920},{"className":919},[],[921],{"type":23,"value":922},"delete_object_on_branch",{"type":17,"tag":108,"props":924,"children":925},{},[926],{"type":23,"value":927},"Deletes an object on a branch without affecting the main bucket state until merge.",{"type":17,"tag":108,"props":929,"children":930},{},[931],{"type":23,"value":454},{"type":17,"tag":81,"props":933,"children":934},{},[935,944,949],{"type":17,"tag":108,"props":936,"children":937},{},[938],{"type":17,"tag":124,"props":939,"children":941},{"className":940},[],[942],{"type":23,"value":943},"get_branch_object_metadata",{"type":17,"tag":108,"props":945,"children":946},{},[947],{"type":23,"value":948},"Returns metadata for an object as seen on a specific branch.",{"type":17,"tag":108,"props":950,"children":951},{},[952],{"type":23,"value":454},{"type":17,"tag":81,"props":954,"children":955},{},[956,965,970],{"type":17,"tag":108,"props":957,"children":958},{},[959],{"type":17,"tag":124,"props":960,"children":962},{"className":961},[],[963],{"type":23,"value":964},"diff_branch",{"type":17,"tag":108,"props":966,"children":967},{},[968],{"type":23,"value":969},"Computes the difference between a branch and its base or target branch.",{"type":17,"tag":108,"props":971,"children":972},{},[973],{"type":23,"value":454},{"type":17,"tag":81,"props":975,"children":976},{},[977,986,991],{"type":17,"tag":108,"props":978,"children":979},{},[980],{"type":17,"tag":124,"props":981,"children":983},{"className":982},[],[984],{"type":23,"value":985},"get_diff",{"type":17,"tag":108,"props":987,"children":988},{},[989],{"type":23,"value":990},"Returns details for a previously computed diff, including added, modified, deleted, and conflicting objects.",{"type":17,"tag":108,"props":992,"children":993},{},[994],{"type":23,"value":454},{"type":17,"tag":81,"props":996,"children":997},{},[998,1007,1012],{"type":17,"tag":108,"props":999,"children":1000},{},[1001],{"type":17,"tag":124,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":23,"value":1006},"merge_branch",{"type":17,"tag":108,"props":1008,"children":1009},{},[1010],{"type":23,"value":1011},"Merges branch changes into the target branch or main bucket state.",{"type":17,"tag":108,"props":1013,"children":1014},{},[1015],{"type":23,"value":454},{"type":17,"tag":81,"props":1017,"children":1018},{},[1019,1028,1033],{"type":17,"tag":108,"props":1020,"children":1021},{},[1022],{"type":17,"tag":124,"props":1023,"children":1025},{"className":1024},[],[1026],{"type":23,"value":1027},"discard_branch",{"type":17,"tag":108,"props":1029,"children":1030},{},[1031],{"type":23,"value":1032},"Discards branch changes without merging them.",{"type":17,"tag":108,"props":1034,"children":1035},{},[1036],{"type":23,"value":454},{"type":17,"tag":81,"props":1038,"children":1039},{},[1040,1049,1054],{"type":17,"tag":108,"props":1041,"children":1042},{},[1043],{"type":17,"tag":124,"props":1044,"children":1046},{"className":1045},[],[1047],{"type":23,"value":1048},"get_audit_log",{"type":17,"tag":108,"props":1050,"children":1051},{},[1052],{"type":23,"value":1053},"Returns audit events for bucket operations, including object writes, reads, branch changes, merges, and credential actions.",{"type":17,"tag":108,"props":1055,"children":1056},{},[1057],{"type":23,"value":454},{"type":17,"tag":25,"props":1059,"children":1060},{},[1061,1063,1068,1070,1075,1076,1081],{"type":23,"value":1062},"The tools are regular MCP tools, but they are not tenant tools. After ",{"type":17,"tag":124,"props":1064,"children":1066},{"className":1065},[],[1067],{"type":23,"value":145},{"type":23,"value":1069},", bucket operations require the ",{"type":17,"tag":124,"props":1071,"children":1073},{"className":1072},[],[1074],{"type":23,"value":129},{"type":23,"value":131},{"type":17,"tag":124,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":23,"value":137},{"type":23,"value":1082}," returned by the Agent MCP server.",{"type":17,"tag":61,"props":1084,"children":1086},{"id":1085},"create-a-bucket",[1087],{"type":23,"value":1088},"Create a bucket",{"type":17,"tag":25,"props":1090,"children":1091},{},[1092,1094,1099],{"type":23,"value":1093},"The agent starts by calling ",{"type":17,"tag":124,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":23,"value":145},{"type":23,"value":1100},". It takes no arguments.",{"type":17,"tag":1102,"props":1103,"children":1107},"pre",{"className":1104,"code":1105,"language":1106,"meta":10,"style":10},"language-json shiki shiki-themes synthwave-84","// tool call\n{\n  \"tool\": \"create_bucket\",\n  \"input\": {}\n}\n","json",[1108],{"type":17,"tag":124,"props":1109,"children":1110},{"__ignoreMap":10},[1111,1123,1133,1158,1172],{"type":17,"tag":1112,"props":1113,"children":1116},"span",{"class":1114,"line":1115},"line",1,[1117],{"type":17,"tag":1112,"props":1118,"children":1120},{"style":1119},"--shiki-default:#848BBD;--shiki-default-font-style:italic",[1121],{"type":23,"value":1122},"// tool call\n",{"type":17,"tag":1112,"props":1124,"children":1126},{"class":1114,"line":1125},2,[1127],{"type":17,"tag":1112,"props":1128,"children":1130},{"style":1129},"--shiki-default:#BBBBBB",[1131],{"type":23,"value":1132},"{\n",{"type":17,"tag":1112,"props":1134,"children":1135},{"class":1114,"line":12},[1136,1142,1147,1153],{"type":17,"tag":1112,"props":1137,"children":1139},{"style":1138},"--shiki-default:#72F1B8",[1140],{"type":23,"value":1141},"  \"tool\"",{"type":17,"tag":1112,"props":1143,"children":1144},{"style":1129},[1145],{"type":23,"value":1146},": ",{"type":17,"tag":1112,"props":1148,"children":1150},{"style":1149},"--shiki-default:#FF8B39",[1151],{"type":23,"value":1152},"\"create_bucket\"",{"type":17,"tag":1112,"props":1154,"children":1155},{"style":1129},[1156],{"type":23,"value":1157},",\n",{"type":17,"tag":1112,"props":1159,"children":1161},{"class":1114,"line":1160},4,[1162,1167],{"type":17,"tag":1112,"props":1163,"children":1164},{"style":1138},[1165],{"type":23,"value":1166},"  \"input\"",{"type":17,"tag":1112,"props":1168,"children":1169},{"style":1129},[1170],{"type":23,"value":1171},": {}\n",{"type":17,"tag":1112,"props":1173,"children":1175},{"class":1114,"line":1174},5,[1176],{"type":17,"tag":1112,"props":1177,"children":1178},{"style":1129},[1179],{"type":23,"value":1180},"}\n",{"type":17,"tag":25,"props":1182,"children":1183},{},[1184],{"type":23,"value":1185},"Example response:",{"type":17,"tag":1102,"props":1187,"children":1189},{"className":1104,"code":1188,"language":1106,"meta":10,"style":10},"{\n  \"bucket_name\": \"autonomous-agent-f80549c3-1645-477f-be20-f5a71dd2439e\",\n  \"bucket_token\": \"eyJhbGciOiJSUzI1NiIsImtpZCI6...\"\n}\n",[1190],{"type":17,"tag":124,"props":1191,"children":1192},{"__ignoreMap":10},[1193,1200,1221,1238],{"type":17,"tag":1112,"props":1194,"children":1195},{"class":1114,"line":1115},[1196],{"type":17,"tag":1112,"props":1197,"children":1198},{"style":1129},[1199],{"type":23,"value":1132},{"type":17,"tag":1112,"props":1201,"children":1202},{"class":1114,"line":1125},[1203,1208,1212,1217],{"type":17,"tag":1112,"props":1204,"children":1205},{"style":1138},[1206],{"type":23,"value":1207},"  \"bucket_name\"",{"type":17,"tag":1112,"props":1209,"children":1210},{"style":1129},[1211],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1213,"children":1214},{"style":1149},[1215],{"type":23,"value":1216},"\"autonomous-agent-f80549c3-1645-477f-be20-f5a71dd2439e\"",{"type":17,"tag":1112,"props":1218,"children":1219},{"style":1129},[1220],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1222,"children":1223},{"class":1114,"line":12},[1224,1229,1233],{"type":17,"tag":1112,"props":1225,"children":1226},{"style":1138},[1227],{"type":23,"value":1228},"  \"bucket_token\"",{"type":17,"tag":1112,"props":1230,"children":1231},{"style":1129},[1232],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1234,"children":1235},{"style":1149},[1236],{"type":23,"value":1237},"\"eyJhbGciOiJSUzI1NiIsImtpZCI6...\"\n",{"type":17,"tag":1112,"props":1239,"children":1240},{"class":1114,"line":1160},[1241],{"type":17,"tag":1112,"props":1242,"children":1243},{"style":1129},[1244],{"type":23,"value":1180},{"type":17,"tag":25,"props":1246,"children":1247},{},[1248,1250,1255,1256,1261,1263,1268],{"type":23,"value":1249},"Every later call requires both ",{"type":17,"tag":124,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":23,"value":129},{"type":23,"value":131},{"type":17,"tag":124,"props":1257,"children":1259},{"className":1258},[],[1260],{"type":23,"value":137},{"type":23,"value":1262},". The ",{"type":17,"tag":124,"props":1264,"children":1266},{"className":1265},[],[1267],{"type":23,"value":137},{"type":23,"value":1269}," is not an OAuth token and does not identify a tenant. It is a bucket-scoped credential and cannot be recovered if lost. If S3-compatible access is returned, those credentials are also scoped to the created bucket.",{"type":17,"tag":61,"props":1271,"children":1273},{"id":1272},"store-objects",[1274],{"type":23,"value":1275},"Store objects",{"type":17,"tag":25,"props":1277,"children":1278},{},[1279],{"type":23,"value":1280},"Objects move over short-lived presigned URLs. There is no inline object transfer through MCP.",{"type":17,"tag":25,"props":1282,"children":1283},{},[1284],{"type":23,"value":1285},"Request a presigned upload URL:",{"type":17,"tag":1102,"props":1287,"children":1289},{"className":1104,"code":1288,"language":1106,"meta":10,"style":10},"// tool call\n{\n  \"tool\": \"upload_object\",\n  \"input\": {\n    \"bucket_name\": \"autonomous-agent-f80549c3-1645-477f-be20-f5a71dd2439e\",\n    \"bucket_token\": \"eyJhbGciOiJSUzI1NiIsImtpZCI6...\",\n    \"object_key\": \"reports/final.pdf\"\n  }\n}\n",[1290],{"type":17,"tag":124,"props":1291,"children":1292},{"__ignoreMap":10},[1293,1300,1307,1327,1339,1359,1381,1399,1408],{"type":17,"tag":1112,"props":1294,"children":1295},{"class":1114,"line":1115},[1296],{"type":17,"tag":1112,"props":1297,"children":1298},{"style":1119},[1299],{"type":23,"value":1122},{"type":17,"tag":1112,"props":1301,"children":1302},{"class":1114,"line":1125},[1303],{"type":17,"tag":1112,"props":1304,"children":1305},{"style":1129},[1306],{"type":23,"value":1132},{"type":17,"tag":1112,"props":1308,"children":1309},{"class":1114,"line":12},[1310,1314,1318,1323],{"type":17,"tag":1112,"props":1311,"children":1312},{"style":1138},[1313],{"type":23,"value":1141},{"type":17,"tag":1112,"props":1315,"children":1316},{"style":1129},[1317],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1319,"children":1320},{"style":1149},[1321],{"type":23,"value":1322},"\"upload_object\"",{"type":17,"tag":1112,"props":1324,"children":1325},{"style":1129},[1326],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1328,"children":1329},{"class":1114,"line":1160},[1330,1334],{"type":17,"tag":1112,"props":1331,"children":1332},{"style":1138},[1333],{"type":23,"value":1166},{"type":17,"tag":1112,"props":1335,"children":1336},{"style":1129},[1337],{"type":23,"value":1338},": {\n",{"type":17,"tag":1112,"props":1340,"children":1341},{"class":1114,"line":1174},[1342,1347,1351,1355],{"type":17,"tag":1112,"props":1343,"children":1344},{"style":1138},[1345],{"type":23,"value":1346},"    \"bucket_name\"",{"type":17,"tag":1112,"props":1348,"children":1349},{"style":1129},[1350],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1352,"children":1353},{"style":1149},[1354],{"type":23,"value":1216},{"type":17,"tag":1112,"props":1356,"children":1357},{"style":1129},[1358],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1360,"children":1362},{"class":1114,"line":1361},6,[1363,1368,1372,1377],{"type":17,"tag":1112,"props":1364,"children":1365},{"style":1138},[1366],{"type":23,"value":1367},"    \"bucket_token\"",{"type":17,"tag":1112,"props":1369,"children":1370},{"style":1129},[1371],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1373,"children":1374},{"style":1149},[1375],{"type":23,"value":1376},"\"eyJhbGciOiJSUzI1NiIsImtpZCI6...\"",{"type":17,"tag":1112,"props":1378,"children":1379},{"style":1129},[1380],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1382,"children":1384},{"class":1114,"line":1383},7,[1385,1390,1394],{"type":17,"tag":1112,"props":1386,"children":1387},{"style":1138},[1388],{"type":23,"value":1389},"    \"object_key\"",{"type":17,"tag":1112,"props":1391,"children":1392},{"style":1129},[1393],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1395,"children":1396},{"style":1149},[1397],{"type":23,"value":1398},"\"reports/final.pdf\"\n",{"type":17,"tag":1112,"props":1400,"children":1402},{"class":1114,"line":1401},8,[1403],{"type":17,"tag":1112,"props":1404,"children":1405},{"style":1129},[1406],{"type":23,"value":1407},"  }\n",{"type":17,"tag":1112,"props":1409,"children":1411},{"class":1114,"line":1410},9,[1412],{"type":17,"tag":1112,"props":1413,"children":1414},{"style":1129},[1415],{"type":23,"value":1180},{"type":17,"tag":25,"props":1417,"children":1418},{},[1419],{"type":23,"value":1185},{"type":17,"tag":1102,"props":1421,"children":1423},{"className":1104,"code":1422,"language":1106,"meta":10,"style":10},"{\n  \"url\": \"https://s3.ironshard.ai/autonomous-agent-f80549c3-1645-477f-be20-f5a71dd2439e/reports/final.pdf?X-Amz-Algorithm=...\",\n  \"http_method\": \"PUT\"\n}\n",[1424],{"type":17,"tag":124,"props":1425,"children":1426},{"__ignoreMap":10},[1427,1434,1455,1472],{"type":17,"tag":1112,"props":1428,"children":1429},{"class":1114,"line":1115},[1430],{"type":17,"tag":1112,"props":1431,"children":1432},{"style":1129},[1433],{"type":23,"value":1132},{"type":17,"tag":1112,"props":1435,"children":1436},{"class":1114,"line":1125},[1437,1442,1446,1451],{"type":17,"tag":1112,"props":1438,"children":1439},{"style":1138},[1440],{"type":23,"value":1441},"  \"url\"",{"type":17,"tag":1112,"props":1443,"children":1444},{"style":1129},[1445],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1447,"children":1448},{"style":1149},[1449],{"type":23,"value":1450},"\"https://s3.ironshard.ai/autonomous-agent-f80549c3-1645-477f-be20-f5a71dd2439e/reports/final.pdf?X-Amz-Algorithm=...\"",{"type":17,"tag":1112,"props":1452,"children":1453},{"style":1129},[1454],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1456,"children":1457},{"class":1114,"line":12},[1458,1463,1467],{"type":17,"tag":1112,"props":1459,"children":1460},{"style":1138},[1461],{"type":23,"value":1462},"  \"http_method\"",{"type":17,"tag":1112,"props":1464,"children":1465},{"style":1129},[1466],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1468,"children":1469},{"style":1149},[1470],{"type":23,"value":1471},"\"PUT\"\n",{"type":17,"tag":1112,"props":1473,"children":1474},{"class":1114,"line":1160},[1475],{"type":17,"tag":1112,"props":1476,"children":1477},{"style":1129},[1478],{"type":23,"value":1180},{"type":17,"tag":25,"props":1480,"children":1481},{},[1482,1484,1489,1491,1496,1498,1503],{"type":23,"value":1483},"Send the object bytes as the body of an HTTP ",{"type":17,"tag":124,"props":1485,"children":1487},{"className":1486},[],[1488],{"type":23,"value":540},{"type":23,"value":1490}," to that URL. The URL carries its own authorization, so no additional headers are required, and there is no separate completion step. Reading an object works the same way through ",{"type":17,"tag":124,"props":1492,"children":1494},{"className":1493},[],[1495],{"type":23,"value":558},{"type":23,"value":1497},", which returns an equivalent ",{"type":17,"tag":124,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":23,"value":568},{"type":23,"value":1504}," URL whose response body contains the bytes.",{"type":17,"tag":25,"props":1506,"children":1507},{},[1508],{"type":23,"value":1509},"Presigned URLs are short-lived bearer capabilities. Treat them as secrets and request a fresh one rather than storing them.",{"type":17,"tag":25,"props":1511,"children":1512},{},[1513,1515,1520],{"type":23,"value":1514},"Confirm a write with ",{"type":17,"tag":124,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":23,"value":628},{"type":23,"value":1521},":",{"type":17,"tag":1102,"props":1523,"children":1525},{"className":1104,"code":1524,"language":1106,"meta":10,"style":10},"{\n  \"object_key\": \"reports/final.pdf\",\n  \"size_bytes\": 18,\n  \"last_modified\": \"2026-08-26T08:10:51\",\n  \"etag\": \"7c6da1838ff3a268a32c9e1c26230fc3\",\n  \"version_id\": \"46\",\n  \"content_type\": \"application/pdf\",\n  \"bucket_name\": \"autonomous-agent-f80549c3-1645-477f-be20-f5a71dd2439e\",\n  \"metadata\": {},\n  \"tags\": {}\n}\n",[1526],{"type":17,"tag":124,"props":1527,"children":1528},{"__ignoreMap":10},[1529,1536,1557,1579,1600,1621,1642,1663,1682,1695,1708],{"type":17,"tag":1112,"props":1530,"children":1531},{"class":1114,"line":1115},[1532],{"type":17,"tag":1112,"props":1533,"children":1534},{"style":1129},[1535],{"type":23,"value":1132},{"type":17,"tag":1112,"props":1537,"children":1538},{"class":1114,"line":1125},[1539,1544,1548,1553],{"type":17,"tag":1112,"props":1540,"children":1541},{"style":1138},[1542],{"type":23,"value":1543},"  \"object_key\"",{"type":17,"tag":1112,"props":1545,"children":1546},{"style":1129},[1547],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1549,"children":1550},{"style":1149},[1551],{"type":23,"value":1552},"\"reports/final.pdf\"",{"type":17,"tag":1112,"props":1554,"children":1555},{"style":1129},[1556],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1558,"children":1559},{"class":1114,"line":12},[1560,1565,1569,1575],{"type":17,"tag":1112,"props":1561,"children":1562},{"style":1138},[1563],{"type":23,"value":1564},"  \"size_bytes\"",{"type":17,"tag":1112,"props":1566,"children":1567},{"style":1129},[1568],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1570,"children":1572},{"style":1571},"--shiki-default:#F97E72",[1573],{"type":23,"value":1574},"18",{"type":17,"tag":1112,"props":1576,"children":1577},{"style":1129},[1578],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1580,"children":1581},{"class":1114,"line":1160},[1582,1587,1591,1596],{"type":17,"tag":1112,"props":1583,"children":1584},{"style":1138},[1585],{"type":23,"value":1586},"  \"last_modified\"",{"type":17,"tag":1112,"props":1588,"children":1589},{"style":1129},[1590],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1592,"children":1593},{"style":1149},[1594],{"type":23,"value":1595},"\"2026-08-26T08:10:51\"",{"type":17,"tag":1112,"props":1597,"children":1598},{"style":1129},[1599],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1601,"children":1602},{"class":1114,"line":1174},[1603,1608,1612,1617],{"type":17,"tag":1112,"props":1604,"children":1605},{"style":1138},[1606],{"type":23,"value":1607},"  \"etag\"",{"type":17,"tag":1112,"props":1609,"children":1610},{"style":1129},[1611],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1613,"children":1614},{"style":1149},[1615],{"type":23,"value":1616},"\"7c6da1838ff3a268a32c9e1c26230fc3\"",{"type":17,"tag":1112,"props":1618,"children":1619},{"style":1129},[1620],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1622,"children":1623},{"class":1114,"line":1361},[1624,1629,1633,1638],{"type":17,"tag":1112,"props":1625,"children":1626},{"style":1138},[1627],{"type":23,"value":1628},"  \"version_id\"",{"type":17,"tag":1112,"props":1630,"children":1631},{"style":1129},[1632],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1634,"children":1635},{"style":1149},[1636],{"type":23,"value":1637},"\"46\"",{"type":17,"tag":1112,"props":1639,"children":1640},{"style":1129},[1641],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1643,"children":1644},{"class":1114,"line":1383},[1645,1650,1654,1659],{"type":17,"tag":1112,"props":1646,"children":1647},{"style":1138},[1648],{"type":23,"value":1649},"  \"content_type\"",{"type":17,"tag":1112,"props":1651,"children":1652},{"style":1129},[1653],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1655,"children":1656},{"style":1149},[1657],{"type":23,"value":1658},"\"application/pdf\"",{"type":17,"tag":1112,"props":1660,"children":1661},{"style":1129},[1662],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1664,"children":1665},{"class":1114,"line":1401},[1666,1670,1674,1678],{"type":17,"tag":1112,"props":1667,"children":1668},{"style":1138},[1669],{"type":23,"value":1207},{"type":17,"tag":1112,"props":1671,"children":1672},{"style":1129},[1673],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1675,"children":1676},{"style":1149},[1677],{"type":23,"value":1216},{"type":17,"tag":1112,"props":1679,"children":1680},{"style":1129},[1681],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1683,"children":1684},{"class":1114,"line":1410},[1685,1690],{"type":17,"tag":1112,"props":1686,"children":1687},{"style":1138},[1688],{"type":23,"value":1689},"  \"metadata\"",{"type":17,"tag":1112,"props":1691,"children":1692},{"style":1129},[1693],{"type":23,"value":1694},": {},\n",{"type":17,"tag":1112,"props":1696,"children":1698},{"class":1114,"line":1697},10,[1699,1704],{"type":17,"tag":1112,"props":1700,"children":1701},{"style":1138},[1702],{"type":23,"value":1703},"  \"tags\"",{"type":17,"tag":1112,"props":1705,"children":1706},{"style":1129},[1707],{"type":23,"value":1171},{"type":17,"tag":1112,"props":1709,"children":1711},{"class":1114,"line":1710},11,[1712],{"type":17,"tag":1112,"props":1713,"children":1714},{"style":1129},[1715],{"type":23,"value":1180},{"type":17,"tag":61,"props":1717,"children":1719},{"id":1718},"use-branches",[1720],{"type":23,"value":1721},"Use branches",{"type":17,"tag":25,"props":1723,"children":1724},{},[1725],{"type":17,"tag":295,"props":1726,"children":1727},{},[1728],{"type":23,"value":1729},"This workflow depends on tools marked Planned and is not yet available on the public Agent MCP server.",{"type":17,"tag":25,"props":1731,"children":1732},{},[1733],{"type":23,"value":1734},"IronShard branches let an agent make changes without immediately changing the main bucket state.",{"type":17,"tag":1102,"props":1736,"children":1738},{"className":1104,"code":1737,"language":1106,"meta":10,"style":10},"// tool call\n{\n  \"tool\": \"create_branch\",\n  \"input\": {\n    \"bucket_id\": \"agb_9f3a21c0\",\n    \"bucket_token\": \"ist_bucket_...\",\n    \"branch\": \"analysis-draft\",\n    \"base\": \"main\"\n  }\n}\n",[1739],{"type":17,"tag":124,"props":1740,"children":1741},{"__ignoreMap":10},[1742,1749,1756,1776,1787,1808,1828,1849,1866,1873],{"type":17,"tag":1112,"props":1743,"children":1744},{"class":1114,"line":1115},[1745],{"type":17,"tag":1112,"props":1746,"children":1747},{"style":1119},[1748],{"type":23,"value":1122},{"type":17,"tag":1112,"props":1750,"children":1751},{"class":1114,"line":1125},[1752],{"type":17,"tag":1112,"props":1753,"children":1754},{"style":1129},[1755],{"type":23,"value":1132},{"type":17,"tag":1112,"props":1757,"children":1758},{"class":1114,"line":12},[1759,1763,1767,1772],{"type":17,"tag":1112,"props":1760,"children":1761},{"style":1138},[1762],{"type":23,"value":1141},{"type":17,"tag":1112,"props":1764,"children":1765},{"style":1129},[1766],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1768,"children":1769},{"style":1149},[1770],{"type":23,"value":1771},"\"create_branch\"",{"type":17,"tag":1112,"props":1773,"children":1774},{"style":1129},[1775],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1777,"children":1778},{"class":1114,"line":1160},[1779,1783],{"type":17,"tag":1112,"props":1780,"children":1781},{"style":1138},[1782],{"type":23,"value":1166},{"type":17,"tag":1112,"props":1784,"children":1785},{"style":1129},[1786],{"type":23,"value":1338},{"type":17,"tag":1112,"props":1788,"children":1789},{"class":1114,"line":1174},[1790,1795,1799,1804],{"type":17,"tag":1112,"props":1791,"children":1792},{"style":1138},[1793],{"type":23,"value":1794},"    \"bucket_id\"",{"type":17,"tag":1112,"props":1796,"children":1797},{"style":1129},[1798],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1800,"children":1801},{"style":1149},[1802],{"type":23,"value":1803},"\"agb_9f3a21c0\"",{"type":17,"tag":1112,"props":1805,"children":1806},{"style":1129},[1807],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1809,"children":1810},{"class":1114,"line":1361},[1811,1815,1819,1824],{"type":17,"tag":1112,"props":1812,"children":1813},{"style":1138},[1814],{"type":23,"value":1367},{"type":17,"tag":1112,"props":1816,"children":1817},{"style":1129},[1818],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1820,"children":1821},{"style":1149},[1822],{"type":23,"value":1823},"\"ist_bucket_...\"",{"type":17,"tag":1112,"props":1825,"children":1826},{"style":1129},[1827],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1829,"children":1830},{"class":1114,"line":1383},[1831,1836,1840,1845],{"type":17,"tag":1112,"props":1832,"children":1833},{"style":1138},[1834],{"type":23,"value":1835},"    \"branch\"",{"type":17,"tag":1112,"props":1837,"children":1838},{"style":1129},[1839],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1841,"children":1842},{"style":1149},[1843],{"type":23,"value":1844},"\"analysis-draft\"",{"type":17,"tag":1112,"props":1846,"children":1847},{"style":1129},[1848],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1850,"children":1851},{"class":1114,"line":1401},[1852,1857,1861],{"type":17,"tag":1112,"props":1853,"children":1854},{"style":1138},[1855],{"type":23,"value":1856},"    \"base\"",{"type":17,"tag":1112,"props":1858,"children":1859},{"style":1129},[1860],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1862,"children":1863},{"style":1149},[1864],{"type":23,"value":1865},"\"main\"\n",{"type":17,"tag":1112,"props":1867,"children":1868},{"class":1114,"line":1410},[1869],{"type":17,"tag":1112,"props":1870,"children":1871},{"style":1129},[1872],{"type":23,"value":1407},{"type":17,"tag":1112,"props":1874,"children":1875},{"class":1114,"line":1697},[1876],{"type":17,"tag":1112,"props":1877,"children":1878},{"style":1129},[1879],{"type":23,"value":1180},{"type":17,"tag":25,"props":1881,"children":1882},{},[1883],{"type":23,"value":1884},"The agent can then request a presigned upload URL scoped to the branch:",{"type":17,"tag":1102,"props":1886,"children":1888},{"className":1104,"code":1887,"language":1106,"meta":10,"style":10},"// tool call\n{\n  \"tool\": \"create_branch_object_upload_url\",\n  \"input\": {\n    \"bucket_id\": \"agb_9f3a21c0\",\n    \"bucket_token\": \"ist_bucket_...\",\n    \"branch\": \"analysis-draft\",\n    \"object_key\": \"notes/summary.json\"\n  }\n}\n",[1889],{"type":17,"tag":124,"props":1890,"children":1891},{"__ignoreMap":10},[1892,1899,1906,1926,1937,1956,1975,1994,2010,2017],{"type":17,"tag":1112,"props":1893,"children":1894},{"class":1114,"line":1115},[1895],{"type":17,"tag":1112,"props":1896,"children":1897},{"style":1119},[1898],{"type":23,"value":1122},{"type":17,"tag":1112,"props":1900,"children":1901},{"class":1114,"line":1125},[1902],{"type":17,"tag":1112,"props":1903,"children":1904},{"style":1129},[1905],{"type":23,"value":1132},{"type":17,"tag":1112,"props":1907,"children":1908},{"class":1114,"line":12},[1909,1913,1917,1922],{"type":17,"tag":1112,"props":1910,"children":1911},{"style":1138},[1912],{"type":23,"value":1141},{"type":17,"tag":1112,"props":1914,"children":1915},{"style":1129},[1916],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1918,"children":1919},{"style":1149},[1920],{"type":23,"value":1921},"\"create_branch_object_upload_url\"",{"type":17,"tag":1112,"props":1923,"children":1924},{"style":1129},[1925],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1927,"children":1928},{"class":1114,"line":1160},[1929,1933],{"type":17,"tag":1112,"props":1930,"children":1931},{"style":1138},[1932],{"type":23,"value":1166},{"type":17,"tag":1112,"props":1934,"children":1935},{"style":1129},[1936],{"type":23,"value":1338},{"type":17,"tag":1112,"props":1938,"children":1939},{"class":1114,"line":1174},[1940,1944,1948,1952],{"type":17,"tag":1112,"props":1941,"children":1942},{"style":1138},[1943],{"type":23,"value":1794},{"type":17,"tag":1112,"props":1945,"children":1946},{"style":1129},[1947],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1949,"children":1950},{"style":1149},[1951],{"type":23,"value":1803},{"type":17,"tag":1112,"props":1953,"children":1954},{"style":1129},[1955],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1957,"children":1958},{"class":1114,"line":1361},[1959,1963,1967,1971],{"type":17,"tag":1112,"props":1960,"children":1961},{"style":1138},[1962],{"type":23,"value":1367},{"type":17,"tag":1112,"props":1964,"children":1965},{"style":1129},[1966],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1968,"children":1969},{"style":1149},[1970],{"type":23,"value":1823},{"type":17,"tag":1112,"props":1972,"children":1973},{"style":1129},[1974],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1976,"children":1977},{"class":1114,"line":1383},[1978,1982,1986,1990],{"type":17,"tag":1112,"props":1979,"children":1980},{"style":1138},[1981],{"type":23,"value":1835},{"type":17,"tag":1112,"props":1983,"children":1984},{"style":1129},[1985],{"type":23,"value":1146},{"type":17,"tag":1112,"props":1987,"children":1988},{"style":1149},[1989],{"type":23,"value":1844},{"type":17,"tag":1112,"props":1991,"children":1992},{"style":1129},[1993],{"type":23,"value":1157},{"type":17,"tag":1112,"props":1995,"children":1996},{"class":1114,"line":1401},[1997,2001,2005],{"type":17,"tag":1112,"props":1998,"children":1999},{"style":1138},[2000],{"type":23,"value":1389},{"type":17,"tag":1112,"props":2002,"children":2003},{"style":1129},[2004],{"type":23,"value":1146},{"type":17,"tag":1112,"props":2006,"children":2007},{"style":1149},[2008],{"type":23,"value":2009},"\"notes/summary.json\"\n",{"type":17,"tag":1112,"props":2011,"children":2012},{"class":1114,"line":1410},[2013],{"type":17,"tag":1112,"props":2014,"children":2015},{"style":1129},[2016],{"type":23,"value":1407},{"type":17,"tag":1112,"props":2018,"children":2019},{"class":1114,"line":1697},[2020],{"type":17,"tag":1112,"props":2021,"children":2022},{"style":1129},[2023],{"type":23,"value":1180},{"type":17,"tag":25,"props":2025,"children":2026},{},[2027],{"type":23,"value":2028},"Before merging, the agent can inspect the diff:",{"type":17,"tag":1102,"props":2030,"children":2032},{"className":1104,"code":2031,"language":1106,"meta":10,"style":10},"// tool call\n{\n  \"tool\": \"diff_branch\",\n  \"input\": {\n    \"bucket_id\": \"agb_9f3a21c0\",\n    \"bucket_token\": \"ist_bucket_...\",\n    \"branch\": \"analysis-draft\",\n    \"target\": \"main\"\n  }\n}\n",[2033],{"type":17,"tag":124,"props":2034,"children":2035},{"__ignoreMap":10},[2036,2043,2050,2070,2081,2100,2119,2138,2154,2161],{"type":17,"tag":1112,"props":2037,"children":2038},{"class":1114,"line":1115},[2039],{"type":17,"tag":1112,"props":2040,"children":2041},{"style":1119},[2042],{"type":23,"value":1122},{"type":17,"tag":1112,"props":2044,"children":2045},{"class":1114,"line":1125},[2046],{"type":17,"tag":1112,"props":2047,"children":2048},{"style":1129},[2049],{"type":23,"value":1132},{"type":17,"tag":1112,"props":2051,"children":2052},{"class":1114,"line":12},[2053,2057,2061,2066],{"type":17,"tag":1112,"props":2054,"children":2055},{"style":1138},[2056],{"type":23,"value":1141},{"type":17,"tag":1112,"props":2058,"children":2059},{"style":1129},[2060],{"type":23,"value":1146},{"type":17,"tag":1112,"props":2062,"children":2063},{"style":1149},[2064],{"type":23,"value":2065},"\"diff_branch\"",{"type":17,"tag":1112,"props":2067,"children":2068},{"style":1129},[2069],{"type":23,"value":1157},{"type":17,"tag":1112,"props":2071,"children":2072},{"class":1114,"line":1160},[2073,2077],{"type":17,"tag":1112,"props":2074,"children":2075},{"style":1138},[2076],{"type":23,"value":1166},{"type":17,"tag":1112,"props":2078,"children":2079},{"style":1129},[2080],{"type":23,"value":1338},{"type":17,"tag":1112,"props":2082,"children":2083},{"class":1114,"line":1174},[2084,2088,2092,2096],{"type":17,"tag":1112,"props":2085,"children":2086},{"style":1138},[2087],{"type":23,"value":1794},{"type":17,"tag":1112,"props":2089,"children":2090},{"style":1129},[2091],{"type":23,"value":1146},{"type":17,"tag":1112,"props":2093,"children":2094},{"style":1149},[2095],{"type":23,"value":1803},{"type":17,"tag":1112,"props":2097,"children":2098},{"style":1129},[2099],{"type":23,"value":1157},{"type":17,"tag":1112,"props":2101,"children":2102},{"class":1114,"line":1361},[2103,2107,2111,2115],{"type":17,"tag":1112,"props":2104,"children":2105},{"style":1138},[2106],{"type":23,"value":1367},{"type":17,"tag":1112,"props":2108,"children":2109},{"style":1129},[2110],{"type":23,"value":1146},{"type":17,"tag":1112,"props":2112,"children":2113},{"style":1149},[2114],{"type":23,"value":1823},{"type":17,"tag":1112,"props":2116,"children":2117},{"style":1129},[2118],{"type":23,"value":1157},{"type":17,"tag":1112,"props":2120,"children":2121},{"class":1114,"line":1383},[2122,2126,2130,2134],{"type":17,"tag":1112,"props":2123,"children":2124},{"style":1138},[2125],{"type":23,"value":1835},{"type":17,"tag":1112,"props":2127,"children":2128},{"style":1129},[2129],{"type":23,"value":1146},{"type":17,"tag":1112,"props":2131,"children":2132},{"style":1149},[2133],{"type":23,"value":1844},{"type":17,"tag":1112,"props":2135,"children":2136},{"style":1129},[2137],{"type":23,"value":1157},{"type":17,"tag":1112,"props":2139,"children":2140},{"class":1114,"line":1401},[2141,2146,2150],{"type":17,"tag":1112,"props":2142,"children":2143},{"style":1138},[2144],{"type":23,"value":2145},"    \"target\"",{"type":17,"tag":1112,"props":2147,"children":2148},{"style":1129},[2149],{"type":23,"value":1146},{"type":17,"tag":1112,"props":2151,"children":2152},{"style":1149},[2153],{"type":23,"value":1865},{"type":17,"tag":1112,"props":2155,"children":2156},{"class":1114,"line":1410},[2157],{"type":17,"tag":1112,"props":2158,"children":2159},{"style":1129},[2160],{"type":23,"value":1407},{"type":17,"tag":1112,"props":2162,"children":2163},{"class":1114,"line":1697},[2164],{"type":17,"tag":1112,"props":2165,"children":2166},{"style":1129},[2167],{"type":23,"value":1180},{"type":17,"tag":61,"props":2169,"children":2171},{"id":2170},"handoff-and-adoption",[2172],{"type":23,"value":2173},"Handoff and adoption",{"type":17,"tag":25,"props":2175,"children":2176},{},[2177],{"type":17,"tag":295,"props":2178,"children":2179},{},[2180],{"type":23,"value":1729},{"type":17,"tag":25,"props":2182,"children":2183},{},[2184],{"type":23,"value":2185},"A bucket created through the Agent MCP server can be used by the agent immediately. Human adoption is optional, not required for the bucket to be useful.",{"type":17,"tag":25,"props":2187,"children":2188},{},[2189,2191,2196,2198,2203],{"type":23,"value":2190},"If the agent wants to notify an owner or supervising agent, it can call ",{"type":17,"tag":124,"props":2192,"children":2194},{"className":2193},[],[2195],{"type":23,"value":508},{"type":23,"value":2197}," or use the handoff URL returned by ",{"type":17,"tag":124,"props":2199,"children":2201},{"className":2200},[],[2202],{"type":23,"value":145},{"type":23,"value":147},{"type":17,"tag":25,"props":2205,"children":2206},{},[2207],{"type":23,"value":2208},"The handoff can include:",{"type":17,"tag":172,"props":2210,"children":2211},{},[2212,2217,2222,2227,2232],{"type":17,"tag":176,"props":2213,"children":2214},{},[2215],{"type":23,"value":2216},"the bucket ID and label;",{"type":17,"tag":176,"props":2218,"children":2219},{},[2220],{"type":23,"value":2221},"the reason the agent created the bucket;",{"type":17,"tag":176,"props":2223,"children":2224},{},[2225],{"type":23,"value":2226},"usage and object summaries;",{"type":17,"tag":176,"props":2228,"children":2229},{},[2230],{"type":23,"value":2231},"audit events;",{"type":17,"tag":176,"props":2233,"children":2234},{},[2235],{"type":23,"value":2236},"links for a human or organization to adopt the bucket into a production IronShard tenant.",{"type":17,"tag":25,"props":2238,"children":2239},{},[2240],{"type":23,"value":2241},"When a bucket is adopted into a tenant:",{"type":17,"tag":2243,"props":2244,"children":2245},"ol",{},[2246,2251,2256,2261,2266],{"type":17,"tag":176,"props":2247,"children":2248},{},[2249],{"type":23,"value":2250},"The bucket becomes tenant-owned and manageable through the Production MCP server;",{"type":17,"tag":176,"props":2252,"children":2253},{},[2254],{"type":23,"value":2255},"The bucket audit log remains visible to the tenant;",{"type":17,"tag":176,"props":2257,"children":2258},{},[2259],{"type":23,"value":2260},"Existing bucket-scoped credentials can be revoked, preserved temporarily, or converted into managed agent credentials, depending on tenant policy;",{"type":17,"tag":176,"props":2262,"children":2263},{},[2264],{"type":23,"value":2265},"Future production operations use normal MCP OAuth and account-level policy;",{"type":17,"tag":176,"props":2267,"children":2268},{},[2269],{"type":23,"value":2270},"Production tools become available according to the granted tenant scopes.",{"type":17,"tag":25,"props":2272,"children":2273},{},[2274],{"type":23,"value":2275},"The public Agent MCP server does not issue tenant OAuth credentials.",{"type":17,"tag":61,"props":2277,"children":2279},{"id":2278},"constraints",[2280],{"type":23,"value":2281},"Constraints",{"type":17,"tag":25,"props":2283,"children":2284},{},[2285],{"type":23,"value":2286},"Buckets created through the Agent MCP server are bounded by policy. Exact limits are set by the active bucket policy and are subject to change.",{"type":17,"tag":172,"props":2288,"children":2289},{},[2290,2295,2300,2305,2310,2315,2320],{"type":17,"tag":176,"props":2291,"children":2292},{},[2293],{"type":23,"value":2294},"Bucket credentials are scoped to one bucket.",{"type":17,"tag":176,"props":2296,"children":2297},{},[2298],{"type":23,"value":2299},"Bucket credentials are not OAuth tokens and do not grant tenant access.",{"type":17,"tag":176,"props":2301,"children":2302},{},[2303],{"type":23,"value":2304},"Default storage, object-count, request, and egress limits apply.",{"type":17,"tag":176,"props":2306,"children":2307},{},[2308],{"type":23,"value":2309},"Optional S3-compatible credentials, if issued, are scoped to the created bucket.",{"type":17,"tag":176,"props":2311,"children":2312},{},[2313],{"type":23,"value":2314},"External bucket connectors are not available through the public Agent MCP server.",{"type":17,"tag":176,"props":2316,"children":2317},{},[2318],{"type":23,"value":2319},"Billing, organization settings, team management, and tenant policies are not available through the public Agent MCP server.",{"type":17,"tag":176,"props":2321,"children":2322},{},[2323],{"type":23,"value":2324},"Abuse controls and rate limits may apply to public bucket creation and operation.",{"type":17,"tag":61,"props":2326,"children":2328},{"id":2327},"production-access",[2329],{"type":23,"value":2330},"Production access",{"type":17,"tag":25,"props":2332,"children":2333},{},[2334],{"type":23,"value":2335},"Production IronShard access is intentionally separate from public agent bucket creation.",{"type":17,"tag":25,"props":2337,"children":2338},{},[2339,2341,2347],{"type":23,"value":2340},"Authenticated production tools are exposed only by the Production MCP server at ",{"type":17,"tag":124,"props":2342,"children":2344},{"className":2343},[],[2345],{"type":23,"value":2346},"https://mcp.ironshard.ai/mcp",{"type":23,"value":2348}," and require normal MCP OAuth. Agents cannot obtain tenant access, billing access, organization access, or production policy control by calling the public Agent MCP server.",{"type":17,"tag":2350,"props":2351,"children":2352},"style",{},[2353],{"type":23,"value":2354},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":10,"searchDepth":1125,"depth":1125,"links":2356},[2357,2358,2359,2360,2361,2362,2363,2364,2365],{"id":63,"depth":1125,"text":66},{"id":202,"depth":1125,"text":205},{"id":302,"depth":1125,"text":305},{"id":1085,"depth":1125,"text":1088},{"id":1272,"depth":1125,"text":1275},{"id":1718,"depth":1125,"text":1721},{"id":2170,"depth":1125,"text":2173},{"id":2278,"depth":1125,"text":2281},{"id":2327,"depth":1125,"text":2330},"markdown","content:docs:agent-buckets.md","content","docs/agent-buckets.md","docs/agent-buckets","md",[2373],{"title":2374,"_path":2375,"children":2376},"Documentation","/docs",[2377,2378,2381,2384,2387,2390,2393,2396,2399],{"title":4,"_path":7,"order":12},{"title":2379,"_path":2380,"order":1710},"API Compatibility and Extensibility","/docs/api-compatibility",{"title":2382,"_path":2383,"order":1697},"Branching and Snapshots","/docs/branching",{"title":2385,"_path":2386,"order":1174},"GDPR Everywhere","/docs/gdpr-everywhere",{"title":2388,"_path":2389,"order":1401},"Secure Ingest Pipeline","/docs/ingest-pipeline",{"title":2391,"_path":2392,"order":1361},"Intelligent Caching","/docs/intelligent-caching",{"title":2394,"_path":2395,"order":1383},"Resilience and Adaptive Redundancy","/docs/resilience",{"title":2397,"_path":2398,"order":1160},"Security and Data Sovereignty","/docs/security-and-data-sovereignty",{"title":2400,"_path":2401,"order":1115},"System Architecture","/docs/system-architecture",1787936051775]