ToolResolver.list_available_sources() is the single entry point for discovering tools from every source — local tools.py, built-in agents tools, the praisonai-tools package, and registered or plugin tools.
As of PR #2642,
praisonai tools discover surfaces the registered bucket in addition to installed packages — including tools contributed by third-party entry points. A tool that resolves at run time is guaranteed to appear here. Entry-point plugins under the canonical praisonai.tools group are what tools discover reports here; the legacy praisonaiagents.tools and praisonai.tool_sources groups still surface but emit a DeprecationWarning on first discovery.MCP tools are not part of the resolver chain.
ToolResolver.list_available_sources() covers only the four static buckets (local / builtin / external / registered). The fifth mcp source is a live network source surfaced only by praisonai tools list, which layers it on top at listing time — see praisonai tools list --source mcp.Quick Start
Filter by Source Bucket
Check a Single Tool
CLI Equivalent
How It Works
list_available_sources() reflects the same four-source chain that resolve() uses at run time. Every name returned can be passed to resolve(name) and will load successfully — no more “visible in list, fails at runtime” mismatches.
Legacy Discovery (Pre-#2476)
Raw importlib / TOOL_MAPPINGS pattern (deprecated)
Raw importlib / TOOL_MAPPINGS pattern (deprecated)
Before Use
ToolResolver.list_available_sources() was introduced in PR #2476, each surface walked its own partial subset:ToolResolver.list_available_sources() instead — it covers all four sources in a single call.Related
Tools
Source label table and —source filter
Tool Resolver
Full resolver API and source buckets
Tools Doctor
Diagnostic output backed by the resolver

