list_utilities
Retrieve the full catalog of vetted utilities and agents from the CustomClaw registry. Returns JSON with utilities and agents arrays, results cached for 5 minutes.
Instructions
List every utility and agent available in the CustomClaw registry (https://customclaw.company). Results are cached for 5 minutes. Returns catalog JSON with utilities and agents arrays.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.js:272-275 (handler)The handler for the 'list_utilities' tool: fetches the catalog (with 5-minute cache) and returns the full catalog JSON as the tool result.
case 'list_utilities': { const catalog = await fetchCatalog(); return jsonResult(catalog); } - index.js:189-200 (registration)The tool registration/definition, including name, description, and inputSchema (no parameters required) for 'list_utilities'.
const TOOLS = [ { name: 'list_utilities', description: 'List every utility and agent available in the CustomClaw registry (https://customclaw.company). ' + 'Results are cached for 5 minutes. Returns catalog JSON with utilities and agents arrays.', inputSchema: { type: 'object', properties: {}, additionalProperties: false, }, }, - index.js:195-200 (schema)Input schema for 'list_utilities': empty object with no properties (no arguments required).
inputSchema: { type: 'object', properties: {}, additionalProperties: false, }, }, - index.js:33-45 (helper)The fetchCatalog helper function that retrieves catalog data with 5-minute TTL caching, used by the list_utilities handler.
async function fetchCatalog({ force = false } = {}) { const now = Date.now(); if (!force && catalogCache.data && now - catalogCache.ts < CATALOG_TTL_MS) { return catalogCache.data; } const res = await fetch(`${SITE_BASE}/api/catalog`); if (!res.ok) { throw new Error(`Catalog fetch failed: HTTP ${res.status}`); } const data = await res.json(); catalogCache = { data, ts: now }; return data; } - index.js:98-100 (helper)The jsonResult helper that formats the catalog data as a JSON text response.
function jsonResult(obj) { return { content: [{ type: 'text', text: JSON.stringify(obj, null, 2) }] }; }