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.8.tar.gz (72.9 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.8-py3-none-any.whl (97.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: a4e-0.1.8.tar.gz
  • Upload date:
  • Size: 72.9 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.8.tar.gz
Algorithm Hash digest
SHA256 4aa2ddda15979ea5c69b73e686f504dfc22345ad15d2f51755df6285709c083d
MD5 0b5bb05f88c0fd3348fca8c7795d1c30
BLAKE2b-256 8812796af854202253812b25a970c645860f1ab0048d8e0e7c197c2fc0071211

See more details on using hashes here.

File details

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

File metadata

  • Download URL: a4e-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 97.1 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b1fb33cda8528ed8620940ac46014780bf322f9bfe97dd26bf959611beaf8591
MD5 fbdc5012045deed8393884b946123318
BLAKE2b-256 c7ef014c3f0b83427be029b993b54ec22fc931088cfee267edb60980f140c33d

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