PluginBench
MCP Server
Active
MIT

PraisonAI MCP Server

io.github.MervinPraison/praisonai

Build autonomous, self-reflecting AI agents and connect them to any MCP server in minutes.

What is the PraisonAI MCP server?

PraisonAI is an open-source Python/JavaScript framework for building autonomous, self-reflecting AI agents and multi-agent workflows, with built-in Model Context Protocol (MCP) client support. It lets developers connect agents to external tools and MCP servers via stdio, HTTP, WebSocket, or SSE transports, and ships with a CLI, dashboard, and visual workflow builder. It supports 100+ LLM providers including OpenAI, Anthropic, Gemini, and local models via Ollama.

PraisonAI is an AI agents framework focused on shipping autonomous, self-improving agents with minimal code. It provides a core Python SDK (praisonaiagents), a CLI tool (praisonai), and optional add-ons for chat UI, visual workflow building (Flow), and multi-channel bot deployment (Claw, connecting to Telegram/Slack/Discord). A core feature is native MCP client support, letting agents connect to any MCP server over stdio, streamable HTTP, WebSocket, or SSE transports to gain access to external tools. It also includes features like planning mode, self reflection, agent handoffs, guardrails, memory, RAG, and support for 100+ LLM providers, making it suited for research, coding, content generation, data pipelines, customer support bots, and workflow automation.

How to install PraisonAI

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench β€” verify against the source before use.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "praisonai": {
      "command": "uvx",
      "args": [
        "praisonai"
      ]
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "praisonai": {
      "command": "uvx",
      "args": [
        "praisonai"
      ]
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "praisonai": {
      "command": "uvx",
      "args": [
        "praisonai"
      ]
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "praisonai": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "praisonai"
      ]
    }
  }
}
Claude Code
claude mcp add praisonai -- uvx praisonai

Use cases

  • Building single or multi-agent systems that research, plan, and execute tasks autonomously
  • Connecting agents to external MCP servers (stdio, HTTP, WebSocket, SSE) for tool access like search or memory
  • Deploying 24/7 AI customer support bots on Telegram, Slack, or Discord via the Claw dashboard
  • Automating multi-step business workflows with agent handoffs, self-reflection, and guardrails
  • Creating data pipelines that extract, transform, and analyze data from APIs and web sources

PraisonAI MCP server FAQ

What does the PraisonAI MCP server do?

PraisonAI is an AI agents framework that acts as an MCP client, letting agents built with it connect to and use tools exposed by any MCP server over stdio, HTTP, WebSocket, or SSE. It also provides its own agent orchestration features like planning, self-reflection, memory, and multi-agent handoffs.

Is PraisonAI free to use?

Yes, PraisonAI is open source under the MIT license and installable via pip (praisonai, praisonaiagents) or npm. You'll need your own API keys for whichever LLM provider (OpenAI, Anthropic, etc.) you choose to use.

How do I connect an MCP server to a PraisonAI agent?

Use the MCP() helper in Python, e.g. `Agent(tools=MCP("npx @modelcontextprotocol/server-memory"))` for stdio servers, or pass an HTTP/WebSocket URL directly, optionally with an auth_token and environment variables.

What authentication is required?

PraisonAI itself requires an LLM provider API key (e.g. OPENAI_API_KEY) set as an environment variable. Individual MCP servers you connect to may require their own auth tokens or API keys, passed via the env parameter or auth_token argument.

What LLM providers does PraisonAI support?

It supports 100+ LLMs including OpenAI, Anthropic, Google Gemini, DeepSeek, Azure, Ollama, Groq, Mistral, Cerebras, Cohere, OpenRouter, Perplexity, AWS Bedrock, Vertex AI, HuggingFace, and more.

How do I install PraisonAI for use in Claude or Cursor?

Install the core SDK with `pip install praisonaiagents` (or `pip install praisonai` for the CLI), set your LLM API key as an environment variable, then define agents in Python and attach MCP tools using the MCP() helper as shown in the README examples.

README (reference)

