MCP server and AI coding skills for the Infrastructure-as-code (IaC) platform formae. Provides 15 MCP tools for querying and managing cloud infrastructure, plus 12 skills that teach your AI coding assistant how to perform common infrastructure workflows through formae.
- Go 1.25+
- A running formae agent (
formae agent start)
Register the marketplace:
/plugin marketplace add platform-engineering-labs/formae-marketplace
Install the plugin:
/plugin install formae-mcp@formae-marketplace
Restart Claude Code for the plugin to take effect. The MCP server binary is built automatically on first use.
Verify by asking Claude to run /formae-status.
If you prefer not to use the marketplace:
-
Clone the repo:
git clone https://github.com/platform-engineering-labs/formae-mcp.git ~/.claude/plugins/formae-mcp -
Start Claude Code with the plugin directory:
claude --plugin-dir ~/.claude/plugins/formae-mcp
The MCP server binary is built automatically on first use.
See .codex/INSTALL.md for Codex-specific installation instructions.
See .opencode/INSTALL.md for OpenCode-specific installation instructions.
| Skill | Description |
|---|---|
formae-status |
Check running commands, deployment progress, recent operations, and failures |
formae-stacks |
View infrastructure stacks, organization, and resource counts |
formae-resources |
Query deployed resources by type, stack, label, or management status |
formae-targets |
List cloud targets, configured regions, and provider accounts |
formae-plugins |
List installed plugins, supported providers, and resource types |
formae-apply |
Deploy infrastructure by applying a forma file or reconciling a stack |
formae-patch |
Make targeted infrastructure changes without a full reconcile |
formae-destroy |
Tear down infrastructure resources, stacks, or environments |
formae-fix-code-drift |
Check for out-of-band changes and decide whether to absorb or overwrite |
formae-discover |
Find unmanaged resources in cloud accounts |
formae-import |
Bring unmanaged/discovered resources under formae management |
formae-plugin-new |
Scaffold a new formae resource plugin |
formae-plugin-add-resource |
Add a new resource type to an existing plugin |
| Tool | Description |
|---|---|
list_resources |
Query resources with optional filters |
list_stacks |
Retrieve all stacks |
list_targets |
Query configured cloud targets |
get_command_status |
Get status of a specific command |
list_commands |
List commands with optional query and filters |
get_agent_stats |
Retrieve agent statistics |
check_health |
Health check for the formae agent |
list_plugins |
List active plugins |
list_changes_since_last_reconcile |
List infrastructure changes since last reconcile |
extract_resources |
Extract resources as PKL code |
| Tool | Description |
|---|---|
apply_forma |
Deploy or update infrastructure (reconcile or patch mode) |
destroy_forma |
Remove infrastructure by file or query |
cancel_commands |
Cancel running commands |
force_sync |
Trigger immediate resource synchronization |
force_discover |
Trigger immediate resource discovery |
By default, formae-mcp connects to the formae agent at http://localhost:49684. To override this:
Environment variables (highest precedence):
export FORMAE_AGENT_URL=http://my-agent-host
export FORMAE_AGENT_PORT=8080Config file (~/.config/formae/formae.conf.pkl):
amends "formae:/Config.pkl"
cli {
api {
url = "http://my-agent-host"
port = 8080
}
}Precedence: environment variables > config file > defaults.