Skip to main content

A comprehensive MCP server toolkit for building, managing, and running AI agents compatible with the A4E ecosystem.

Project description

A4E

PyPI version Python 3.10+ License: MIT

A4E is a CLI toolkit for building conversational AI agents. It includes:

  • CLI commands for creating and managing agents (a4e init, a4e add tool, etc.)
  • MCP server for IDE integration (Cursor, Claude Code, Antigravity)
  • Dev server with hot-reload and ngrok tunneling

Requirements

Python 3.10+

# Check your version
python --version

# Install Python 3.10+ if needed
# macOS (with Homebrew)
brew install python@3.10

# Ubuntu/Debian
sudo apt update && sudo apt install python3.10

# Windows (download from python.org)
# https://www.python.org/downloads/

Note: If you try to install with an older Python version, pip will show: ERROR: Package 'a4e' requires a different Python: X.Y.Z not in '>=3.10'

ngrok (for dev server)

The development server uses ngrok to create public tunnels for testing.

  1. Create account: https://ngrok.com/signup
  2. Get your authtoken: https://dashboard.ngrok.com/get-started/your-authtoken
  3. Configure ngrok:
# Option A: Install ngrok CLI and configure
brew install ngrok/ngrok/ngrok   # macOS
# or download from https://ngrok.com/download

ngrok config add-authtoken YOUR_TOKEN_HERE

# Option B: Set environment variable
export NGROK_AUTHTOKEN=YOUR_TOKEN_HERE

Installation

pip install a4e

Verify installation:

a4e --version

Quick Start

Option 1: Use with AI Assistant (MCP)

Configure A4E for your IDE:

# For Cursor
a4e mcp setup cursor

# For Claude Code
a4e mcp setup claude-code

# For Antigravity
a4e mcp setup antigravity

Restart your IDE, then ask your AI assistant:

"Create an agent called nutrition-coach that helps users track meals and calculate calories"

Option 2: Use CLI directly

# Create a new agent
a4e init

# Add components
a4e add tool calculate_bmi
a4e add view bmi_result
a4e add skill show_bmi

# Validate
a4e validate

# Start dev server
a4e dev start

# Deploy
a4e deploy

CLI Commands

Command Arguments Description
a4e init --name, --template Initialize new agent (interactive wizard)
a4e add tool <name> string Add a Python tool
a4e add view <name> string Add a React view
a4e add skill <name> string Add a skill (connects tools → views)
a4e list tools | views | skills | all List components
a4e remove tool <name> string Remove a tool
a4e remove view <name> string Remove a view
a4e remove skill <name> string Remove a skill
a4e update tool <name> string Update a tool
a4e update view <name> string Update a view
a4e update skill <name> string Update a skill
a4e validate --strict, --agent Validate agent structure
a4e deploy --skip-validation Deploy to A4E Cloud
a4e dev start --port int, --auth-token string Start dev server with ngrok
a4e info --json Show agent information

Init Options

Option Type Values Description
--name, -n string my-agent Agent ID (lowercase, hyphens)
--display-name, -d string "My Agent" Human-readable name
--description string "Agent description" Short description
--category, -c enum Concierge, E-commerce, Fitness & Health, Education, Entertainment, Productivity, Finance, Customer Support, General Agent category
--template, -t enum basic, with-tools, with-views, full Project template
--yes, -y flag Skip interactive prompts

MCP Commands

Command Arguments Values Description
a4e mcp setup <ide> cursor, claude-code, antigravity Configure MCP for IDE
a4e mcp show <ide> cursor, claude-code, antigravity Show current config
a4e mcp remove <ide> cursor, claude-code, antigravity Remove A4E from config
a4e mcp test Test MCP server
a4e mcp path <ide> cursor, claude-code, antigravity Show config file path
a4e mcp list List supported IDEs

MCP Setup Options

Option Type Description
--dry-run, -n flag Preview changes without applying
--force, -f flag Overwrite existing A4E config

Agent Structure

When you create an agent, A4E generates:

my-agent/
├── agent.py           # Agent configuration
├── metadata.json      # Agent metadata
├── AGENTS.md          # Documentation for AI assistants
├── prompts/
│   └── agent.md       # System prompt / personality
├── tools/
│   ├── my_tool.py     # Python functions
│   └── schemas.json   # Auto-generated schemas
├── views/
│   ├── my_view/
│   │   └── view.tsx   # React components
│   └── schemas.json   # Auto-generated schemas
└── skills/
    ├── my_skill/
    │   └── SKILL.md   # Skill documentation
    └── schemas.json   # Auto-generated schemas