Source of truth, from the repository.

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset=".github/images/logo_dark.png" /> <source media="(prefers-color-scheme: light)" srcset=".github/images/logo_light.png" /> <img alt="PraisonAI Logo" src=".github/images/logo_light.png" width="250" /> </picture> </p> <!-- mcp-name: io.github.MervinPraison/praisonai --> <p align="center"> <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://static.pepy.tech/badge/PraisonAI" alt="Total Downloads" /></a> <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/github/v/release/MervinPraison/PraisonAI" alt="Latest Stable Version" /></a> <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License" /></a> <a href="https://registry.modelcontextprotocol.io/servers/io.github.MervinPraison/praisonai"><img src="https://img.shields.io/badge/MCP-Registry-blue" alt="MCP Registry" /></a> </p> <div align="center">

PraisonAI 🦞

<a href="https://trendshift.io/repositories/9130" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9130" alt="MervinPraison%2FPraisonAI | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

</div>

PraisonAI 🦞 β€” Hire a 24/7 AI Workforce. Stop writing boilerplate and start shipping autonomous, self-improving agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.

curl -fsSL https://praison.ai/install.sh | bash
<div align="center"> <br> <a href="https://x.com/elonmusk/status/1893870468249141688" target="_blank"> <img src="https://img.shields.io/badge/Highlighted_by_Elon_Musk-000000?style=for-the-badge&logo=x&logoColor=white" alt="Highlighted by Elon Musk" /> </a> <br> </div> <p align="center"> <img src=".github/images/dashboard.png" alt="PraisonAI Dashboard" width="800" /> </p> <p align="center"> <img src=".github/images/agentflow.gif" alt="PraisonAI AgentFlow" width="800" /> </p>
 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—
 β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘
 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 β•šβ•β•     β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•β•β•    β•šβ•β•  β•šβ•β•β•šβ•β•

 pip install praisonai
<p align="center"> <img src=".github/images/latest_ai_news_and_crawl_each_url_to_find_info.gif" alt="PraisonAI command execution" width="800" /> </p>

* export TAVILY_API_KEY=xxxxx

<div align="center"> <a href="https://docs.praison.ai"> <p align="center"> <img src="https://img.shields.io/badge/πŸ“š_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" /> </p> </a> </div>

🎯 Use Cases

AI agents solving real-world problems across industries:

Use CaseDescription
πŸ” Research & AnalysisConduct deep research, gather information, and generate insights from multiple sources automatically
πŸ’» Code GenerationWrite, debug, and refactor code with AI agents that understand your codebase and requirements
✍️ Content CreationGenerate blog posts, documentation, marketing copy, and technical writing with multi-agent teams
πŸ“Š Data PipelinesExtract, transform, and analyze data from APIs, databases, and web sources automatically
πŸ€– Customer SupportDeploy 24/7 support bots on Telegram, Discord, Slack with memory and knowledge-backed responses
βš™οΈ Workflow AutomationAutomate multi-step business processes with agents that hand off tasks, verify results, and self-correct

πŸš€ Meet your first Agent (Under 1 Minute)

  1. Install the lightweight core SDK:
pip install praisonaiagents
export OPENAI_API_KEY="your-api-key"
  1. Run your first autonomous agent:
from praisonaiagents import Agent

# Give your agent a goal, and watch it work.
agent = Agent(instructions="You are a senior data analyst.")
agent.start("Analyze the top 3 tech trends of 2026 and format as a markdown table.")

🌌 The PraisonAI Ecosystem

Start simple with the core SDK, or expand to full visual builders and dashboards when you're ready.

  • Core SDK (praisonaiagents): For pure Python development. pip install praisonaiagents
  • πŸ’» PraisonAI CLI (praisonai): For terminal-based developers. pip install praisonai
  • 🦞 Claw Dashboard: Connect agents directly to Telegram, Slack, or Discord. pip install "praisonai[claw]"
  • πŸ”— Flow Visual Builder: Drag-and-drop workflow creation. pip install "praisonai[flow]"
  • πŸ€– PraisonAI UI: Clean chat interface. pip install "praisonai[ui]"

JavaScript SDK

npm install praisonai

🧠 Supported Providers & Features

Powered by 100+ LLMs (OpenAI, Anthropic, Gemini & local models).

