Skip to main content
The tools command helps you discover, explore, and manage the tools available for your agents.
The same resolver chain used by praisonai tools list also powers praisonai tools doctor, praisonai tools discover, --rewrite-tools, --expand-tools, and praisonai research --tools. Any name shown by praisonai tools list is accepted by all of them. As of PR #2642, the diagnostics commands walk the full resolver source list instead of a TOOL_MAPPINGS subset. See Tool Resolution for the full resolution order.

Quick Start

List available tools example
Discover and Manage Available Tools Trust All Tools

Commands

List Tools

Each tool is attributed to one of five source categories β€” builtin, local, external, registered, or mcp β€” reflecting the exact source that resolve() would use at run time (and, for mcp, the servers your agent will connect to live). The resolver-backed buckets (builtin / local / external / registered) also power praisonai tools doctor and template dependency checking β€” see Tools Doctor and Strict Tools Mode.
Filter by source using --source (or -s):
Expected Output:
Source categories: When two servers expose a tool with the same name, the listing disambiguates the second one as name (server) so both stay visible.
The --source help text accepts builtin, local, external, registered, mcp.

List MCP tools

MCP tools appear when you configure a server under mcp.servers.* in your config.
The names shown under the mcp source are the exact names an agent dispatches at run time β€” copy any of them into --tools "name1,name2" and they resolve.
tools list discovers MCP tools live: it reads the same mcp.servers.* config the run path uses, connects to each server, and enforces an 8-second per-server timeout (_MCP_DISCOVERY_TIMEOUT_S) so one slow server never stalls the listing. Discovery is lazy β€” it runs only for the default view or --source mcp β€” and fail-soft: a broken server never crashes the command.
When no MCP servers are configured, --source mcp prints an empty table with MCP: 0 β€” zero network cost.

Unavailable MCP servers

When a server is unreachable, it appears in an Unavailable MCP servers: section with the reason β€” never a silent omission.

Get Tool Info

Expected Output:
Returns: List of dictionaries with keys: title, url, snippet
Expected Output:
Add --verbose (or -v) to include the description column:
When nothing matches, the command prints No tools matching '<query>'. followed by the hint Run 'praisonai tools list' to see all available tools.

Validate Tools

Check that a tool is discoverable and will resolve correctly:
Validation uses the same discovery path as list and info, so a tool that passes validation will also be visible in tools list and resolvable at agent run time.

Diagnostics

praisonai tools doctor and praisonai tools discover surface every tool the resolver would find β€” builtin + local + external + registered β€” rather than just the TOOL_MAPPINGS subset. As of PR #2642, the doctor reports the full ~151 built-in tools, and discover also lists entry-point plugin tools.
The same source-category table (builtin / local / external / registered) applies to tools doctor and tools discover output. See Tools Doctor and Tools Discover.
praisonai tools doctor and praisonai tools discover do not enumerate MCP tools β€” that surface stays local to praisonai tools list for cost reasons. Use praisonai tools list --source mcp to inspect MCP tools.

Help

Expected Output:

Tool Categories

Search Tools

  • internet_search
  • wikipedia_search
  • arxiv_search
  • tavily_search
  • duckduckgo

File Tools

  • read_file
  • write_file
  • list_files
  • csv_read
  • json_read
  • yaml_read

Code Tools

  • execute_code
  • shell_command
  • calculator
  • python_repl

Data Tools

  • pandas_query
  • duckdb_query
  • yfinance
  • excel_read

Web Tools

  • crawl4ai
  • trafilatura
  • newspaper
  • spider

API Tools

  • rest_api
  • graphql
  • webhook

Using Tools with Prompts

Built-in Tools by Name

Tools from File

Example tools.py:

Tool Dependencies

Some tools require additional packages: Install missing dependencies:

Creating Custom Tools

Use with CLI:

Best Practices

Use praisonai tools info <name> to understand a tool’s parameters before using it.

Right Tool

Choose tools appropriate for the task

Dependencies

Install required packages before using tools

Custom Tools

Create custom tools for domain-specific needs

Documentation

Add docstrings to custom tools for better agent understanding
When a --tools name doesn’t resolve, PraisonAI prints Unknown tool 'X'. Run 'praisonai tools list' to see available tools. If a local tools.py is present but PRAISONAI_ALLOW_LOCAL_TOOLS is unset, it prints Skipped 'X': set PRAISONAI_ALLOW_LOCAL_TOOLS=true to load local tools.