n8n AI Agent Tools List

📝 Blog⏱ 12 min read

n8n AI Agent Tools List

The power of n8n's AI Agent node comes from its ability to use tools — external functions the agent can call to fetch data, perform actions, or compute results. This guide catalogs every built-in tool, shows how to configure each one, and provides patterns for building custom tools.

How Tools Work in n8n AI Agent

When you add a tool to the AI Agent node:

1. Agent decides to use a tool based on user query 2. Agent prepares parameters (validated against tool schema) 3. n8n executes the tool node 4. Result returned to agent as context 5. Agent responds to user with tool output

Tool Schema: Each tool exposes a JSON Schema defining its name, description, and parameters. The LLM uses this to decide when and how to call the tool.

Built-in Tool Categories

1. Web Search Tools

SerpAPI (Google Search)

ConfigDetails
**Node**HTTP Request
**API**SerpAPI (serpapi.com)
**Auth**API Key in header
**Params**q (query), location, gl, hl, num
**Returns**Organic results, snippets, links
**Cost**$50/mo for 5K searches

Setup: 1. Get API key from serpapi.com 2. Add HTTP Request node 3. Method: GET 4. URL: https://serpapi.com/search 5. Query Parameters: q={{$json.query}}, api_key={{$credentials.serpApiKey}}, num=10 6. AI Agent Tool Config: - Name: web_search - Description: Search Google for current information, news, facts - Parameters: { query: { type: string, description: 'Search query' } }

Brave Search API

ConfigDetails
**Node**HTTP Request
**API**Brave Search (brave.com/search/api)
**Auth**API Key in header
**Params**q, count, offset, search_lang
**Cost**Free tier: 2K/mo, $3/1K after

DuckDuckGo Instant Answer (Free)

ConfigDetails
**Node**HTTP Request
**API**DuckDuckGo HTML scrape or API
**Cost**Free
**Limit**Rate limited, no official API

2. Database Tools

PostgreSQL

ConfigDetails
**Node**PostgreSQL
**Operations**Select, Insert, Update, Delete, Execute Query
**Auth**Host, Port, Database, User, Password, SSL
**Best For**Structured data, transactions, complex queries

Common Patterns: - Select: SELECT * FROM users WHERE email = $1 - Insert: INSERT INTO leads (email, name) VALUES ($1, $2) RETURNING id - Update: UPDATE users SET last_login = NOW() WHERE id = $1

Security: Use parameterized queries ($1, $2) — never interpolate user input directly.

MySQL / MariaDB

ConfigDetails
**Node**MySQL
**Operations**Select, Insert, Update, Delete, Execute Query
**Auth**Host, Port, Database, User, Password, SSL

MongoDB

ConfigDetails
**Node**MongoDB
**Operations**Find, Insert One, Insert Many, Update, Delete, Aggregate
**Auth**Connection String, Database, Collection
**Best For**Flexible schemas, documents, geospatial

Redis

ConfigDetails
**Node**Redis
**Operations**Get, Set, HGet, HSet, Incr, Expire, Keys
**Best For**Caching, sessions, rate limiting, queues

Supabase (PostgreSQL + Auth + Realtime)

ConfigDetails
**Node**HTTP Request (Supabase REST API)
**Auth**Service Role Key
**Operations**CRUD, Auth, Realtime, Storage
**Bonus**Built-in Auth, Row Level Security

3. API & HTTP Tools

Generic HTTP Request

ConfigDetails
**Node**HTTP Request
**Methods**GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
**Auth**Header, Query, Body, OAuth2, Bearer, API Key
**Body**JSON, Form, Raw, Binary
**Response**JSON, Text, Binary, File

Common Patterns: - REST API: GET/POST/PUT/DELETE with JSON body - GraphQL: POST with query/variables in body - Webhooks: POST with signature verification - File Upload: Multipart form data

REST API Best Practices

// Tool Schema for Generic API Call
{
  "name": "api_call",
  "description": "Make HTTP request to any REST API",
  "parameters": {
    "type": "object",
    "properties": {
      "method": { "type": "string", "enum": ["GET", "POST", "PUT", "DELETE"] },
      "url": { "type": "string", "format": "uri" },
      "headers": { "type": "object" },
      "body": { "type": "object" },
      "timeout": { "type": "number", "default": 30000 }
    },
    "required": ["method", "url"]
  }
}

GraphQL

ConfigDetails
**Node**HTTP Request
**Method**POST
**Headers**Content-Type: application/json, Authorization
**Body**`{ "query": "...", "variables": {} }`

4. Calculation & Computation Tools

Calculator

ConfigDetails
**Node**Function (JavaScript)
**Operations**+, -, *, /, %, Math.*, parseFloat
**Use Case**Math, conversions, calculations
// Tool: calculator
const { expression } = $json;
try {
  // Safe eval — only allow math
  const result = Function('"use strict"; return (' + expression + ')')();
  return { result };
} catch (e) {
  return { error: 'Invalid expression' };
}

