Skip to main content
The formae MCP plugin has been renamed from formae-mcp to formae. If you installed formae-mcp, uninstall it and install formae before continuing. Follow the migration steps.
formae ships an MCP server and a set of skills that teach AI coding assistants how to manage infrastructure. Once connected, you can deploy, query, and change cloud resources through natural conversation.
Release notes for the MCP server live in its CHANGELOG in the formae-mcp repository, not in these docs.

What you get

  • MCP tools that give your assistant access to inventory, command history, schema information, simulation and deployment.
  • Skills that guide stack design, Pkl authoring, resolution of out-of-band changes, and maintaining a source project when you choose to have one.
Both pieces matter. The tools are the API access; the skills are the workflows that use them safely (simulate before applying, confirm before destroying). A client with skills but no MCP server registered will fail on every tool call.

Prerequisites

  • git and curl
  • A running formae agent (formae agent start) and a formae profile pointing at it
You do not need a Go toolchain. The MCP server and a matched formae binary are downloaded as prebuilt artifacts into ~/.formae-ai/opt on first launch. Nothing is compiled on your machine.

Migrate from formae-mcp

If you previously installed the plugin as formae-mcp, uninstall that entry and install formae. Use the marketplace where you installed the old plugin if it has a different name from formae-marketplace.
Run /reload-plugins, or restart Claude Code if your version does not support it.
Check your assistant’s installed plugins or MCP servers: formae should be present and the old formae-mcp entry should be gone. Then ask your assistant to check formae status. The source repository is still named formae-mcp; GitHub URLs using that name remain correct.

Install

Claude Code has first-class support through the plugin marketplace. The MCP server is registered for you, and on first use it downloads a prebuilt server and a matched formae binary into ~/.formae-ai/opt.Register the marketplace:
Install the plugin:
Run /reload-plugins (Claude Code v2.1.116+) to apply without restarting. On older versions, restart Claude Code.Verify: ask Claude to run /formae-status. You should get live agent status back, not an error.

Configuration

By default the MCP server connects to the formae agent at http://localhost:49684. To point it somewhere else, or to work with more than one environment, use profiles (requires formae >= 0.87.0). The server reads the agent endpoint from your active profile, or from the profile named by a tool’s profile argument. Profiles live at ~/.config/formae/profiles/<name>.pkl and are managed with formae profile:

Targeting a specific environment

If you manage several formae environments as named profiles, every tool that talks to an agent accepts an optional profile argument. That targets one environment for a single call without changing which profile is active. Your assistant prefers this per-command targeting over switching the active profile, because the active profile is shared with your formae command line and any other assistant sessions. Ask it to “check out-of-band changes in staging” or “apply to prod” and it targets that environment per command. Switching your default happens only when you explicitly ask.

Choose whether to maintain a codebase

Hosted users can start without a local IaC project. Describe the infrastructure change you want; your assistant authors temporary Pkl from the complete stack’s recorded desired state, simulates it, and asks you to confirm the plan. Pkl remains the schema-checked interface even when you do not keep it on disk. To opt in later, say:
I want to manage my infrastructure in an IaC codebase.
The assistant initializes a project and extracts the managed stacks you select, or uses an existing project. It remembers registered projects locally, separately from connection profiles. Each operation selects a project context for the installation; if several projects could match, it asks which one to use. It does not switch every session to one global active codebase. When working in a project, the assistant keeps that selected project’s source current after shared resolution of out-of-band changes. Without one, the decision is still stored centrally and available to the next session. See Ways to work.

Example workflows

“I want to deploy a vLLM server on my Kubernetes cluster with formae”
Starting from your description, the assistant finds suitable schemas and examples, helps you group resources into stacks, authors Pkl, and shows a simulation before applying. Hosted users do not need to choose a project directory first. If a maintained project is selected, it works there.
“Apply my VPC forma file at infra/vpc.pkl”
The assistant simulates the deployment first, shows you what will be created, asks for confirmation, then applies.
“Has anything changed in my production stack since the last reconcile?”
The assistant queries formae and presents the stack changes that require an absorb or revert decision. A local codebase is not required.
“Keep the replica change in production and revert the bucket change”
The assistant simulates the combined resolution, asks for confirmation, and records a reconcile in formae. It then updates the selected project if you maintain one. Other sessions can retrieve the accepted intent directly.
“Build a Cloudflare plugin for formae”
The assistant researches the Cloudflare API, suggests resource types organized in implementation waves, scaffolds the plugin, and works through each CRUD operation with tests, following the plugin SDK tutorial.

Available skills

Skills are workflows your assistant follows when you ask for an infrastructure task. They enforce safe practices like simulating before applying and confirming before destructive operations.

Available MCP tools

Read-only

Mutation

Local authoring context

These tools select and prepare local source without changing cloud resources. A profile chooses the formae installation; a codebase context chooses where the assistant maintains source for the current operation. The assistant retains temporary authoring files through simulation, submission and retry inspection, then removes them after the outcome is known or an unsent preview is abandoned. An interrupted session can leave those files behind; they are not registered as a maintained project.

Profiles

Requires formae >= 0.87.0. Manage named formae environments (endpoint + targets) from your assistant.