ForjinnForjinn
Features

Tools: Extend Your Agents With External Actions

Give your Forjinn agents the ability to search the web, run code, call external APIs, and execute custom JavaScript or Python functions you define.

Tools are what turn a plain language model into an agent that can act on the world. Without tools, an agent can only generate text based on its training data. With tools attached, it can search the web for current information, run a calculation, call an external API, read and write files, or execute any logic you write. You connect tools to a chatflow or agent flow by dropping them onto the canvas and wiring them to an agent node — no extra configuration beyond the tool's own inputs.

Built-in tools

Forjinn ships with a large library of ready-to-use tools. Find them in the node panel under Tools when editing a flow.

Calculator

Evaluates mathematical expressions. Useful any time users might ask arithmetic questions your LLM would otherwise get wrong.

Web Browser

Visits a URL and extracts its content, letting your agent read live web pages. Requires a language model and an embeddings model to parse the page.

Tavily API

A search engine purpose-built for LLMs. Returns clean, summarized results. Supports general and news search modes.

SerpAPI

Queries Google search results via SerpAPI. Good for broad web searches when you need raw results rather than AI-summarized answers.

Brave Search API

Web search via Brave's privacy-focused index. No tracking or personalization.

Exa Search

Semantic search across the web. Finds pages by meaning, not just keywords.

Google Search API

Search Google programmatically via the Custom Search JSON API.

Searxng

Connect to your own self-hosted Searxng instance for private, aggregated web search.

Serper

Fast Google search results via the Serper API.

Code Interpreter (E2B)

Runs Python code in a secure, persistent E2B sandbox. All major packages (pandas, numpy, matplotlib, etc.) are pre-installed. Charts display inline.

Arxiv

Searches and retrieves academic papers from the Arxiv preprint server.

WolframAlpha

Answers complex math, science, and data questions using the WolframAlpha computational engine.

Current Date & Time

Returns the current date and time, so your agent always knows when "now" is.

Read File / Write File

Read from or write to files on the server filesystem. Useful in automated workflows.

HTTP Requests (Get, Post, Put, Delete)

Make outbound HTTP calls to any REST endpoint. One tool per HTTP verb.

Web Scraper

Scrapes structured content from a web page.

OpenAPI Toolkit

Load an OpenAPI spec and expose all its endpoints as callable tools automatically.

Retriever Tool

Wraps a vector store retriever so your agent can do semantic search over a document store.

Query Engine Tool

Wraps a LlamaIndex query engine as a callable tool.

Agent as Tool

Nest one agent inside another — the outer agent can delegate tasks to the inner one.

Chatflow Tool

Call another Forjinn chatflow as a sub-task from within your agent.

MCP

Connect to any Model Context Protocol (MCP) server to expose its tools to your agent.

Composio

Access hundreds of pre-built integrations (GitHub, Slack, Notion, and more) through the Composio platform.

Productivity and SaaS integrations

These tools connect to external services and require credentials. Store API keys in Credentials before using them.

ToolWhat it does
GmailRead, send, and manage Gmail messages
Google CalendarCreate and query calendar events
Google DocsRead and write Google Docs
Google DriveSearch and retrieve Drive files
Google SheetsRead and write spreadsheet data
Microsoft ExchangeInteract with Exchange mailboxes
Microsoft OutlookRead and send Outlook email
Microsoft TeamsPost messages to Teams channels
JiraCreate and query Jira issues
Stripe ToolLook up customers, charges, and subscriptions
EmailSend email via SMTP

Custom tools

When the built-in tools don't cover your use case, you can write your own. Custom tools are defined in the Tools section of the sidebar, then attached to flows using the Custom Tool node.

Create a custom tool

In the left sidebar, click Tools. Then click Add Tool in the top right.

Give the tool a clear name and description. The agent uses the description to decide when to call your tool — be specific about what the tool does and what kinds of inputs it expects.

Add the parameters your function needs. For each parameter, set the name, type (string, number, boolean), and a description. These become the structured inputs the agent passes to your function at runtime.

Choose JavaScript or Python as the language, then write the function body. The parameters you defined are available as variables.

// Fetch current weather for a given city
const response = await fetch(
  `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}&current_weather=true`
)
const data = await response.json()
return JSON.stringify(data.current_weather)
# Fetch current weather for a given city
import httpx

r = httpx.get(
    "https://api.open-meteo.com/v1/forecast",
    params={"latitude": latitude, "longitude": longitude, "current_weather": True}
)
return str(r.json()["current_weather"])

For Python tools, you can list additional pip packages under Python Requirements — separate multiple packages with commas.

Click Save. The tool is now available to any flow in your workspace.

Forjinn also has an Autogenerate option — describe what you want the tool to do in plain language and Forjinn will draft the function code for you. Review and adjust it before saving.

Attach a custom tool to a flow

Go to Chatflows or Agentflows and open the flow you want to modify.

In the node panel, search for Custom Tool and drag it onto the canvas.

In the node's Select Tool dropdown, choose the tool you created. The name and description are pulled in automatically.

Wire the Custom Tool node's output to the Tools input on your agent node.

Save the flow and open the chat panel to test. Ask the agent something that should trigger your tool.

You can attach multiple tools to a single agent. The agent decides which tool to call based on each tool's description, so keep descriptions precise and distinct from one another.

Return direct

By default, an agent passes a tool's output back through its reasoning loop before responding to the user. If you enable Return Direct on a tool node, the tool's raw output is sent directly to the user, skipping that reasoning step. Use this when the tool's output is already in the right format for the end user.

On this page