<p align="center"> <img src="https://img.shields.io/badge/OpenAI-412991?style=flat&logo=openai&logoColor=white" alt="OpenAI" /> <img src="https://img.shields.io/badge/Anthropic-191919?style=flat&logo=anthropic&logoColor=white" alt="Anthropic" /> <img src="https://img.shields.io/badge/Google_Gemini-4285F4?style=flat&logo=google&logoColor=white" alt="Google Gemini" /> <img src="https://img.shields.io/badge/DeepSeek-566AB2?style=flat" alt="DeepSeek" /> <img src="https://img.shields.io/badge/Azure-0078D4?style=flat&logo=microsoftazure&logoColor=white" alt="Azure" /> <img src="https://img.shields.io/badge/Ollama-000000?style=flat" alt="Ollama" /> <img src="https://img.shields.io/badge/Groq-F05237?style=flat" alt="Groq" /> <img src="https://img.shields.io/badge/Mistral-FF7000?style=flat" alt="Mistral" /> <img src="https://img.shields.io/badge/Cerebras-F05A28?style=flat" alt="Cerebras" /> <img src="https://img.shields.io/badge/Cohere-39594D?style=flat" alt="Cohere" /> <img src="https://img.shields.io/badge/OpenRouter-6467F2?style=flat" alt="OpenRouter" /> <img src="https://img.shields.io/badge/Perplexity-20808D?style=flat" alt="Perplexity" /> <img src="https://img.shields.io/badge/Fireworks-FF6B35?style=flat" alt="Fireworks" /> <img src="https://img.shields.io/badge/AWS_Bedrock-FF9900?style=flat&logo=amazonaws&logoColor=white" alt="AWS Bedrock" /> <img src="https://img.shields.io/badge/xAI_Grok-000000?style=flat" alt="xAI Grok" /> <img src="https://img.shields.io/badge/Vertex_AI-4285F4?style=flat&logo=googlecloud&logoColor=white" alt="Vertex AI" /> <img src="https://img.shields.io/badge/HuggingFace-FFD21E?style=flat&logo=huggingface&logoColor=black" alt="HuggingFace" /> <img src="https://img.shields.io/badge/Together_AI-000000?style=flat" alt="Together AI" /> <img src="https://img.shields.io/badge/Databricks-FF3621?style=flat&logo=databricks&logoColor=white" alt="Databricks" /> <img src="https://img.shields.io/badge/Replicate-262626?style=flat" alt="Replicate" /> <img src="https://img.shields.io/badge/Cloudflare-F38020?style=flat&logo=cloudflare&logoColor=white" alt="Cloudflare" /> </p> <details> <summary><strong>View all 24 providers with examples</strong></summary>
ProviderExample
OpenAIExample
AnthropicExample
Google GeminiExample
OllamaExample
GroqExample
DeepSeekExample
xAI GrokExample
MistralExample
CohereExample
PerplexityExample
FireworksExample
Together AIExample
OpenRouterExample
HuggingFaceExample
Azure OpenAIExample
AWS BedrockExample
Google VertexExample
DatabricksExample
CloudflareExample
AI21Example
ReplicateExample
SageMakerExample
MoonshotExample
vLLMExample
</details> <div align="center"> <a href="https://x.com/elonmusk/status/1893870468249141688" target="_blank"> <img src=".github/images/elon_musk_praisonai.png" alt="Highlighted by Elon Musk" width="600" /> </a> <p><em>"Grok 3 customer support" β€” <a href="https://x.com/elonmusk/status/1893870468249141688">Elon Musk quoting PraisonAI's tutorial</a></em></p> </div> <br>

🌟 Why PraisonAI?

