> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Tool Definitions • AI Agent SDK

> get_tool_definitions: Get OpenAI-compatible tool definitions with dynamic schema overrides applied.

# get\_tool\_definitions

Method

> This is a method of the [**ToolRegistry**](https://praison.ai/docs/sdk/reference/praisonaiagents/classes/ToolRegistry.md) class in the [**registry**](https://praison.ai/docs/sdk/reference/praisonaiagents/modules/registry.md) module.

Get OpenAI-compatible tool definitions with dynamic schema overrides applied.

This is the main entry point for getting tool schemas that respects
dynamic overrides. Called every time tools need to be passed to the LLM.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#8B0000', 'primaryTextColor': '#fff', 'primaryBorderColor': '#710101', 'lineColor': '#189AB4', 'secondaryColor': '#189AB4', 'tertiaryColor': '#fff' }}}%%

graph LR
    agent["Agent"] -- "uses" --> tool["Tool: get_tool_definitions"]
    tool -- "returns" --> result["Result"]
    style tool fill:#189AB4,color:#fff
    style agent fill:#8B0000,color:#fff
    style result fill:#8B0000,color:#fff
```

## Signature

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
def get_tool_definitions(permission_resolver: Optional[Callable[[str], bool]]) -> List[Dict[str, Any]]
```

## Parameters

**permission\_resolver** `Optional`

Optional callable `(tool_name) -&gt; bool` that returns `False` when a tool is denied for the current agent/session. Denied tools are dropped from the advertised schema, mirroring the existing `check_availability()` filter (deny = hide). `None` (default) advertises every available tool, preserving backward compatibility.

### Returns

**Returns** `List[Dict[str, Any]]`

List of OpenAI-compatible tool definition dictionaries

## Uses

* `check_availability`
* `logging.debug`
* `logging.warning`
* `permission_resolver`
* `logging.error`

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/tools/registry.py#L254)
>
> `praisonaiagents/tools/registry.py` at line 254

***

## Related Documentation

> [card] [Tools Concept](https://praison.ai/docs/docs/concepts/tools)

> [card] [Create Custom Tools](https://praison.ai/docs/docs/guides/tools/create-custom-tools)

> [card] [Tool Development](https://praison.ai/docs/docs/tutorials/advanced-tool-development)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.