Agent Skill · Frontline

custom-tools

Create, list, inspect, update, delete, execute (test), and assign Frontline custom tools (API call tools created by the account) from the CLI. Use when the user asks about custom tools, API tools, headers, arguments, query params, testing/running a custom tool, or assigning custom tools to agents.

Provider: Frontline Path in repo: custom-tools/SKILL.md

Skill body

What is a custom tool?

A custom tool is an HTTP/API-call tool that the account creates and assigns to agents, flows, and workflows. These are user-created tools — distinct from Frontline’s built-in system tools and from connected-integration (MCP) tools that come from a connected account. This skill (and the frontline custom-tools command) only manages custom tools.

The CLI command is frontline custom-tools. The older alias frontline tools still works for back-compat, but prefer custom-tools.

Prerequisites

List And Inspect

frontline custom-tools list
frontline custom-tools list --status ACTIVE --filter-text contact
frontline custom-tools list --table
frontline custom-tools describe <toolId>

List output includes id, name, status, method, url, and timestamps.

Create A Custom Tool

# GET with a path argument
frontline custom-tools create \
  --name "Fetch contact" \
  --description "Fetches a CRM contact" \
  --method GET \
  --url "https://api.example.com/contacts/{contactId}" \
  --arguments '[{"name":"contactId","description":"CRM contact ID","dataType":"STRING"}]' \
  --headers '[{"key":"Authorization","value":"Bearer {apiKey}"}]' \
  --query-params '[{"key":"include","value":"deals"}]'

# POST with a JSON body
frontline custom-tools create \
  --name "Create lead" \
  --description "Creates a lead in the CRM" \
  --method POST \
  --url "https://api.example.com/leads" \
  --arguments '[{"name":"nombre_cliente","description":"Client name","dataType":"STRING"},{"name":"tipo_cliente","description":"Client type","dataType":"STRING"}]' \
  --headers '[{"key":"Content-Type","value":"application/json"}]' \
  --body '{"nombre_cliente":"{nombre_cliente}","tipo_cliente":"{tipo_cliente}"}'

Options:

Argument dataType must be one of STRING, NUMBER, or BOOLEAN. Use NUMBER for any numeric value, including decimals.

Argument required and defaultValue (both optional):

Do not use DECIMAL. The API technically accepts it, but the app UI’s Format dropdown only knows STRING / NUMBER / BOOLEAN — a DECIMAL argument shows up with a blank Format in the UI. Always pick NUMBER for decimals.

Supported methods are GET, POST, PUT, PATCH, and DELETE.

Variable Interpolation (single braces {name})

Every arguments[].name you declare can be referenced inside the url, headers values, query-params values, and the body using single curly braces: {argumentName}. At call time the AI fills each argument and the value is substituted in.

argument name:  contactId   →   reference as  {contactId}

Use single braces, not double. The interpolation engine matches {name} exactly. {{contactId}} is wrong — it does not interpolate and leaves a broken {value} in the request. This applies everywhere, including the --body.

Update And Delete

frontline custom-tools update <toolId> --status PAUSED
frontline custom-tools update <toolId> --url "https://api.example.com/v2/contacts/{contactId}"
frontline custom-tools update <toolId> --headers '[{"key":"Authorization","value":"Bearer {apiKey}"}]'
frontline custom-tools update <toolId> --body '{"nombre_cliente":"{nombre_cliente}","tipo_cliente":"{tipo_cliente}"}'
frontline custom-tools delete <toolId>

Update replaces arguments, headers, queryParams, or body when those options are provided. Delete is a soft delete.

Test A Custom Tool

Run a saved custom tool against its live endpoint and inspect the raw HTTP response — useful to verify a tool works before assigning it to an agent.

# No arguments
frontline custom-tools test <toolId>

# With argument values (interpolated into the tool's {placeholders})
frontline custom-tools test <toolId> --values '{"contactId":"abc123"}'

Assign To An Agent

Use customToolIds in the agent setting payload. The CLI command agents agent-setting update merges your --data patch with the current settings before sending the PUT, so you can change only instructions or customToolIds without dropping connected accounts.

frontline agents agent-setting update \
  --agent-id <agentId> \
  --data '{"instructions":"New prompt only"}'

To clear tools or integrations intentionally, pass empty arrays:

frontline agents agent-setting update \
  --agent-id <agentId> \
  --data '{"customToolIds":[],"connectedAccountConfigs":[]}'

When building payloads programmatically outside the CLI, merge manually:

# 1. Fetch current settings
frontline agents agent-setting get --agent-id <agentId>

# 2. Update with the full merged payload (instructions is REQUIRED)
frontline agents agent-setting update \
  --agent-id <agentId> \
  --data '{
    "customToolIds": [123],
    "aiModelId": <currentAiModelId>,
    "temperature": <currentTemperature>,
    "instructions": "<full current instructions text>"
  }'

When building the payload programmatically, use jq to keep multi-line instructions safe:

INSTRUCTIONS="$(frontline agents agent-setting get --agent-id <agentId> | jq -r '.instructions')"
frontline agents agent-setting update \
  --agent-id <agentId> \
  --data "$(jq -n --argjson ids '[123]' --arg inst "$INSTRUCTIONS" \
    '{customToolIds: $ids, aiModelId: -1, temperature: 0.2, instructions: $inst}')"

The API validates that assigned custom tool IDs belong to the same account.


See also

Skill frontmatter

allowed-tools: Bash(frontline:*)

Work with this as data

Every skill here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for agent skills

4 MCP tools reach this
  • find_skillsBrowse and filter every skill in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This skill
curl "https://apis.io/api/v1/skills/custom-tools"
All agent skills
curl "https://apis.io/api/v1/skills?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.