Server: Recipes MCP

Deploy recipes as MCP servers using praisonai mcp serve-recipe

Deploy any PraisonAI recipe as an MCP server for Claude Desktop, Cursor, and other MCP clients.

Quick Start

  1. Install Dependencies
    bash
    pip install "praisonai[mcp]"
  2. Set API Key
    bash
    export OPENAI_API_KEY="your-key"
  3. List Available Recipes
    bash
    praisonai mcp list-recipes

    Expected Output:

    Available Recipes (2):
    
      • data-analyst (v1.0.0)
        Data analysis template using pandas tools
    
      • support-reply (v1.0.0)
        Draft a friendly reply to a customer support ticket

    Filter by source with --source custom|project|package, by tags with --tags video,social, or add --json for CI. See Recipe → MCP Bridge.

  4. Serve Recipe as MCP
    bash
    praisonai mcp serve-recipe support-reply --transport stdio

CLI – STDIO Transport

For Claude Desktop local integration:

bash
praisonai mcp serve-recipe support-reply --transport stdio

Expected Output:

🚀 Starting Recipe MCP Server 'support-reply'
📡 Transport: stdio
🛠️ Available tools: support_reply.run, support_reply.agent.respond

CLI – HTTP Stream Transport

For remote access:

bash
praisonai mcp serve-recipe support-reply --transport http-stream --port 8080

Expected Output:

🚀 Starting Recipe MCP Server 'support-reply'
📡 HTTP Stream endpoint: http://127.0.0.1:8080/mcp
🛠️ Available tools: support_reply.run, support_reply.agent.respond

Python SDK

python
from praisonai.mcp_server import RecipeMCPAdapter, RecipeMCPConfig

# Create adapter with config
config = RecipeMCPConfig(
    recipe_name="support-reply",
    expose_agent_tools=True,
    expose_run_tool=True,
    safe_mode=True
)

adapter = RecipeMCPAdapter("support-reply", config=config)
adapter.load()

# Get MCP server
server = adapter.to_mcp_server()
server.run(transport="stdio")

Recipe MCP Mapping

Recipe ComponentMCP Primitive
Recipe metadataServer metadata
Agent toolsMCP Tools (namespaced)
Agent instructionsMCP Prompts
Recipe configMCP Resources
Recipe outputsMCP Resources

RecipeMCPConfig Options

FieldTypeDefaultDescription
recipe_namestr–Recipe to serve
expose_agent_toolsboolTrueExpose agent tools
expose_run_toolboolTrueExpose run tool
tool_namespacestrprefixedflat, nested, prefixed
expose_configboolTrueExpose config as resource
expose_outputsboolTrueExpose outputs as resource
expose_promptsboolTrueExpose prompts
safe_modeboolTrueEnable security restrictions
tool_allowlistlistNoneAllowed tool names
tool_denylistlistNoneDenied tool names

CLI Options

OptionDefaultDescription
--transportstdiostdio or http-stream
--host127.0.0.1HTTP host
--port8080HTTP port
--safe-modeTrueEnable security
--log-levelwarningLog level

Generate Client Config

bash
# Generate Claude Desktop config
praisonai mcp config-generate-recipe support-reply --client claude-desktop

Output:

json
{
  "mcpServers": {
    "support-reply": {
      "command": "praisonai",
      "args": ["mcp", "serve-recipe", "support-reply", "--transport", "stdio"]
    }
  }
}

Connect MCP Client

Claude Desktop (claude_desktop_config.json):

For STDIO:

json
{
  "mcpServers": {
    "support-reply": {
      "command": "praisonai",
      "args": ["mcp", "serve-recipe", "support-reply", "--transport", "stdio"]
    }
  }
}

For HTTP Stream:

json
{
  "mcpServers": {
    "support-reply": {
      "url": "http://localhost:8080/mcp",
      "transport": "http-stream"
    }
  }
}

Validate Recipe

Check if a recipe is MCP-compatible:

bash
praisonai mcp validate-recipe support-reply

Output:

✅ Recipe 'support-reply' is MCP-compatible

Tools: 3
  • support_reply.run
  • support_reply.agent.respond
  • support_reply.agent.analyze

Resources: 2
  • recipe://support-reply/config
  • recipe://support-reply/outputs

Prompts: 1
  • support_reply.instructions

Inspect Recipe Schema

bash
praisonai mcp inspect-recipe support-reply

Security

Default denied tools (dangerous operations):

  • shell.exec, shell.run
  • file.write, file.delete
  • db.write, db.delete
  • execute_command, os.system

Override with --safe-mode=false (not recommended).

Troubleshooting

IssueFix
Recipe not foundpraisonai mcp list-recipes
list-recipes --source rejects a value--source accepts only custom, project, package — local and all were never valid
Missing depspip install "praisonai[mcp]"
Tool deniedCheck tool_denylist
Port in useChange --port

Related