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. Scaffolds MCP (Model Context Protocol) servers, AI agent projects, and ModelCar containers from production-ready templates.
Features
- ๐ Quick project scaffolding from templates
- ๐ฆ MCP server, AI agent, Go gateway, chat UI, sandbox, and ModelCar project generation
- ๐ง Automatic project customization (pyproject.toml, module names, entry points)
- โก Component generation (tools, resources, prompts, middleware) with Jinja2 templates
- ๐จ Beautiful CLI output with Rich
- โ Git repository initialization and GitHub integration
- ๐งช Comprehensive test coverage with auto-run on generated components
- ๐ Template patching to pull upstream improvements into existing projects
Installation
Recommended: Install with pipx for isolated command-line tools:
pipx install fips-agents-cli
pipx installs the CLI in an isolated environment while making it globally available. This prevents dependency conflicts with other Python packages.
Alternative: Using pip
If you prefer pip or don't have pipx installed:
pip install fips-agents-cli
Note: Consider using a virtual environment to avoid dependency conflicts.
Alternative: Install from source (for development)
For contributing or local development:
# Clone the repository
git clone https://github.com/fips-agents/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 projects
# MCP server
fips-agents create mcp-server my-mcp-server
# AI agent
fips-agents create agent my-research-agent
# Go HTTP gateway (proxies to an agent backend)
fips-agents create gateway my-gateway
# Chat UI (connects to a gateway or agent)
fips-agents create ui my-chat-ui
# Code execution sandbox (sidecar for agents)
fips-agents create sandbox my-sandbox
# ModelCar (HuggingFace model as container)
fips-agents create model-car ibm-granite/granite-3.1-2b-instruct \
quay.io/user/models:granite-3.1-2b-instruct
Generate components in an existing MCP server project
cd my-mcp-server
fips-agents generate tool search_documents --description "Search through documents"
fips-agents generate resource config_data --description "Application configuration"
fips-agents generate prompt code_review --description "Review code for best practices"
fips-agents generate middleware auth_middleware --description "Authentication middleware"
Check for template updates
cd my-mcp-server
fips-agents patch check
fips-agents patch all --dry-run
Command Reference
Help
fips-agents --version
fips-agents --help
fips-agents add --help
fips-agents create --help
fips-agents generate --help
fips-agents patch --help
Create Commands
The create command group scaffolds new projects from templates.
Shared Options (mcp-server, agent, gateway, ui)
All create subcommands (except model-car) accept the same options:
| Option | Description |
|---|---|
--target-dir, -t PATH |
Target directory for the project (default: current directory) |
--no-git |
Skip git repository initialization |
--github |
Create GitHub repository and push code |
--local |
Create local project only (skip GitHub) |
--yes, -y |
Non-interactive mode (use defaults, skip prompts) |
--private |
Make GitHub repository private (default: public) |
--org TEXT |
GitHub organization to create repository in |
--description, -d TEXT |
GitHub repository description |
--remote-only |
Create GitHub repo only, don't clone locally |
When gh CLI is installed and authenticated, the tool prompts interactively about GitHub repo creation. Use --local to suppress this, --github to require it, or --yes for fully non-interactive operation.
create mcp-server
fips-agents create mcp-server <project-name> [OPTIONS]
Creates an MCP server project from the mcp-server-template repository. The template includes FastMCP server bootstrap, component auto-discovery, Jinja2 generator templates, Makefile, Containerfile, and tests.
Arguments:
project-nameโ Name for your MCP server project
Examples:
# Create in current directory
fips-agents create mcp-server my-mcp-server
# Create in specific directory without git
fips-agents create mcp-server my-server -t ~/projects --no-git
# Create with private GitHub repo in an organization
fips-agents create mcp-server my-server --github --private --org my-org
# Non-interactive, local only
fips-agents create mcp-server my-server --yes --local
# Create GitHub repo without cloning locally
fips-agents create mcp-server my-server --remote-only --org my-org
create agent
fips-agents create agent <project-name> [OPTIONS]
Creates an AI agent project from the agent-template monorepo (templates/agent-loop/ subdirectory). The template includes an agent loop skeleton, Helm chart, Makefile, Containerfile, and AGENTS.md.
Arguments:
project-nameโ Name for your agent project
Options: Same as create mcp-server (see shared options table above).
Examples:
# Create agent project
fips-agents create agent my-research-agent
# Create with GitHub repo in an organization
fips-agents create agent my-agent --github --org fips-agents
# Non-interactive mode
fips-agents create agent my-agent --yes --local
create gateway
fips-agents create gateway <project-name> [OPTIONS]
Creates a Go HTTP gateway project from the gateway-template repository. The gateway proxies OpenAI-compatible /v1/chat/completions requests to an agent backend, with SSE streaming support, heartbeat keepalives, health/readiness probes, and an A2A agent discovery card.
Arguments:
project-nameโ Name for your gateway project
Options: Same shared options as above.
Examples:
# Create gateway project
fips-agents create gateway my-gateway
# Create with GitHub repo
fips-agents create gateway my-gateway --github --org my-org
create ui
fips-agents create ui <project-name> [OPTIONS]
Creates a chat UI project from the ui-template repository. A Go server with embedded HTML/CSS/JS that provides a browser-based chat interface. Includes a built-in reverse proxy to the backend API, SSE streaming, and markdown rendering.
Arguments:
project-nameโ Name for your UI project
Options: Same shared options as above.
Examples:
# Create UI project
fips-agents create ui my-chat-ui
# Create with GitHub repo
fips-agents create ui my-chat-ui --github --private
create sandbox
fips-agents create sandbox <project-name> [OPTIONS]
Creates a code execution sandbox project from the code-sandbox repository. The sandbox provides a FastAPI-based sidecar for secure code execution inside agent pods, with multiple language profiles (base, data-science).
Arguments:
project-name-- Name for your sandbox project
Options: Same shared options as above.
Examples:
# Create sandbox project
fips-agents create sandbox my-sandbox
# Create with GitHub repo
fips-agents create sandbox my-sandbox --github --private
# Non-interactive mode
fips-agents create sandbox my-sandbox --yes --local
create model-car
fips-agents create model-car <hf-repo> <quay-uri> [OPTIONS]
Creates a ModelCar project for packaging a HuggingFace model as a container image. Generates download scripts, Containerfile, build-and-push scripts, and project metadata.
Arguments:
hf-repoโ HuggingFace repo URL or ID (e.g.,ibm-granite/granite-3.1-2b-instructor the fullhttps://huggingface.co/...URL)quay-uriโ Container registry URI with tag (e.g.,quay.io/user/models:granite-3.1-2b-instruct)
Options:
| Option | Description |
|---|---|
--target-dir, -t PATH |
Target directory for the project (default: current directory) |
Examples:
# Using repo ID
fips-agents create model-car ibm-granite/granite-3.1-2b-instruct \
quay.io/wjackson/models:granite-3.1-2b-instruct
# Using full URL with custom target directory
fips-agents create model-car https://huggingface.co/ibm-granite/granite-3.1-2b-instruct \
quay.io/wjackson/models:granite-3.1-2b-instruct -t ~/models
Generate Commands
The generate command group creates individual components (tools, resources, prompts, middleware) in existing projects.
Run these commands from within your MCP server project directory. The CLI locates the project root by looking for pyproject.toml with a fastmcp dependency.
Each generator:
- Validates the component name and checks for conflicts
- Loads Jinja2 templates from
.fips-agents-cli/generators/in your project - Renders both the component file and a corresponding test file
- Validates Python syntax on the generated code
- Runs the generated tests automatically
Component names must be valid Python identifiers in snake_case. Subdirectory paths (e.g., country-profiles/japan) are supported for resources.
generate tool
fips-agents generate tool <name> [OPTIONS]
Generates a tool component with FastMCP @mcp.tool() decorator.
Options:
| Option | Description |
|---|---|
--async/--sync |
Generate async or sync function (default: async) |
--with-context |
Include FastMCP Context parameter |
--with-auth |
Include authentication decorator |
--scopes TEXT |
Required OAuth scopes, comma-separated (e.g., "read:data,write:data") |
--with-elicitation |
Include elicitation example code |
--description, -d TEXT |
Tool description |
--params PATH |
JSON file with parameter definitions |
--read-only |
Mark as read-only operation (default: true) |
--idempotent |
Mark as idempotent (default: true) |
--open-world |
Mark as open-world operation |
--return-type TEXT |
Return type annotation (default: str) |
--dry-run |
Show what would be generated without creating files |
Examples:
# Basic tool
fips-agents generate tool search_documents --description "Search through documents"
# Tool with context and authentication
fips-agents generate tool fetch_user_data --with-context --with-auth --scopes "read:users"
# Tool with parameters from JSON file
fips-agents generate tool advanced_search --params params.json
# Sync tool with custom return type
fips-agents generate tool process_data --sync --return-type "dict[str, Any]"
# Preview without creating files
fips-agents generate tool test_tool --description "Test" --dry-run
generate resource
fips-agents generate resource <name> [OPTIONS]
Generates a resource component with FastMCP @mcp.resource() decorator. Supports subdirectory paths (e.g., country-profiles/japan creates src/resources/country_profiles/japan.py). URI template parameters (e.g., {id}) are automatically extracted as function arguments.
Options:
| Option | Description |
|---|---|
--async/--sync |
Generate async or sync function (default: async) |
--with-context |
Include FastMCP Context parameter |
--description, -d TEXT |
Resource description |
--uri TEXT |
Resource URI (default: resource://<name>) |
--mime-type TEXT |
MIME type (default: text/plain) |
--dry-run |
Show what would be generated without creating files |
Examples:
# Basic resource
fips-agents generate resource config_data --description "Application configuration"
# Resource with URI template (parameters auto-extracted as function args)
fips-agents generate resource user_profile --uri "resource://users/{id}"
# Resource in a subdirectory
fips-agents generate resource country-profiles/japan --description "Japan country profile"
# Resource with specific MIME type
fips-agents generate resource json_config --mime-type "application/json"
generate prompt
fips-agents generate prompt <name> [OPTIONS]
Generates a prompt component with FastMCP @mcp.prompt() decorator. Note: prompts default to sync (unlike tools and resources which default to async).
Options:
| Option | Description |
|---|---|
--async/--sync |
Generate async or sync function (default: sync) |
--with-context |
Include FastMCP Context parameter |
--description, -d TEXT |
Prompt description |
--params PATH |
JSON file with parameter definitions |
--return-type [str|Message|list[Message]] |
Return type (default: str) |
--with-schema |
Include JSON schema example in prompt body |
--prompt-name TEXT |
Override decorator name (default: function name) |
--title TEXT |
Human-readable title for the prompt |
--tags TEXT |
Comma-separated tags for categorization |
--disabled |
Generate prompt in disabled state |
--meta TEXT |
JSON string of metadata (e.g., '{"version": "1.0"}') |
--dry-run |
Show what would be generated without creating files |
Examples:
# Basic prompt
fips-agents generate prompt code_review --description "Review code for best practices"
# Prompt with parameters and schema
fips-agents generate prompt summarize_text --params params.json --with-schema
# Async prompt returning a Message
fips-agents generate prompt fetch_data --async --with-context --return-type Message
# Prompt with metadata and tags
fips-agents generate prompt generate_report \
--prompt-name "report_generator" \
--title "Report Generator" \
--tags "reporting,analysis" \
--meta '{"version": "2.0", "author": "data-team"}'
generate middleware
fips-agents generate middleware <name> [OPTIONS]
Generates a middleware component using FastMCP's @mcp.middleware() decorator (v3.x class-based pattern). Middleware wraps tool execution and receives a Context and next_handler.
Options:
| Option | Description |
|---|---|
--async/--sync |
Generate async or sync function (default: async) |
--hook-type [before_tool|after_tool|on_error] |
Scaffold a specific hook pattern (default: general wrapper) |
--description, -d TEXT |
Middleware description |
--dry-run |
Show what would be generated without creating files |
Examples:
# General-purpose wrapper
fips-agents generate middleware auth_middleware --description "Authentication middleware"
# Before-tool hook
fips-agents generate middleware rate_limiter --hook-type before_tool
# Error handler (sync)
fips-agents generate middleware error_reporter --hook-type on_error --sync
Parameters JSON Schema
When using --params with generate tool or generate prompt, provide a JSON file defining parameter names, types, and constraints:
[
{
"name": "query",
"type": "str",
"description": "Search query",
"required": true,
"min_length": 1,
"max_length": 100
},
{
"name": "limit",
"type": "int",
"description": "Maximum results to return",
"required": false,
"default": 10,
"ge": 1,
"le": 100
}
]
Supported Types:
str,int,float,boollist[str],list[int],list[float]Optional[str],Optional[int],Optional[float],Optional[bool]
Pydantic Field Constraints:
min_length,max_length(for strings)ge,le,gt,lt(for numbers)pattern(for regex validation on strings)default(default value when optional)
Patch Commands
The patch command group updates files in existing MCP server projects from the upstream template repository without overwriting your custom code. It shows interactive diffs for files that may contain customizations.
Run these commands from within your project directory.
patch check
fips-agents patch check
Check for available template updates. Shows what files have changed in the template since your project was created, organized by category.
patch generators
fips-agents patch generators [--dry-run]
Update code generator templates (Jinja2 templates in .fips-agents-cli/generators/).
patch core
fips-agents patch core [--dry-run]
Update core infrastructure files (loaders, server bootstrap).
patch docs
fips-agents patch docs [--dry-run]
Update documentation files and examples.
patch build
fips-agents patch build [--dry-run]
Update build and deployment files (Makefile, Containerfile).
patch all
fips-agents patch all [--dry-run] [--skip-confirmation]
Update all patchable file categories at once. Prompts for confirmation before starting unless --skip-confirmation is passed.
All patch subcommands (except check) accept --dry-run to preview changes without modifying files.
Add Commands
The add command group wires optional capabilities into existing agent projects created with fips-agents create agent.
Run these commands from within your agent project directory. The CLI locates the project root by looking for agent.yaml.
add code-executor
fips-agents add code-executor
Adds the code_executor tool to your agent's tools/ directory and enables the sandbox sidecar in chart/values.yaml. The tool sends Python code to a sandbox container for isolated execution.
What it does:
- Writes
tools/code_executor.pywith the sandbox client tool - Sets
sandbox.enabled: trueinchart/values.yaml(if the section exists) - Prints deployment guidance for sidecar and remote service modes
Deployment modes:
- Sidecar (default): The sandbox runs as a container in the same pod. The tool connects to
http://localhost:8000. - Remote service: The sandbox runs as a separate deployment. Set
SANDBOX_URLto point to it.
Example:
cd my-research-agent
fips-agents add code-executor
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
MCP Server
cd my-mcp-server
python -m venv venv
source venv/bin/activate
pip install -e .[dev]
pytest
# Start developing in src/my_mcp_server/
AI Agent
cd my-research-agent
python -m venv venv
source venv/bin/activate
pip install -e .[dev]
pytest
# See AGENTS.md for the /plan-agent slash command workflow
Gateway
cd my-gateway
make build # Build the Go binary
make run # Run locally (set BACKEND_URL to your agent)
make build-openshift PROJECT=my-gateway # Build on OpenShift
make deploy PROJECT=my-gateway # Deploy via Helm
Chat UI
cd my-chat-ui
make build # Build the Go binary
make run # Run locally (set API_URL to your gateway/agent)
make build-openshift PROJECT=my-chat-ui # Build on OpenShift
make deploy PROJECT=my-chat-ui # Deploy via Helm
Sandbox
cd my-sandbox
make install # Install dependencies
make test # Run tests
make build # Build container
make build PROFILE=data-science # Build with profile
ModelCar
cd granite-3.1-2b-instruct
./download.sh # Download model weights
./build-and-push.sh # Build container and push to registry
Development
Setup Development Environment
# Clone the repository
git clone https://github.com/fips-agents/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
โโโ CLAUDE.md # Claude Code developer instructions
โโโ RELEASE_CHECKLIST.md # Release procedures
โโโ docs/ # User-facing documentation
โโโ planning/ # Design and implementation plans
โโโ research/ # Technology evaluations
โโโ retrospectives/ # Post-effort retrospectives
โโโ scripts/ # Automation scripts
โโโ src/
โ โโโ fips_agents_cli/
โ โโโ __init__.py
โ โโโ __main__.py # Entry point for python -m
โ โโโ cli.py # Main CLI application
โ โโโ version.py # Version information
โ โโโ commands/ # CLI command implementations
โ โ โโโ add.py # add code-executor (wire capabilities)
โ โ โโโ create.py # create mcp-server, agent, gateway, ui
โ โ โโโ generate.py # generate tool/resource/prompt/middleware
โ โ โโโ model_car.py # create model-car
โ โ โโโ patch.py # patch command
โ โโโ tools/ # Utility modules
โ โโโ filesystem.py
โ โโโ git.py
โ โโโ github.py
โ โโโ project.py
โ โโโ validation.py
โโโ tests/
โโโ conftest.py # Pytest fixtures
โโโ test_create.py # Create command tests
โโโ test_project.py # Project utilities tests
โโโ ...
Documentation
- docs/ โ User-facing reference: publishing guides, release procedures
- planning/ โ Design documents and implementation plans for upcoming features
- research/ โ Technology evaluations and architectural analysis
- retrospectives/ โ Post-effort retrospectives
See docs/README.md for a full index.
Requirements
- Python 3.10 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
- jinja2 (>=3.1.2): Template rendering for component generation
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
pytest) - Format code (
black src tests) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Troubleshooting
Git not found
If you see "Git is not installed" error:
- macOS:
brew install git - Linux:
sudo apt-get install gitorsudo yum install git - Windows: Download from https://git-scm.com/downloads
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:
- Check your internet connection
- Verify the template repository is accessible: https://github.com/fips-agents/mcp-server-template
- Try again later if GitHub is experiencing issues
Agent template clone fails
If cloning the agent template fails:
- The agent template is in a monorepo at https://github.com/fips-agents/agent-template
- Verify the repository is accessible and the
templates/agent-loop/subdirectory exists - Check that you have access to the organization's repositories
ModelCar validation errors
- Invalid HuggingFace repo: Use either a full URL (
https://huggingface.co/org/model) or a short ID (org/model) - Invalid Quay URI: Must include a tag (e.g.,
quay.io/user/repo:tag), not justquay.io/user/repo - Registry login: The CLI checks for
podman loginstatus; runpodman login quay.ioif prompted
"Not in an MCP server project directory"
When using generate or patch commands:
- Ensure you're running the command from within an MCP server project
- Check that
pyproject.tomlexists withfastmcpdependency - If the project wasn't created with
fips-agents create mcp-server, generator templates may be missing
"Component already exists"
If you see this error:
- Choose a different component name
- Manually remove the existing component file from
src/<component-type>/ - Check the component type directory for existing files
Invalid component name
Component names must:
- Be valid Python identifiers (snake_case)
- Not be Python keywords (
for,class, etc.) - Start with a letter or underscore
- Contain only letters, numbers, and underscores
License
MIT License - see LICENSE file for details
Links
- Repository: https://github.com/fips-agents/fips-agents-cli
- Issues: https://github.com/fips-agents/fips-agents-cli/issues
- MCP Protocol: https://modelcontextprotocol.io/
Changelog
Version 0.7.0
- Feature: New
addcommand group for composable agent capabilities - Feature:
fips-agents add code-executorwires sandbox code execution into existing agent projects (tool + Helm chart sidecar config) - Improvement: Updated
generategroup description to reflect broader scope beyond MCP
Version 0.6.2
- Fix: Go project scaffolding now updates import paths in all
.gosource files - Fix: Go project scaffolding now updates Helm template references (
chart/templates/*.yaml)
Version 0.6.1
- Chore: Updated all project URLs from
rdwj/tofips-agents/org - Chore: Post-transfer PyPI publishing verification release
Version 0.6.0
- Feature: Added
create sandboxcommand for scaffolding code execution sandbox projects from fips-agents/code-sandbox template - Feature: All template URLs consolidated under
github.com/fips-agents/organization
Version 0.5.1
- Fix: SSE streaming tool call ID tracking by
call_idnot array index
Version 0.5.0
- Feature: Added
create gatewaycommand for scaffolding Go HTTP gateway projects from the gateway-template - Feature: Added
create uicommand for scaffolding chat UI projects from the ui-template - Feature: Go project customization pipeline (
customize_go_project) handles go.mod, Helm charts, Containerfile, Makefile, and static HTML - Fix: Agent scaffolding now replaces
agent-templatein all Helm chart templates, preventing resource name collisions - Fix: Agent scaffolding now replaces
OWNER/REPOplaceholder in Containerfile with actual GitHub repo
Version 0.4.0
- Feature: Added
create agentcommand for scaffolding AI agent projects from the agent-loop template - Feature: New
clone_template_subdir()utility for extracting templates from monorepos - Feature: Agent project customization across pyproject.toml, Helm chart, Makefile, Containerfile, and AGENTS.md
- Improvement: Reorganized documentation into docs/, planning/, and research/ directories
Version 0.3.0
- Feature: Added
--hook-typeoption to middleware generator withbefore_tool,after_tool, andon_errorchoices for v3.x template scaffolding - Fix: Fixed brittle test mocking for GitHub CLI detection in create command tests
Version 0.2.1
- Fix: Update CLI for FastMCP 3.x template compatibility (auth.py replaces loaders.py, updated prompt return types)
- Fix: Reorder
create mcp-serverprecondition checks to run before interactive GitHub prompt, so errors like missing git or existing directories fail fast without prompting first
Version 0.2.0
- Feature: GitHub integration for
create mcp-servercommand - Feature: New
--githubflag to create GitHub repository and push code - Feature: New
--localflag to skip GitHub and create local-only project - Feature: Non-interactive mode (
--yes) for agent/CI workflows - Feature: New
--privateflag to create private GitHub repositories - Feature: New
--orgoption to create repositories in GitHub organizations - Feature: New
--descriptionoption for GitHub repository descriptions - Feature: New
--remote-onlyflag to create GitHub repo without local clone - Feature: Added missing
patch buildsubcommand for updating build/deployment files - Feature: GitHub metadata tracking in
.template-infofile - Feature: New git utilities for remote management (
add_remote,push_to_remote) - Improvement: Auto-detects
ghCLI and prompts user when available - Improvement: Clean git history - customizes project before initial push
Version 0.1.9
- Feature: Added
.fips-agents-clidirectory to ModelCar projects with generation metadata - Feature: ModelCar projects now include
info.jsonwith source, destination, and generator info - Feature: ModelCar projects now include
CLAUDE.mdwith project-specific Claude Code instructions - Improvement: Consistent project metadata structure between MCP server and ModelCar projects
Version 0.1.8
- Feature: Added GitHub Copilot agent template support
- Feature: Added
model-carcommand for creating model car projects - Fix: Subdirectory names now convert hyphens to underscores for valid Python package names
- Fix: Added
module_pathtemplate variable for proper import paths in subdirectory components - Fix: Script generator improvements
- Improvement: Removed download filter for cleaner template handling
- Improvement: Added info file tracking for generated projects
Version 0.1.7
- Critical Fix: Resource generator now automatically extracts URI template parameters (e.g.,
{country_code},{id}) and adds them to function signature - Critical Fix: Generated resources now comply with FastMCP requirement that URI parameters must match function arguments
- Fix: Updated test templates to use
.fnattribute pattern for testing FastMCP decorated functions - Fix: Improved
component_exists()to properly handle subdirectory paths - Fix: Removed obsolete
_preview_prompt_utility.pyfrom template (YAML-based prompts removed) - Improvement: Generated resource tests now pass out of the box
- Improvement: Resource function signatures now include proper type hints and docstring Args sections
Version 0.1.6
- Feature: Added
fips-agents patchcommand for selective template updates without losing custom code - Feature: Resource subdirectory support - organize resources in hierarchies (e.g.,
country-profiles/japan) - Feature:
generate resourcenow supports subdirectory paths for better organization - Improvement: Recursive resource loading from subdirectories with automatic discovery
- Improvement: Patch command shows interactive diffs for files that may be customized
- Improvement: Template version tracking enables smart updates via
.template-infofile - Enhancement: Cleaned up redundant auto-discovery code from template
__init__.pyfiles
Version 0.1.5
- Feature: Added
.template-infofile to track CLI version and template commit hash in generated projects - Improvement: Implemented auto-discovery for tools/resources/prompts/middleware components, eliminating manual registration in
__init__.pyfiles - Improvement: Template components can now be added or removed by simply creating/deleting filesโno registry updates required
Version 0.1.4
- Fix: Fixed Containerfile in template to remove incorrect prompts/ copy line
- Fix: Fixed CLI to correctly update entry point script names for new projects
- Fix: Updated CLI to handle new multi-module template structure (core/, tools/, etc.)
- Fix: Updated fallback project name to match current template (fastmcp-unified-template)
- Improvement: Improved messaging when template uses multi-module structure
Version 0.1.3
- Improvement: Enhanced prompt creation to comply with FastMCP 2.9+ requirements
Version 0.1.2
- Documentation: Updated documentation and improved release management guidance
- Automation: Added
/create-releaseslash command for automated release workflow - Automation: Created
scripts/release.shfor streamlined version management and tagging - Documentation: Added
RELEASE_CHECKLIST.mdwith comprehensive release procedures
Version 0.1.1
- Added
fips-agents generatecommand group - Component generation: tools, resources, prompts, middleware
- Jinja2-based template rendering
- Parameter validation and JSON schema support
- Auto-run pytest on generated components
- Dry-run mode for previewing changes
- Comprehensive error handling and validation
Version 0.1.0 (MVP)
- Initial release
fips-agents create mcp-servercommand- Template cloning and customization
- Git repository initialization
- Comprehensive test suite
- Beautiful CLI output with Rich
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fips_agents_cli-0.7.0.tar.gz.
File metadata
- Download URL: fips_agents_cli-0.7.0.tar.gz
- Upload date:
- Size: 166.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99940ab7819bab289949d7f5bcd396df8032ea57d01322fc340df0edc3177320
|
|
| MD5 |
0db17525b59d446fdca2b2b2630fa7e4
|
|
| BLAKE2b-256 |
599ce8f213483a0fd409350208f389422e4b3a4acafa790ff842d5cb90158113
|
Provenance
The following attestation bundles were made for fips_agents_cli-0.7.0.tar.gz:
Publisher:
workflow.yaml on fips-agents/fips-agents-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fips_agents_cli-0.7.0.tar.gz -
Subject digest:
99940ab7819bab289949d7f5bcd396df8032ea57d01322fc340df0edc3177320 - Sigstore transparency entry: 1343717452
- Sigstore integration time:
-
Permalink:
fips-agents/fips-agents-cli@ee680c5ab1c60b478d1c2058ffc76e341b19a7c5 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/fips-agents
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@ee680c5ab1c60b478d1c2058ffc76e341b19a7c5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fips_agents_cli-0.7.0-py3-none-any.whl.
File metadata
- Download URL: fips_agents_cli-0.7.0-py3-none-any.whl
- Upload date:
- Size: 58.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cc528f60c41edbb062251f814c8a5df30b553adecdfc2b7551629bcd2b39bb4
|
|
| MD5 |
9e02559dd7c5638b3e3ad4c7b7562c6f
|
|
| BLAKE2b-256 |
1d9b39f7de7922fe63d3908512100888677de848b324e15813bccd6889ea1228
|
Provenance
The following attestation bundles were made for fips_agents_cli-0.7.0-py3-none-any.whl:
Publisher:
workflow.yaml on fips-agents/fips-agents-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fips_agents_cli-0.7.0-py3-none-any.whl -
Subject digest:
7cc528f60c41edbb062251f814c8a5df30b553adecdfc2b7551629bcd2b39bb4 - Sigstore transparency entry: 1343717460
- Sigstore integration time:
-
Permalink:
fips-agents/fips-agents-cli@ee680c5ab1c60b478d1c2058ffc76e341b19a7c5 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/fips-agents
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@ee680c5ab1c60b478d1c2058ffc76e341b19a7c5 -
Trigger Event:
push
-
Statement type: