Repository navigation
feat(agents): Use Azure MCP azureterraform for Terraform lookup - #760
Merged
jonathan-vella merged 6 commits intoOct 13, 2026
Merged
Conversation
3.0.0 rejects unknown tool parameters, so align the three call sites that used names absent from the 3.0.0 schema (policy, applens, monitor log query), then move the pin in both configure-mcp.mjs and .vscode/mcp.json so the release check reports CURRENT. The 3.0.0 schema was checked against the published command reference; a live tools list was not possible in this environment.
Point the planner, Terraform CodeGen and the shared references at the Azure MCP azureterraform commands (avm versions, avm get, azurerm get, azapi get) for module versions, READMEs and provider docs, with the Registry API as fallback. The AVM module index and cache stay authoritative for module existence, lifecycle and resource-type mapping, and the validators are unchanged. Only a documented module-not-found for the exact module name counts as unpublished; any other lookup error is a verification failure. The tool output shapes were taken from the published 3.0.0 command reference and not yet probed at runtime.
The live 3.0.0 tools list no longer includes extension azqr unless azqr 3.0.0 or later is installed locally, while 2.0.5 listed it unconditionally. Document the prerequisite and the direct CLI fallback.
Probed against @azure/mcp 3.0.0: avm versions returns status 400 with an ArgumentException "not found in available modules" for an unpublished, nonexistent or malformed name; avm get returns 422 for an unknown version; and azurerm get returns 200 with empty arguments for an unknown resource type. Document these so agents only treat the first as "unpublished".
The 218-line AVM certification checklist targets authors of AVM modules, which APEX never writes; it only consumes them. Nothing but the skill's own table and index referenced it, and the public AVM specification remains the source. Keep the provider compatibility matrix, which the azureterraform tools cannot supply.
jonathan-vella
changed the base branch from
chore/bump-azure-mcp-3.0.0
to
test/azure-mcp-3-e2e
October 13, 2026 11:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Point the Terraform planner and CodeGen agents and the shared references at the Azure MCP
azureterraformcommands (
avm versions,avm get,azurerm get,azapi get) for module versions, READMEs and provider docs.The Registry API remains the fallback. The AVM module index, cache and validators are unchanged and stay
authoritative for module existence, lifecycle and resource-type mapping.
Depends on #759 (the
@azure/mcp3.0.0 pin). All four APEX PRs targettest/azure-mcp-3-e2e(notmain) for end-to-end testing; merge #759 first, because this branch includes its commits.Type of Change
Token / latency impact
05-iac-planner, which sits at its body cap)Changes Made
05-iac-planner.agent.md,06t-terraform-codegen.agent.md: MCP lookup with Registry fallbackapex-azure-defaults/references/avm-modules.md,terraform-conventions.md,apex-iac-common/references/avm-module-index.md,avm-version-freeze-gate.md,apex-terraform-patterns/SKILL.md,iac-terraform-best-practices.instructions.mdValidation
validate:agents,validate:agent-registry,build:explorer-graph,validate:explorer-graph,validate:skills,lint:mdand the post-write test pass@azure/mcp@3.0.0live:avm list(158 modules; fieldsmoduleName,description,source,repoUrl,moduleType; no lifecycle),avm versions(versions match the Terraform registry;avm-res-keyvault-vault0.12.0),avm get,azurerm get,azapi get.avm versionsreturnsstatus: 400,ArgumentException, "not found in available modules"(identical for a Proposed, nonexistent and malformed name). Documented as the only "unpublished" signal.
azurerm getreturns 200 with emptyargumentsfor an unknown type;avm geton an unknown version returns 422.apex-terraform-patterns/references/avm-authoring-requirements.md(218 lines of AVM-author certificationrules that APEX never uses; only the skill table referenced it).
avm-provider-compatibility.mdstays, since the toolsreturn READMEs, not module provider constraints.