FeatureHow
πŸ”ŒMCP Protocol β€” stdio, HTTP, WebSocket, SSEtools=MCP("npx ...")
🧠Planning Mode β€” plan β†’ execute β†’ reasonplanning=True
πŸ”Deep Research β€” multi-step autonomous researchDocs
πŸ€–External Agents β€” orchestrate Claude Code, Gemini CLI, CodexDocs
πŸ”„Agent Handoffs β€” seamless conversation passinghandoff=True
πŸ›‘οΈGuardrails β€” input/output validationDocs
Web Search + Fetch β€” native browsingweb_search=True
πŸͺžSelf Reflection β€” agent reviews its own outputDocs
πŸ”€Workflow Patterns β€” route, parallel, loop, repeatDocs
🧠Memory (zero deps) β€” works out of the boxmemory=True
<details> <summary><strong>View all 25 features</strong></summary>
FeatureHow
πŸ’‘Prompt Caching β€” reduce latency + costprompt_caching=True
πŸ’ΎSessions + Auto-Save β€” persistent state across restartsauto_save="my-project"
πŸ’­Thinking Budgets β€” control reasoning depththinking_budget=1024
πŸ“šRAG + Quality-Based RAG β€” auto quality scoring retrievalDocs
πŸ“ŠModel Router β€” auto-routes to cheapest capable modelDocs
🧊Shadow Git Checkpoints β€” auto-rollback on failureDocs
πŸ“‘A2A Protocol β€” agent-to-agent interopDocs
πŸ“Context Compaction β€” never hit token limitsDocs
πŸ“‘Telemetry β€” OpenTelemetry traces, spans, metricsDocs
πŸ“œPolicy Engine β€” declarative agent behavior controlDocs
πŸ”„Background Tasks β€” fire-and-forget agentsDocs
πŸ”Doom Loop Detection β€” auto-recovery from stuck agentsDocs
πŸ•ΈοΈGraph Memory β€” Neo4j-style relationship trackingDocs
πŸ–οΈSandbox Execution β€” isolated code executionDocs
πŸ–₯️Bot Gateway β€” multi-agent routing across channelsDocs
</details>

πŸ“˜ Using Python Code

1. Single Agent

from praisonaiagents import Agent
agent = Agent(instructions="You are a helpful AI assistant")
agent.start("Write a movie script about a robot in Mars")

2. Multi Agents

from praisonaiagents import Agent, Agents

research_agent = Agent(instructions="Research about AI")
summarise_agent = Agent(instructions="Summarise research agent's findings")
agents = Agents(agents=[research_agent, summarise_agent])
agents.start()

3. MCP (Model Context Protocol)

from praisonaiagents import Agent, MCP

# stdio - Local NPX/Python servers
agent = Agent(tools=MCP("npx @modelcontextprotocol/server-memory"))

# Streamable HTTP - Production servers
agent = Agent(tools=MCP("https://api.example.com/mcp"))

# WebSocket - Real-time bidirectional
agent = Agent(tools=MCP("wss://api.example.com/mcp", auth_token="token"))

# With environment variables
agent = Agent(
    tools=MCP(
        command="npx",
        args=["-y", "@modelcontextprotocol/server-brave-search"],
        env={"BRAVE_API_KEY": "your-key"}
    )
)

πŸ“– Full MCP docs β€” stdio, HTTP, WebSocket, SSE transports

4. Custom Tools

from praisonaiagents import Agent, tool

@tool
def search(query: str) -> str:
    """Search the web for information."""
    return f"Results for: {query}"

@tool
def calculate(expression: str) -> float:
    """Safely evaluate a numeric arithmetic expression."""
    import ast
    import operator
    
    # Define allowed operations
    _OPS = {
        ast.Add: operator.add,
        ast.Sub: operator.sub,
        ast.Mult: operator.mul,
        ast.Div: operator.truediv,
        ast.Pow: operator.pow,
        ast.USub: operator.neg,
        ast.UAdd: operator.pos,
    }
    
    def _safe_eval(node):
        if isinstance(node, ast.Constant) and isinstance(node.value, (int, float)):
            return node.value
        elif isinstance(node, ast.BinOp) and type(node.op) in _OPS:
            return _OPS[type(node.op)](_safe_eval(node.left), _safe_eval(node.right))
        elif isinstance(node, ast.UnaryOp) and type(node.op) in _OPS:
            return _OPS[type(node.op)](_safe_eval(node.operand))
        else:
            raise ValueError("Unsupported expression")
    
    try:
        return _safe_eval(ast.parse(expression, mode="eval").body)
    except (ValueError, SyntaxError, TypeError, ZeroDivisionError, OverflowError):
        raise ValueError("Invalid arithmetic expression")

agent = Agent(
    instructions="You are a helpful assistant",
    tools=[search, calculate]
)
agent.start("Search for AI news and calculate 15*4")

⚠️ Security Note: Never use eval(), exec(), or subprocess in tool functions that process LLM-generated or user-supplied input. Always validate and sanitize inputs to prevent code injection attacks. πŸ“– Full tools docs β€” BaseTool, tool packages, 100+ built-in tools

5. Persistence (Databases)

from praisonaiagents import Agent, db

agent = Agent(
    name="Assistant",
    db=db(database_url="postgresql://localhost/mydb"),
    session_id="my-session"
)
agent.chat("Hello!")  # Auto-persists messages, runs, traces

πŸ“– Full persistence docs β€” PostgreSQL, MySQL, SQLite, MongoDB, Redis, and 20+ more

6. PraisonAI Claw 🦞 (Dashboard UI)

Connect your AI agents to Telegram, Discord, Slack, WhatsApp and more β€” all from a single command.

pip install "praisonai[claw]"
praisonai claw

Required Environment Variables

Copy .env.example to .env and configure the following variables:

VariableRequiredDescription
OPENAI_API_KEYYesOpenAI API key for all LLM calls
TAVILY_API_KEYYes (Claw)Tavily key for the built-in web-search tool. Get one free at https://app.tavily.com

Open http://localhost:8082 β€” the dashboard comes with 13 built-in pages: Chat, Agents, Memory, Knowledge, Channels, Guardrails, Cron, and more. Add messaging channels directly from the UI.

πŸ“– Full Claw docs β€” platform tokens, CLI options, Docker, and YAML agent mode

7. Langflow Integration πŸ”— (Visual Flow Builder)

Build multi-agent workflows visually with drag-and-drop components in Langflow.

pip install "praisonai[flow]"
praisonai flow

Open http://localhost:7861 β€” use the Agent and Agent Team components to create sequential or parallel workflows. Connect Chat Input β†’ Agent Team β†’ Chat Output for instant multi-agent pipelines.

πŸ“– Full Flow docs β€” visual agent building, component reference, and deployment

8. PraisonAI UI πŸ€– (Clean Chat)

Lightweight chat interface for your AI agents.

pip install "praisonai[ui]"
praisonai ui

πŸ“„ Using YAML (No Code)

Example 1: Two Agents Working Together

Create agents.yaml:

framework: praisonai
topic: "Write a blog post about AI"

agents:
  researcher:
    role: Research Analyst
    goal: Research AI trends and gather information
    instructions: "Find accurate information about AI trends"
    
  writer:
    role: Content Writer
    goal: Write engaging blog posts
    instructions: "Write clear, engaging content based on research"

Run with:

praisonai agents.yaml

The agents automatically work together sequentially

Example 2: Agent with Custom Tool

Create two files in the same folder:

agents.yaml:

framework: praisonai
topic: "Calculate the sum of 25 and 15"

agents:
  calculator_agent:
    role: Calculator
    goal: Perform calculations
    instructions: "Use the add_numbers tool to help with calculations"
    tools:
      - add_numbers

tools.py:

def add_numbers(a: float, b: float) -> float:
    """
    Add two numbers together.
    
    Args:
        a: First number
        b: Second number
    
    Returns:
        The sum of a and b
    """
    return a + b

Run with:

praisonai agents.yaml

πŸ’‘ Tips:

  • Use the function name (e.g., add_numbers) in the tools list, not the file name
  • Tools in tools.py are automatically discovered
  • The function's docstring helps the AI understand how to use it

🎯 CLI Quick Reference

CategoryCommands
Executionpraisonai, --auto, --interactive, --chat
Researchresearch, --query-rewrite, --deep-research
Planning--planning, --planning-tools, --planning-reasoning
Workflowsworkflow run, workflow list, workflow auto
Memorymemory show, memory add, memory search, memory clear
Knowledgeknowledge add, knowledge query, knowledge list
Sessionssession list, session resume, session delete
Toolstools list, tools info, tools search
MCPmcp list, mcp create, mcp enable
Developmentcommit, docs, checkpoint, hooks
Schedulingschedule start, schedule list, schedule stop

