Tool Details: asset_store

Basic Information

Tool Name:asset_store
Asset Name:Store Asset
Description:Store an immutable content-addressed asset in your a/ namespace. The ID is the CAD3 hash — storing identical metadata twice returns the same ID (idempotent). Use for documents, definitions, or data needing a stable tamper-proof identity. For named operations callable via grid_run, prefer covia_write to o/<name> — simpler than store-then-pin.
Adapter:asset
Asset Hash:0xbe94684938b48781882f8c403ad082bc511892158351922372819b80fef00bac
Input
PropertyTypeDescription
metadata*objectArbitrary JSON metadata for the asset. The asset ID is computed from this object. Include a 'name' field for discoverability and a 'type' field for filtering (e.g. 'agent-definition', 'invoice', 'document').
contentTextstringOptional content payload as plain text (auto-encoded to UTF-8 Blob). Convenience alternative to content for text documents. Mutually exclusive with content.
contentstringOptional content payload as a hex-encoded Blob (must start with 0x). Retrieved separately via asset:content. Mutually exclusive with contentText.
Output
PropertyTypeDescription
idstringContent-addressed asset ID (hex hash)
storedboolean-

MCP Tool Usage Examples

This tool can be called via the MCP (Model Context Protocol) endpoint. Here are examples of how to use it:

JSON-RPC Call Example:

POST to https://venue-3.covia.ai/mcp

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "asset_store",
    "arguments": {
      "input": "your input here"
    }
  }
}
cURL Example:
curl -X POST https://venue-3.covia.ai/mcp \\
  -H "Content-Type: application/json" \\
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "asset_store",
      "arguments": {
        "input": "your input here"
      }
    }
  }'
Python Example:
import requests
import json

url = "https://venue-3.covia.ai/mcp"
payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "asset_store",
        "arguments": {
            "input": "your input here"
        }
    }
}

response = requests.post(url, json=payload)
result = response.json()
print(result)
JavaScript/Node.js Example:
const fetch = require('node-fetch');

const url = 'https://venue-3.covia.ai/mcp';
const payload = {
    jsonrpc: '2.0',
    id: 1,
    method: 'tools/call',
    params: {
        name: 'asset_store',
        arguments: {
            input: 'your input here'
        }
    }
};

fetch(url, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));

Asset Metadata

{
  "name": "Store Asset",
  "description": "Store an immutable content-addressed asset in your a/ namespace. The ID is the CAD3 hash — storing identical metadata twice returns the same ID (idempotent). Use for documents, definitions, or data needing a stable tamper-proof identity. For named operations callable via grid_run, prefer covia_write to o/<name> — simpler than store-then-pin.",
  "dateCreated": "2026-03-31T00:00:00Z",
  "operation": {
    "adapter": "asset:store",
    "toolName": "asset_store",
    "input": {
      "type": "object",
      "properties": {
        "metadata": {
          "type": "object",
          "description": "Arbitrary JSON metadata for the asset. The asset ID is computed from this object. Include a 'name' field for discoverability and a 'type' field for filtering (e.g. 'agent-definition', 'invoice', 'document')."
        },
        "content": {
          "type": "string",
          "description": "Optional content payload as a hex-encoded Blob (must start with 0x). Retrieved separately via asset:content. Mutually exclusive with contentText."
        },
        "contentText": {
          "type": "string",
          "description": "Optional content payload as plain text (auto-encoded to UTF-8 Blob). Convenience alternative to content for text documents. Mutually exclusive with content."
        }
      },
      "required": ["metadata"]
    },
    "output": {
      "type": "object",
      "properties": {
        "id": { "type": "string", "description": "Content-addressed asset ID (hex hash)" },
        "stored": { "type": "boolean" }
      }
    }
  }
}

Navigation

Back to adapter details

Back to all adapters

Back to index