Licensing and Limits
The MCP server enforces the same license tiering as the Terraback CLI — there is no separate "MCP tier." What changes between Community and Professional is a single limit on one tool.
The Community codify_batch cap
On the Community (free) tier, a single codify_batch call is capped at 25 total
resources, counted after tag_filters are applied and before exclude_managed is
applied. If the requested scope has more resources than that, the tool returns an
error and writes nothing to output_dir:
{
"error": "resource_cap_exceeded",
"total": 143,
"cap": 25,
"counts_by_type": {"aws_ec2": 40, "aws_ebs_volume": 103},
"hint": "..."
}
To proceed on the Community tier, narrow the request with types or tag_filters
until the total is under the cap, or call codify_resource once per resource instead.
The Professional tier removes the cap entirely — a single codify_batch call can
codify an unlimited number of resources.
Not capped, on any tier:
codify_resource— generates one resource at a time, so the cap does not apply.scan_infrastructure— read-only; scan as much of an account as you want on Community.detect_unmanaged,verify_plan,list_supported_resources— all read-only or local-only and uncapped.
Offline license activation
Terraback license keys activate offline, with no network call required at activation time:
terraback license activate <key>
The activate command auto-detects the offline key format and validates it locally.
Keys are Ed25519-signed and carry an expiry date plus a 14-day grace period after
expiry. An invalid or expired key does not fail the MCP server or the CLI — it
degrades gracefully to Community-tier behavior (including the codify_batch cap
above) rather than blocking usage.
Supplying the license to the MCP server process
Because MCP clients spawn the server as a subprocess with its own environment, make sure the license is visible to that process, either by:
- Setting the
TERRABACK_LICENSEenvironment variable in the MCP client's server config (theenvblock in.mcp.json), or - Activating the license once with
terraback license activate <key>, which persists it to~/.terraback/license.key— any process running as the same user picks it up automatically, including one launched by an MCP client.
{
"mcpServers": {
"terraback": {
"type": "stdio",
"command": "terraback",
"args": ["mcp"],
"env": {
"TERRABACK_LICENSE": "<your-license-key>"
}
}
}
}
No phone-home
License validation for the MCP server is local: Ed25519 signature verification against the key's embedded expiry, with no outbound network call. Combined with the local-first stdio posture, this means neither license checks nor tool calls send data off the machine running the server.
Related pages
- Tool Reference: the
codify_batchentry documents the exact cap-exceeded error shape. - Agent Workflow: step 4 describes how an agent should react to a capped response mid-loop.
- Security and Credentials: the broader local-first, no-telemetry posture the license model follows.