πŸ“– Full CLI reference


✨ Key Features

<details open> <summary><strong>πŸ€– Core Agents</strong></summary>
FeatureCodeDocs
Single AgentExampleπŸ“–
Multi AgentsExampleπŸ“–
Auto AgentsExampleπŸ“–
Self Reflection AI AgentsExampleπŸ“–
Reasoning AI AgentsExampleπŸ“–
Multi Modal AI AgentsExampleπŸ“–
</details> <details> <summary><strong>πŸ”„ Workflows</strong></summary>
FeatureCodeDocs
Simple WorkflowExampleπŸ“–
Workflow with AgentsExampleπŸ“–
Agentic Routing (route())ExampleπŸ“–
Parallel Execution (parallel())ExampleπŸ“–
Loop over List/CSV (loop())ExampleπŸ“–
Evaluator-Optimizer (repeat())ExampleπŸ“–
Conditional StepsExampleπŸ“–
Workflow BranchingExampleπŸ“–
Workflow Early StopExampleπŸ“–
Workflow CheckpointsExampleπŸ“–
</details> <details> <summary><strong>πŸ’» Code & Development</strong></summary>
FeatureCodeDocs
Code Interpreter AgentsExampleπŸ“–
AI Code Editing ToolsExampleπŸ“–
External Agents (All)ExampleπŸ“–
Claude Code CLIExampleπŸ“–
Gemini CLIExampleπŸ“–
Codex CLIExampleπŸ“–
Cursor CLIExampleπŸ“–
</details> <details> <summary><strong>🧠 Memory & Knowledge</strong></summary>
FeatureCodeDocs
Memory (Short & Long Term)ExampleπŸ“–
File-Based MemoryExampleπŸ“–
Claude Memory ToolExampleπŸ“–
Add Custom KnowledgeExampleπŸ“–
RAG AgentsExampleπŸ“–
Chat with PDF AgentsExampleπŸ“–
Data Readers (PDF, DOCX, etc.)CLIπŸ“–
Vector Store SelectionCLIπŸ“–
Retrieval StrategiesCLIπŸ“–
RerankersCLIπŸ“–
Index Types (Vector/Keyword/Hybrid)CLIπŸ“–
Query Engines (Sub-Question, etc.)CLIπŸ“–
</details> <details> <summary><strong>πŸ”¬ Research & Intelligence</strong></summary>
FeatureCodeDocs
Deep Research AgentsExampleπŸ“–
Query Rewriter AgentExampleπŸ“–
Native Web SearchExampleπŸ“–
Built-in Search ToolsExampleπŸ“–
Unified Web SearchExampleπŸ“–
Web Fetch (Anthropic)ExampleπŸ“–
</details> <details> <summary><strong>πŸ“‹ Planning & Execution</strong></summary>
FeatureCodeDocs
Planning ModeExampleπŸ“–
Planning ToolsExampleπŸ“–
Planning ReasoningExampleπŸ“–
Prompt ChainingExampleπŸ“–
Evaluator OptimiserExampleπŸ“–
Orchestrator WorkersExampleπŸ“–
</details> <details> <summary><strong>πŸ‘₯ Specialized Agents</strong></summary>
FeatureCodeDocs
Data Analyst AgentExampleπŸ“–
Finance AgentExampleπŸ“–
Shopping AgentExampleπŸ“–
Recommendation AgentExampleπŸ“–
Wikipedia AgentExampleπŸ“–
Programming AgentExampleπŸ“–
Math AgentsExampleπŸ“–
Markdown AgentExampleπŸ“–
Prompt Expander AgentExampleπŸ“–
</details> <details> <summary><strong>🎨 Media & Multimodal</strong></summary>
FeatureCodeDocs
Image Generation AgentExampleπŸ“–
Image to Text AgentExampleπŸ“–
Video AgentExampleπŸ“–
Camera IntegrationExampleπŸ“–
</details> <details> <summary><strong>πŸ”Œ Protocols & Integration</strong></summary>
FeatureCodeDocs
MCP TransportsExampleπŸ“–
WebSocket MCPExampleπŸ“–
MCP SecurityExampleπŸ“–
MCP ResumabilityExampleπŸ“–
MCP Config ManagementDocsπŸ“–
LangChain Integrated AgentsExampleπŸ“–
</details> <details> <summary><strong>πŸ›‘οΈ Safety & Control</strong></summary>
FeatureCodeDocs
GuardrailsExampleπŸ“–
Human ApprovalExampleπŸ“–
Rules & InstructionsDocsπŸ“–
</details> <details> <summary><strong>βš™οΈ Advanced Features</strong></summary>
FeatureCodeDocs
Async & Parallel ProcessingExampleπŸ“–
ParallelisationExampleπŸ“–
Repetitive AgentsExampleπŸ“–
Agent HandoffsExampleπŸ“–
Stateful AgentsExampleπŸ“–
Autonomous WorkflowExampleπŸ“–
Structured Output AgentsExampleπŸ“–
Model RouterExampleπŸ“–
Prompt CachingExampleπŸ“–
Fast ContextExampleπŸ“–
</details> <details> <summary><strong>πŸ› οΈ Tools & Configuration</strong></summary>
FeatureCodeDocs
100+ Custom ToolsExampleπŸ“–
YAML ConfigurationExampleπŸ“–
100+ LLM SupportExampleπŸ“–
Callback AgentsExampleπŸ“–
HooksExampleπŸ“–
Middleware SystemExampleπŸ“–
Configurable ModelExampleπŸ“–
Rate LimiterExampleπŸ“–
Injected Tool StateExampleπŸ“–
Shadow Git CheckpointsExampleπŸ“–
Background TasksExampleπŸ“–
Policy EngineExampleπŸ“–
Thinking BudgetsExampleπŸ“–
Output StylesExampleπŸ“–
Context CompactionExampleπŸ“–
</details> <details> <summary><strong>πŸ“Š Monitoring & Management</strong></summary>
FeatureCodeDocs
Sessions ManagementExampleπŸ“–
Auto-Save SessionsDocsπŸ“–
History in ContextDocsπŸ“–
TelemetryExampleπŸ“–
Langfuse TracingDocsπŸ“–
Project Docs (.praison/docs/)DocsπŸ“–
AI Commit MessagesDocsπŸ“–
@Mentions in PromptsDocsπŸ“–
</details> <details> <summary><strong>πŸ–₯️ CLI Features</strong></summary>
FeatureCodeDocs
Slash CommandsExampleπŸ“–
Autonomy ModesExampleπŸ“–
Cost TrackingExampleπŸ“–
Repository MapExampleπŸ“–
Interactive TUIExampleπŸ“–
Git IntegrationExampleπŸ“–
Sandbox ExecutionExampleπŸ“–
CLI CompareExampleπŸ“–
Profile/BenchmarkDocsπŸ“–
Auto ModeDocsπŸ“–
InitDocsπŸ“–
File InputDocsπŸ“–
Final AgentDocsπŸ“–
Max TokensDocsπŸ“–
</details> <details> <summary><strong>πŸ§ͺ Evaluation</strong></summary>
FeatureCodeDocs
Accuracy EvaluationExampleπŸ“–
Performance EvaluationExampleπŸ“–
Reliability EvaluationExampleπŸ“–
Criteria EvaluationExampleπŸ“–
</details> <details> <summary><strong>🎯 Agent Skills</strong></summary>
FeatureCodeDocs
Skills ManagementExampleπŸ“–
Custom SkillsExampleπŸ“–
</details> <details> <summary><strong>⏰ 24/7 Scheduling</strong></summary>
FeatureCodeDocs
Agent SchedulerExampleπŸ“–
</details>

