Skip to main content

CLI tool for creating and managing FIPS-compliant AI agent projects

Project description

FIPS Agents CLI

A command-line tool for creating and managing FIPS-compliant AI agent projects, with a focus on MCP (Model Context Protocol) server development.

Features

  • ๐Ÿš€ Quick project scaffolding from templates
  • ๐Ÿ“ฆ MCP server project generation
  • ๐Ÿ”ง Automatic project customization
  • ๐ŸŽจ Beautiful CLI output with Rich
  • โœ… Git repository initialization
  • ๐Ÿงช Comprehensive test coverage

Installation

Using pipx (Recommended)

pipx install fips-agents-cli

Using pip

pip install fips-agents-cli

From Source (Development)

# Clone the repository
git clone https://github.com/rdwj/fips-agents-cli.git
cd fips-agents-cli

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in editable mode with dev dependencies
pip install -e .[dev]

Quick Start

Create a new MCP server project

fips-agents create mcp-server my-awesome-server

This will:

  1. Clone the MCP server template
  2. Customize the project with your chosen name
  3. Initialize a git repository
  4. Provide next steps for development

Specify a target directory

fips-agents create mcp-server my-server --target-dir ~/projects

Skip git initialization

fips-agents create mcp-server my-server --no-git

Usage

Basic Commands

# Display version
fips-agents --version

# Get help
fips-agents --help
fips-agents create --help
fips-agents create mcp-server --help

Create MCP Server

fips-agents create mcp-server <project-name> [OPTIONS]

Arguments:

  • project-name: Name for your MCP server project (must start with lowercase letter, contain only lowercase letters, numbers, hyphens, and underscores)

Options:

  • --target-dir, -t PATH: Target directory for the project (default: current directory)
  • --no-git: Skip git repository initialization
  • --help: Show help message

Examples:

# Create in current directory
fips-agents create mcp-server my-mcp-server

# Create in specific directory
fips-agents create mcp-server my-server -t ~/projects

# Create without git initialization
fips-agents create mcp-server my-server --no-git

Project Name Requirements

Project names must follow these rules:

  • Start with a lowercase letter
  • Contain only lowercase letters, numbers, hyphens (-), and underscores (_)
  • Not be empty

Valid examples: my-server, test_mcp, server123, my-awesome-mcp-server

Invalid examples: MyServer (uppercase), 123server (starts with number), my@server (special characters)

After Creating a Project

Once your project is created, follow these steps:

# 1. Navigate to your project
cd my-mcp-server

# 2. Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# 3. Install the project
pip install -e .[dev]

# 4. Run tests
pytest

# 5. Start developing!
# Edit src/my_mcp_server/ files to add your functionality

Development

Setup Development Environment

# Clone the repository
git clone https://github.com/rdwj/fips-agents-cli.git
cd fips-agents-cli

# Create virtual environment
python -m venv venv
source venv/bin/activate

# Install with dev dependencies
pip install -e .[dev]

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=fips_agents_cli --cov-report=html

# Run specific test file
pytest tests/test_create.py

# Run specific test
pytest tests/test_create.py::TestCreateMcpServer::test_successful_creation

Code Quality

# Format code with Black
black src tests

# Lint with Ruff
ruff check src tests

# Type checking (if using mypy)
mypy src

Project Structure

fips-agents-cli/
โ”œโ”€โ”€ pyproject.toml          # Project configuration
โ”œโ”€โ”€ README.md               # This file
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ fips_agents_cli/
โ”‚       โ”œโ”€โ”€ __init__.py     # Package initialization
โ”‚       โ”œโ”€โ”€ __main__.py     # Entry point for python -m
โ”‚       โ”œโ”€โ”€ cli.py          # Main CLI application
โ”‚       โ”œโ”€โ”€ version.py      # Version information
โ”‚       โ”œโ”€โ”€ commands/       # CLI command implementations
โ”‚       โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚       โ”‚   โ””โ”€โ”€ create.py   # Create command
โ”‚       โ””โ”€โ”€ tools/          # Utility modules
โ”‚           โ”œโ”€โ”€ __init__.py
โ”‚           โ”œโ”€โ”€ filesystem.py  # Filesystem operations
โ”‚           โ”œโ”€โ”€ git.py         # Git operations
โ”‚           โ””โ”€โ”€ project.py     # Project customization
โ””โ”€โ”€ tests/                  # Test suite
    โ”œโ”€โ”€ __init__.py
    โ”œโ”€โ”€ conftest.py         # Pytest fixtures
    โ”œโ”€โ”€ test_create.py      # Create command tests
    โ”œโ”€โ”€ test_filesystem.py  # Filesystem utilities tests
    โ””โ”€โ”€ test_project.py     # Project utilities tests

Requirements

  • Python 3.9 or higher
  • Git (for cloning templates and initializing repositories)

Dependencies

  • click (>=8.1.0): Command-line interface creation
  • rich (>=13.0.0): Terminal output formatting
  • gitpython (>=3.1.0): Git operations
  • tomlkit (>=0.12.0): TOML file manipulation

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests (pytest)
  5. Format code (black src tests)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

Troubleshooting

Git not found

If you see "Git is not installed" error:

Directory already exists

If you see "Directory already exists" error:

  • Choose a different project name
  • Remove the existing directory: rm -rf project-name
  • Use a different target directory with --target-dir

Template clone fails

If template cloning fails:

License

MIT License - see LICENSE file for details

Links

Changelog

Version 0.1.0 (MVP)

  • Initial release
  • fips-agents create mcp-server command
  • Template cloning and customization
  • Git repository initialization
  • Comprehensive test suite
  • Beautiful CLI output with Rich

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

fips_agents_cli-0.1.0.tar.gz (46.9 kB view details)

Uploaded Source

Built Distribution

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

fips_agents_cli-0.1.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file fips_agents_cli-0.1.0.tar.gz.

File metadata

  • Download URL: fips_agents_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 46.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fips_agents_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 884f12e357ca7831079de53d8fa7caa10b3406bc663d1fdc5b1745506ae02867
MD5 2eeb578daa933e9c1e3b83b1882b3298
BLAKE2b-256 1adb8a365c1ef59215da1739cb93ffefe70f68b85a953974a02e94e0345097f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for fips_agents_cli-0.1.0.tar.gz:

Publisher: workflow.yaml on rdwj/fips-agents-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fips_agents_cli-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fips_agents_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9fc8ed13b0140716c9be2267d99be96b212295272085af5de0f42986c660ea13
MD5 1a30e9ead6af0607236cb1356cc18a95
BLAKE2b-256 254e6510fe85a834bb576cc3fe37154f945b78e187b79b783ec55b611c769650

See more details on using hashes here.

Provenance

The following attestation bundles were made for fips_agents_cli-0.1.0-py3-none-any.whl:

Publisher: workflow.yaml on rdwj/fips-agents-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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