Tool Reference

tool

Manage custom MCP tools. Actions: create, update, delete, list, get, test, schedule (recurring runs), db (inspect per-user databases).

Aliases

Old tool names like create_dynamic_tool, update_dynamic_tool, delete_dynamic_tool, list_dynamic_tools, get_dynamic_tool, and test_dynamic_tool still work as aliases.


Parameters

NameTypeRequiredDescription
actionstringYesOne of create, update, delete, list, get, test, schedule, db.
tool_idstringTool ID. Used with update, delete, get, test, schedule.
namestringTool name. Used with create.
descriptionstringTool description.
input_schemaobjectJSON Schema for tool inputs.
tool_typestringOne of http_proxy, transform, chain, skill_backed, code.
http_configobjectConfig for http_proxy tools.
transform_configobjectConfig for transform tools.
chain_configobjectConfig for chain tools.
skill_configobjectConfig for skill_backed tools.
code_configobjectConfig for code tools.
statusstringOne of draft, active, disabled.
activatebooleanSet to true to activate on creation.
test_inputobjectInput data for testing. Used with test.
scheduleobjectSchedule configuration. See below.
schedule_actionstringOne of list, history, delete. Sub-action for schedule management.
db_actionstringOne of list, tables, schema. Sub-action for db.
db_namestringNamed database. Omit for default. Used with db.

Schedule object

NameTypeRequiredDescription
enabledbooleanEnable or disable the schedule.
hoursnumber[]Local hours to run (0-23), max 4. Default: [9].
timezonestringIANA timezone. Default: UTC.
email_summarybooleanSend email summary of each run.
email_addressstringOverride default email address.
email_recipientsstringComma-separated additional recipients.
argsobjectFixed arguments passed to each run.

create

Create a new custom tool. Tools can be HTTP proxies, data transforms, tool chains, skill-backed, or code runners.

Parameters: name (required), tool_type (required), description, input_schema, plus the config object for the chosen type. Optionally activate.

{
  "name": "tool",
  "arguments": {
    "action": "create",
    "name": "get_weather",
    "description": "Fetch current weather for a city",
    "tool_type": "http_proxy",
    "input_schema": {
      "type": "object",
      "properties": {
        "city": { "type": "string", "description": "City name" }
      },
      "required": ["city"]
    },
    "http_config": {
      "url": "https://api.weatherapi.com/v1/current.json?q={{city}}",
      "method": "GET"
    },
    "activate": true
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "Tool created: get_weather (tool_w1x2y3)\nType: http_proxy\nStatus: active\nEndpoint: GET https://api.weatherapi.com/v1/current.json?q={{city}}"
    }
  ]
}

update

Update a tool's configuration, description, or status.

Parameters: tool_id (required), plus any fields to update.

{
  "name": "tool",
  "arguments": {
    "action": "update",
    "tool_id": "tool_w1x2y3",
    "description": "Fetch current weather and 3-day forecast for a city",
    "http_config": {
      "url": "https://api.weatherapi.com/v1/forecast.json?q={{city}}&days=3",
      "method": "GET"
    }
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "Tool tool_w1x2y3 (get_weather) updated."
    }
  ]
}

delete

Permanently delete a tool.

Parameters: tool_id (required)

{
  "name": "tool",
  "arguments": {
    "action": "delete",
    "tool_id": "tool_w1x2y3"
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "Tool tool_w1x2y3 (get_weather) deleted."
    }
  ]
}

list

List all custom tools, optionally filtered by status or type.

Parameters: status, tool_type

{
  "name": "tool",
  "arguments": {
    "action": "list",
    "status": "active"
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "4 active tools:\n\n1. get_weather (tool_w1x2y3) — http_proxy\n   Fetch current weather for a city\n\n2. summarize_article (tool_a4b5c6) — code\n   Extract and summarize article content from a URL\n\n3. sales_pipeline (tool_d7e8f9) — chain\n   Pull CRM data, calculate metrics, format report\n\n4. format_invoice (tool_g0h1i2) — transform\n   Convert raw line items into formatted invoice"
    }
  ]
}

get

Retrieve full details for a single tool.

Parameters: tool_id (required)

{
  "name": "tool",
  "arguments": {
    "action": "get",
    "tool_id": "tool_a4b5c6"
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "summarize_article (tool_a4b5c6)\nType: code\nStatus: active\nDescription: Extract and summarize article content from a URL\n\nInput schema:\n  url (string, required): Article URL\n  max_length (number): Max summary length in words\n\nCode config:\n  runtime: node20\n  timeout: 30000\n  handler: index.mjs"
    }
  ]
}

test

Run a tool with test input and see the result without side effects.

Parameters: tool_id (required), test_input (required)

{
  "name": "tool",
  "arguments": {
    "action": "test",
    "tool_id": "tool_w1x2y3",
    "test_input": {
      "city": "Portland"
    }
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "Test result for get_weather:\n\nStatus: 200 OK\nLatency: 340ms\n\nResponse:\n{\n  \"location\": \"Portland, Oregon\",\n  \"temp_f\": 58,\n  \"condition\": \"Partly cloudy\",\n  \"humidity\": 72\n}"
    }
  ]
}

schedule

Configure recurring scheduled runs for a tool. Use schedule_action for management sub-actions.

Parameters: tool_id (required), schedule (for creating/updating), schedule_action (for list, history, delete)

Create or update a schedule

{
  "name": "tool",
  "arguments": {
    "action": "schedule",
    "tool_id": "tool_a4b5c6",
    "schedule": {
      "enabled": true,
      "hours": [8, 17],
      "timezone": "America/New_York",
      "email_summary": true,
      "args": {
        "url": "https://example.com/blog/latest"
      }
    }
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "Schedule set for tool_a4b5c6 (summarize_article):\nRuns at 8:00 AM, 5:00 PM America/New_York\nEmail summary: enabled\nFixed args: {\"url\": \"https://example.com/blog/latest\"}"
    }
  ]
}

List scheduled tools

{
  "name": "tool",
  "arguments": {
    "action": "schedule",
    "schedule_action": "list"
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "1 scheduled tool:\n\n1. summarize_article (tool_a4b5c6)\n   Hours: 8:00, 17:00 America/New_York\n   Last run: 2026-03-14 08:00 — success"
    }
  ]
}

db

Inspect per-user databases used by code tools.

Parameters: db_action (required), db_name

{
  "name": "tool",
  "arguments": {
    "action": "db",
    "db_action": "tables"
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "Tables in default database:\n\n1. articles (4 columns, 127 rows)\n2. summaries (6 columns, 89 rows)\n3. fetch_log (3 columns, 341 rows)"
    }
  ]
}
Previous
task