πŸ’» Using JavaScript Code

npm install praisonai
export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
const { Agent } = require('praisonai');
const agent = new Agent({ instructions: 'You are a helpful AI assistant' });
agent.start('Write a movie script about a robot in Mars');

⚑ Performance

PraisonAI is built for speed, with agent instantiation in around 14ΞΌs. This reduces overhead, improves responsiveness, and helps multi-agent systems scale efficiently in real-world production workloads.

Performance MetricPraisonAI
Avg Instantiation Time14 ΞΌs


⭐ Star History

Star History Chart


πŸ” Langfuse Tracing

pip install "praisonai[langfuse]"
praisonai langfuse
<p align="center"> <img src=".github/images/langfuse.png" alt="PraisonAI Langfuse Tracing" width="800" /> </p>

πŸŽ“ Video Tutorials

Learn PraisonAI through our comprehensive video series:

<details> <summary><strong>View all 22 video tutorials</strong></summary>
TopicVideo
AI Agents with Self ReflectionSelf Reflection
Reasoning Data Generating AgentReasoning Data
AI Agents with ReasoningReasoning
Multimodal AI AgentsMultimodal
AI Agents WorkflowWorkflow
Async AI AgentsAsync
Mini AI AgentsMini
AI Agents with MemoryMemory
Repetitive AgentsRepetitive
IntroductionIntroduction
Tools OverviewTools Overview
Custom ToolsCustom Tools
Firecrawl IntegrationFirecrawl
User InterfaceUI
Crawl4AI IntegrationCrawl4AI
Chat InterfaceChat
Code InterfaceCode
Mem0 IntegrationMem0
TrainingTraining
Realtime Voice InterfaceRealtime
Call InterfaceCall
Reasoning Extract AgentsReasoning Extract
</details>

