Docs

Custom tools

Custom tools

Define any HTTP endpoint as an MCP tool with custom input schemas, headers, and encrypted secrets.

Overview

Custom tools let you expose any HTTP API to AI agents. Unlike pre-built alert templates, you control the method, URL, body shape, headers, and parameters the agent can pass. Tools are stored per workspace and exposed via MCP when enabled.

Find the builder under Custom tools in the workspace sidebar.

Form sections

Basic info

  • Integration name — label in the dashboard
  • Tool name — MCP identifier (lowercase, underscores; immutable after creation)
  • Description — tells the agent when to use this tool (min 10 characters)

HTTP request

  • Method — GET, POST, PUT, PATCH, or DELETE
  • URL — target endpoint; supports {{secret_name}} placeholders
  • Body template — JSON with {{field}} placeholders matching your input schema

Input schema

Parameters the agent passes when calling the tool. Each field has a name, type (string, number, integer, boolean), description, and required flag.

Headers

Optional HTTP headers sent with every request (e.g. Content-Type: application/json).

Secrets

Encrypted key-value pairs referenced as {{secret_key}} in URL, headers, or body. Values are stored with AES-256-GCM and never shown again after save.

Template placeholders

When a tool runs, Herald replaces {{name}} tokens:

PlaceholderSource
{{message}}Agent argument from input schema
{{api_key}}Decrypted secret named api_key

Example body template:

{
  "message": "{{message}}",
  "source": "herald"
}

If the agent calls the tool with { "message": "Deploy failed" }, Herald sends that JSON to your URL.

Execution flow

Agent (Cursor) → MCP Gateway → load tool + secrets → HTTP request
                                                      ↓
                                            your URL
                                                      ↓
                                            audit log + usage counter

Two ways to invoke:

  • Dashboard test panel — run a tool with sample args from the custom tools page
  • MCP from IDE — agent calls the tool name via the gateway after Connect IDE setup

Editing & deleting

  • Edit from Custom tools in the workspace — only your HTTP (generic) tools
  • Tool name cannot change after creation
  • On edit, leave secret values blank to keep existing; omit a secret key to delete it
  • Disable tools from the Alerts page without deleting configuration

Example: POST to a Herald webhook

Chain a custom tool to an inbound Herald webhook:

  1. Create a Herald webhook and copy its URL
  2. Create a custom tool with method POST, that URL, and body {"event": "{{message}}"}
  3. Agent invokes the tool → event lands in Inbox

OpenAPI import (Pro / Platform)

Bulk-create custom tools from an OpenAPI 3.x JSON spec in workspace Settings (max 25 operations). Each operation becomes a generic HTTP tool.