> ## 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.

# Vendor Tools (PraisonAI-Tools)

> Install third-party API tools (Stripe, Slack, Jira, financial data, etc.) as pip plugins from PraisonAI-Tools

Vendor tools are third-party API integrations you add to an agent with one `pip install` and a name in `tools=[]`.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph LR
    A[Agent] --> B["tools=['vendor_tool']"]
    B --> C[PraisonAI-Tools pip plugin]
    C --> D[Vendor API]

    classDef agent fill:#8B0000,stroke:#7C90A0,color:#fff
    classDef tool fill:#189AB4,stroke:#7C90A0,color:#fff
    classDef plugin fill:#6366F1,stroke:#7C90A0,color:#fff
    classDef api fill:#10B981,stroke:#7C90A0,color:#fff

    class A agent
    class B tool
    class C plugin
    class D api
```

## Quick Start

<Steps>
  <Step title="Install the plugin">
    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    pip install praisonai-tools-stripe
    ```
  </Step>

  <Step title="Use it in your agent">
    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    from praisonaiagents import Agent

    agent = Agent(
        name="Finance Analyst",
        instructions="Analyze market data",
        tools=["stripe_balance"],
    )

    agent.start("What is our current Stripe balance?")
    ```

    The tool is auto-discovered by name after install — no imports needed.
  </Step>
</Steps>

***

## How It Works

The agent resolves a tool name to a vendor plugin installed through pip, calls the vendor API, and replies with the result.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
sequenceDiagram
    participant User
    participant Agent
    participant Plugin as PraisonAI-Tools Plugin
    participant Vendor as Vendor API

    User->>Agent: Ask a question
    Agent->>Plugin: Call tool by name
    Plugin->>Vendor: Request data
    Vendor-->>Plugin: Response
    Plugin-->>Agent: Result
    Agent-->>User: Answer
```

Installed plugins register under the `praisonai.tools` entry-point group and become available by name — the same mechanism documented in [Custom Tools](/docs/tools/custom).

***

## Three-Tier Tool Ecosystem

PraisonAI tools live in three places. Pick the tier that matches where your tool belongs.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph TB
    subgraph Tier1["Tier 1 - Core Legacy Bundled"]
        T1["Tavily, Exa, You.com, DuckDuckGo, Python, Shell, File"]
    end
    subgraph Tier2["Tier 2 - PraisonAI-Tools Pip Plugins"]
        T2["Stripe, Slack, Jira, SaaS and dataset wrappers"]
    end
    subgraph Tier3["Tier 3 - Custom / Single-File"]
        T3["@tool decorator, .praison/plugins/*.py"]
    end

    classDef core fill:#F59E0B,stroke:#7C90A0,color:#fff
    classDef plugin fill:#6366F1,stroke:#7C90A0,color:#fff
    classDef custom fill:#189AB4,stroke:#7C90A0,color:#fff

    class T1 core
    class T2 plugin
    class T3 custom
```

| Tier | Where it lives | Use for |
| - | - | - |
| Core legacy bundled | `praisonaiagents.tools` | Existing built-ins (kept for backward compatibility — no new modules accepted) |
| PraisonAI-Tools pip plugins | [PraisonAI-Tools](https://github.com/MervinPraison/PraisonAI-Tools) | All new vendor / third-party API integrations |
| Custom / single-file | Your project | Your own project-local logic |

***

## Which Option Should I Pick?

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph TB
    Q{What are you adding?}
    Q -->|Public third-party API or SaaS| V[PraisonAI-Tools plugin]
    Q -->|Your own project logic| C[Custom tool or single-file plugin]
    Q -->|Already in tools=tavily exa you| B[Use the built-in]

    classDef q fill:#F59E0B,stroke:#7C90A0,color:#fff
    classDef v fill:#6366F1,stroke:#7C90A0,color:#fff
    classDef c fill:#189AB4,stroke:#7C90A0,color:#fff
    classDef b fill:#10B981,stroke:#7C90A0,color:#fff

    class Q q
    class V v
    class C c
    class B b
```

***

## Install Flow

Install one or more vendor plugins, then reference each by name.

<Steps>
  <Step title="Install plugins">
    ```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    pip install praisonai-tools-stripe
    ```
  </Step>

  <Step title="Add tool names to your agent">
    ```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
    from praisonaiagents import Agent

    agent = Agent(
        name="Finance Analyst",
        instructions="Analyze market data",
        tools=["yfinance", "stripe_balance"],
    )

    agent.start("Summarise AAPL year-to-date and our Stripe balance")
    ```
  </Step>
</Steps>

***

## How Auto-Discovery Works

Plugins declare a `praisonai.tools` entry point in their `pyproject.toml`; PraisonAI scans these on first use and registers each tool by name.

```toml theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
[project.entry-points."praisonai.tools"]
stripe_balance = "praisonai_tools_stripe:StripeBalanceTool"
```

See the [Creating a Pip-Installable Tool Package](/docs/tools/custom#creating-a-pip-installable-tool-package) section for the full publish flow.

***

## Contributing a New Vendor Tool

<Note>
  New vendor integrations belong in [PraisonAI-Tools](https://github.com/MervinPraison/PraisonAI-Tools), not in the core SDK. Pull requests that add a new `*_tools.py` module to `MervinPraison/PraisonAI` core are blocked by the merge gate unless a maintainer applies the `maintainer-accept-core-tools` label.
</Note>

Publish your plugin to PraisonAI-Tools and users install it with a single `pip install`.

***

## Best Practices

<AccordionGroup>
  <Accordion title="Prefer pip plugins for vendor APIs">
    Any public third-party API or SaaS integration goes in PraisonAI-Tools as an installable plugin, not in core.
  </Accordion>

  <Accordion title="Reference tools by name">
    After `pip install`, add the tool name to `tools=[]` — no import line is required.
  </Accordion>

  <Accordion title="Keep secrets in the environment">
    Read API keys from environment variables inside the plugin; never hard-code credentials.
  </Accordion>

  <Accordion title="Use custom tools for internal logic">
    Project-specific logic belongs in a custom tool or single-file plugin, not a published vendor package.
  </Accordion>
</AccordionGroup>

***

## Related

<CardGroup cols={2}>
  <Card title="Custom Tools" icon="wrench" href="/docs/tools/custom">
    Build and publish your own tools
  </Card>

  <Card title="Single-File Plugins" icon="puzzle-piece" href="/docs/tools/single-file-plugins">
    Drop-in local Python plugins
  </Card>

  <Card title="Tools Overview" icon="toolbox" href="/docs/tools/tools">
    Browse PraisonAI tool documentation
  </Card>

  <Card title="MCP" icon="plug" href="/docs/features/mcp">
    Connect external tool servers
  </Card>
</CardGroup>


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