Date/Time Calculator

ConfigDetails
**Node**Function (JavaScript)
**Operations**Date arithmetic, formatting, timezone conversion
**Library**date-fns, luxon (if available)
// Tool: date_calculator
const { operation, date, value, unit, timezone } = $json;
const dateObj = new Date(date);
switch (operation) {
  case 'add': dateObj.setDate(dateObj.getDate() + value); break;
  case 'subtract': dateObj.setDate(dateObj.getDate() - value); break;
  case 'format': return { result: format(dateObj, value, { timeZone: timezone }) };
  case 'diff': return { result: differenceInDays(new Date(), dateObj) };
}
return { result: dateObj.toISOString() };

Unit Converter

ConfigDetails
**Node**Function
**Conversions**Length, weight, temperature, currency, data
**API**exchangerate.host (free currency), custom formulas

5. Code Execution Tools

JavaScript / TypeScript Execution

ConfigDetails
**Node**Function (JavaScript)
**Runtime**Node.js (sandboxed)
**Timeout**30s default (configurable)
**Memory**128MB default
**Globals**$json, $node, $workflow, $runIndex

Security: Code runs in isolated VM. No filesystem/network access unless explicitly allowed.

// Tool: code_executor
const { code, language, timeout } = $json;
// Language: javascript (only supported)
// Timeout in ms (max 300000)
const start = Date.now();
try {
  const fn = new Function('return ' + code);
  const result = fn();
  return { result, executionTime: Date.now() - start };
} catch (e) {
  return { error: e.message };
}

Python Execution (via HTTP to external service)

ConfigDetails
**Node**HTTP Request
**Service**PythonAnywhere, Replit, custom container
**Use Case**Data science, pandas, numpy, ML inference

6. Communication Tools

Email (SendGrid, SMTP, Gmail, Outlook)

ConfigDetails
**Nodes**SendGrid, Gmail, Outlook, SMTP, Mailgun, Postmark
**Operations**Send, Send with Template, Schedule
**Attachments**Base64, File, URL

SMS (Twilio, Vonage, MessageBird, Plivo)

ConfigDetails
**Nodes**Twilio, Vonage, MessageBird, Plivo, Plivo
**Operations**Send SMS, Send MMS, Check Status
**Features**Short codes, Alphanumeric sender, Templates

Slack

ConfigDetails
**Node**Slack
**Operations**Post Message, Update, Delete, Thread Reply, Upload File
**Auth**Bot Token, User Token, OAuth
**Features**Blocks, Attachments, Threads, Modals

Microsoft Teams

ConfigDetails
**Node**Microsoft Teams
**Operations**Post Message, Send Card, Create Channel
**Auth**OAuth2, App Registration

Discord

ConfigDetails
**Node**Discord
**Operations**Send Message, Create Embed, Manage Roles
**Auth**Bot Token

WhatsApp (Twilio, Vonage, MessageBird, 360Dialog)

ConfigDetails
**Providers**Twilio, Vonage, MessageBird, 360Dialog, Gupshup
**Features**Templates, Media, Interactive Buttons
**Compliance**Opt-in required, 24h window

Telegram

ConfigDetails
**Node**Telegram
**Operations**Send Message, Send Photo, Send Document, Inline Keyboard
**Auth**Bot Token

7. File & Document Tools

PDF Processing

ConfigDetails
**Nodes**PDF.co, PDFMonkey, PDFMonkey, DocuSign, DocuGenerate
**Operations**Generate PDF, Extract Text, Merge, Split, Fill Form
**Templates**HTML-to-PDF, Template IDs

Document Generation

ConfigDetails
**Tools**DocuGenerate, PDFMonkey, DocuSign, PandaDoc
**Templates**HTML, DOCX, PDF templates with variables
**Output**PDF, DOCX, HTML

File Storage

ConfigDetails
**Nodes**Google Drive, OneDrive, Dropbox, Box, S3, FTP/SFTP
**Operations**Upload, Download, List, Move, Delete, Share
**Triggers**File Created, Updated, Deleted

CSV / Excel Processing

ConfigDetails
**Nodes**CSV, Excel (Excel File, Microsoft Excel Online)
**Operations**Read, Write, Append, Convert
**Parsing**Header row, custom delimiter, encoding

8. AI & ML Tools

OpenAI / Anthropic / Google AI

ConfigDetails
**Nodes**OpenAI, Anthropic, Google AI (Gemini)
**Models**GPT-4o, GPT-4o-mini, Claude 3.5, Gemini 1.5
**Operations**Chat, Completion, Embeddings, Images, Audio, Moderation
**Features**Functions/Tools, Vision, Streaming, JSON Mode

Hugging Face