Concepts

Tools

Python functions that give your agent capabilities:

from typing import Dict, Any

def calculate_bmi(params: Dict[str, Any]) -> Dict[str, Any]:
    """Calculate BMI from height and weight."""
    height = params.get("height_m")
    weight = params.get("weight_kg")
    bmi = weight / (height ** 2)
    return {"bmi": round(bmi, 1), "status": "success"}

Views

React components for rich UI responses:

interface BMIResultProps {
  bmi: number;
  category: string;
}

export default function BMIResult({ bmi, category }: BMIResultProps) {
  return (
    <div className="p-4">
      <h2>Your BMI: {bmi}</h2>
      <p>Category: {category}</p>
    </div>
  );
}

Skills

Connect user intents to tools and views:

{
  "id": "show_bmi",
  "name": "Calculate BMI",
  "intent_triggers": ["calculate my bmi", "what's my bmi"],
  "internal_tools": ["calculate_bmi"],
  "output": {
    "view": "bmi_result"
  }
}

MCP Configuration

Automatic Setup (Recommended)

a4e mcp setup cursor

This:

  1. Creates a backup of your existing config
  2. Adds A4E to your MCP servers
  3. Uses the correct Python path automatically

Manual Setup

Cursor (~/.cursor/mcp.json)
{
  "mcpServers": {
    "a4e": {
      "command": "/path/to/python",
      "args": ["-m", "a4e.server"],
      "env": {
        "A4E_WORKSPACE": "${workspaceFolder}"
      }
    }
  }
}

Find your Python path with: which python or a4e mcp test

Claude Code (~/.claude.json)
{
  "mcpServers": {
    "a4e": {
      "command": "/path/to/python",
      "args": ["-m", "a4e.server"]
    }
  }
}
Antigravity (~/.gemini/antigravity/mcp_config.json)
{
  "mcpServers": {
    "a4e": {
      "command": "/path/to/python",
      "args": ["-m", "a4e.server"]
    }
  }
}

Troubleshooting

"a4e: command not found"

Ensure pip scripts are in your PATH:

# Find where pip installs scripts
python -m site --user-base

# Add to PATH (add to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/.local/bin:$PATH"

# Or install with pipx for automatic PATH management
pipx install a4e

MCP not connecting in IDE

# 1. Test the MCP server
a4e mcp test

# 2. Check your config
a4e mcp show cursor

# 3. Verify Python path is correct
which python

# 4. Restart your IDE after config changes

ngrok errors in dev server

# Check if ngrok is configured
ngrok config check

# Add your authtoken
ngrok config add-authtoken YOUR_TOKEN

# Or pass it directly
a4e dev start --auth-token YOUR_TOKEN

Port 5000 already in use

# Find what's using the port
lsof -i :5000

# Kill it
kill -9 <PID>

# Or use a different port
a4e dev start --port 5001

MCP config backup

When running a4e mcp setup, a backup is automatically created at:

  • Cursor: ~/.cursor/mcp.json.backup
  • Claude Code: ~/.claude.json.backup
  • Antigravity: ~/.gemini/antigravity/mcp_config.json.backup

To restore:

cp ~/.cursor/mcp.json.backup ~/.cursor/mcp.json

Documentation

License

MIT License - see LICENSE for details.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

a4e-0.1.9.tar.gz (92.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

a4e-0.1.9-py3-none-any.whl (123.8 kB view details)

Uploaded Python 3

File details

Details for the file a4e-0.1.9.tar.gz.

File metadata

  • Download URL: a4e-0.1.9.tar.gz
  • Upload date:
  • Size: 92.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for a4e-0.1.9.tar.gz
Algorithm Hash digest
SHA256 8db14c0ccf0d2a1325651ca2131f7a6fe3a8b3a87bcf6dd94e86f8e24613ae62
MD5 de6ffa58e3ae8faef3fa9e6b19f56159
BLAKE2b-256 2c6d7e3fc72adbc7ca29e5d41ab02cd13670fb9bf3801aab5fac19ae0460db5f

See more details on using hashes here.

File details

Details for the file a4e-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: a4e-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 123.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for a4e-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c398fa2bc679f4e8f60cafa061e77eff851c7cdac3a3f34c119f9a428d7fe25e
MD5 6e3b6a180d432ac96dfb715ddd1b5697
BLAKE2b-256 14060eab2b152cbf16b304c377edea62d1c95633c90169643a7a771d1c2cae2d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page