Interface ToolInterface

Tool entity interface

Mirrors macs-node-sdk/lib/tools/models/tool.js. Tools are callable units (HTTP endpoints) that agents invoke during chat. Required fields on create: name, friendly_name, short_description, tool_schema, url.

interface ToolInterface {
    external_id?: string;
    extensors?: { [key: string]: string };
    record_history?: RecordHistory;
    id?: string;
    org?: string;
    user?: string;
    image?: string;
    name: string;
    friendly_name: string;
    friendly_name_slug?: string;
    short_description: string;
    source_url?: string;
    tool_schema: object;
    default_environment_secrets?: string;
    required_environment_variables?: string[];
    url: string;
    public?: boolean;
    featured?: boolean;
    active?: boolean;
    keywords?: string[];
    tags?: string[];
}

Hierarchy (View Summary)

Properties

external_id?: string

External system identifier for integration with third-party systems

extensors?: { [key: string]: string }

Extended properties for custom integrations

record_history?: RecordHistory

Record history tracking information

id?: string

Unique identifier for the entity

org?: string
user?: string
image?: string
name: string

Machine name (required, unique)

friendly_name: string

Human-readable name (required)

friendly_name_slug?: string

URL-safe slug derived from friendly_name — auto-generated server-side

short_description: string

One-line description (required)

source_url?: string

Link to the tool's source repo (optional)

tool_schema: object

JSON-Schema object describing the tool's arguments (required)

default_environment_secrets?: string

Default per-tool secrets (encrypted server-side)

required_environment_variables?: string[]

Environment variable names the tool requires at execution time

url: string

Tool execution endpoint (required)

public?: boolean

Public listing flag

featured?: boolean

Featured listing flag

active?: boolean

Whether the entity is active

keywords?: string[]
tags?: string[]