ConfigDetails
**Node**HTTP Request (Inference API)
**Models**100K+ models (LLM, Embedding, Vision, Audio)
**Cost**Free tier, Pro $9/mo, Enterprise

Local LLMs (Ollama, LM Studio, vLLM)

ConfigDetails
**Node**HTTP Request
**Endpoint**`http://localhost:11434/api/generate` (Ollama)
**Models**Llama 3, Mistral, CodeLlama, Phi-3, Gemma
**Cost**Free (local hardware)

9. Workflow & Automation Tools

Workflow Control

ToolPurpose
**IF**Conditional branching
**Switch**Multi-way routing
**Split In Batches**Process arrays in chunks
**Merge**Combine branches
**Wait**Delay, wait for webhook, wait for time
**Loop**Loop over items (via Split + Merge)
**Execute Workflow**Call another workflow as subroutine
**Call n8n Workflow**Invoke another workflow

Data Transformation

ToolPurpose
**Set**Set/rename/delete fields
**Function**JavaScript transformation
**Function Item**Per-item JavaScript
**Item Lists**Aggregate, filter, sort, unique
**Convert**JSON/CSV/XML/HTML/Base64 conversion
**Date & Time**Parse, format, calculate
**Crypto**Hash, HMAC, encrypt, decrypt
**Compression**Gzip, Zip, Unzip

10. Custom Tool Development

Creating Custom Tools

1. As a Workflow (Reusable)

1. Create workflow: tools/my_custom_tool 2. Input: Webhook with defined schema 3. Logic: Any n8n nodes 4. Output: Respond to Webhook with result 5. Register as Tool: In AI Agent node > Tools > Add Custom Workflow

2. As a Custom Node (Advanced)

export class MyCustomTool implements INodeType { description: INodeTypeDescription = { displayName: 'My Custom Tool', name: 'myCustomTool', group: ['transform'], version: 1, description: 'Custom tool for AI Agent', defaults: { name: 'My Custom Tool' }, inputs: ['main'], outputs: ['main'], credentials: [], properties: [ { displayName: 'Input', name: 'input', type: 'string', default: '', description: 'Input for the tool', }, ], };

async execute(this: IExecuteFunctions): Promise { const input = this.getNodeParameter('input', 0); // Your logic here return this.prepareOutputData([{ json: { result: Processed: ${input} } }]); } } ```

Tool Selection Guide

TaskRecommended Tool
Search the webSerpAPI, Brave Search
Query databasePostgreSQL, MySQL, MongoDB nodes
Call REST APIHTTP Request
Run calculationsFunction (JavaScript)
Send emailSendGrid / Gmail / Outlook
Send SMSTwilio / Vonage
Post to SlackSlack node
Generate PDFPDF.co / PDFMonkey /
Run custom codeFunction (JS)
Query vector DBPinecone / Qdrant / PGVector
Call GraphQLHTTP Request (POST)
Run PythonHTTP to Python service
Process PDFPDF.co / PDFMonkey
Upload fileS3 / Google Drive / OneDrive
Parse CSV/ExcelCSV / Excel nodes
Run PythonHTTP to Python service

Tool Configuration Best Practices

1. Name clearly: web_search, database_query, send_email 2. Describe precisely: "Search Google for current information" not "Search" 3. Parameter descriptions: Help LLM understand each field 4. Validate inputs: Use schema validation, required fields 5. Handle errors: Return structured error objects 6. Limit scope: One tool = one clear purpose 7. Test schemas: Use n8n's AI Agent test panel

Tool Limits & Quotas

ToolRate LimitCost
SerpAPI100/search$50/5K
Brave Search1/sec$3/1K
OpenAI3K RPMPer token
Anthropic50 RPMPer token
Twilio SMS1/sec$0.0075/SMS
SendGrid600/min$15/100K
PostgreSQLConnection poolYour DB
n8n Function30s timeoutFree

Related Guides

Frequently Asked Questions

There's no hard limit, but practical limits apply: each tool adds to the prompt size. 5-15 well-chosen tools is typical. Too many tools confuse the LLM and increase token costs.

Not directly in the Function node (JavaScript only). For Python, deploy a small service (FastAPI/Flask on Railway/Render/Replit) and call it via HTTP Request node from the AI Agent.

The AI Agent automatically passes tool outputs as context to subsequent tool calls. For explicit chaining, use the agent's reasoning: it sees previous tool results and can reference them in subsequent tool calls.

Yes! Any n8n node can be exposed as a tool. In the AI Agent node, click 'Add Tool' > 'From Workflow' and select a workflow that wraps the node, or use the node directly via the 'Tool' interface in newer n8n versions.

Store all API keys in n8n Credentials (encrypted at rest). Reference credentials by name in nodes, never hardcode keys. Use credential expressions: `{{ $credentials.apiKey }}`. Restrict credential access by team/role.

Advertisement

Related Articles