πŸ‘₯ Contributing

We welcome contributions! Fork the repo, create a branch, and submit a PR β†’ Contributing Guide.


❓ FAQ & Troubleshooting

<details> <summary><strong>ModuleNotFoundError: No module named 'praisonaiagents'</strong></summary>

Install the package:

pip install praisonaiagents
</details> <details> <summary><strong>API key not found / Authentication error</strong></summary>

Ensure your API key is set:

export OPENAI_API_KEY=your_key_here

For other providers, see Models docs.

</details> <details> <summary><strong>How do I use a local model (Ollama)?</strong></summary>
# Start Ollama server first
ollama serve

# Set environment variable
export OPENAI_BASE_URL=http://localhost:11434/v1

See Models docs for more details.

</details> <details> <summary><strong>How do I persist conversations to a database?</strong></summary>

Use the db parameter:

from praisonaiagents import Agent, db

agent = Agent(
    name="Assistant",
    db=db(database_url="postgresql://localhost/mydb"),
    session_id="my-session"
)

See Persistence docs for supported databases.

</details> <details> <summary><strong>How do I enable agent memory?</strong></summary>
from praisonaiagents import Agent

agent = Agent(
    name="Assistant",
    memory=True,  # Enables file-based memory (no extra deps!)
    user_id="user123"
)

See Memory docs for more options.

</details> <details> <summary><strong>How do I run multiple agents together?</strong></summary>
from praisonaiagents import Agent, Agents

agent1 = Agent(instructions="Research topics")
agent2 = Agent(instructions="Summarize findings")
agents = Agents(agents=[agent1, agent2])
agents.start()

See Agents docs for more examples.

</details> <details> <summary><strong>How do I use MCP tools?</strong></summary>
from praisonaiagents import Agent, MCP

agent = Agent(
    tools=MCP("npx @modelcontextprotocol/server-memory")
)

See MCP docs for all transport options.

</details>

Getting Help


<div align="center"> <p><strong>Made with ❀️ by the PraisonAI Team</strong></p> <p> <a href="https://docs.praison.ai">πŸ“š Documentation</a> β€’ <a href="https://github.com/MervinPraison/PraisonAI">GitHub</a> β€’ <a href="https://youtube.com/@MervinPraison">▢️ YouTube</a> β€’ <a href="https://x.com/MervinPraison">𝕏 X</a> β€’ <a href="https://linkedin.com/in/mervinpraison">πŸ’Ό LinkedIn</a> </p> </div>

Related MCP servers

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository β†’

Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.

45k
TypeScript
Apache-2.0
View repository β†’

Let AI agents manage your Puter files, websites, and serverless workers over MCP.

43k
TypeScript
AGPL-3.0
View repository β†’

Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.

37k
TypeScript
Apache-2.0
View repository β†’

Run arbitrary shell commands from an MCP-connected AI agent.

37k
TypeScript
Apache-2.0
View repository β†’

Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.

37k
TypeScript
Apache-2.0
View repository β†’