Commit 7a997c3
feat: full azd extension framework adoption - metadata, gRPC MCP tools, security fixes (#15)
* feat: add gRPC service MCP tools for environments, deployments, and workflows
Expose azd gRPC services as MCP tools for AI agent integration:
- list_environments, get_environment_values, set_environment_value
- get_deployment_info, get_deployment_context
- list_subscriptions
- run_workflow, list_compose_resources
These tools enable AI agents to query and manage Azure environments,
deployments, and workflows through the azd extension framework.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* refactor: use azdext SDK for metadata and add tracing
- Replace non-conforming metadata schema with azdext.GenerateExtensionMetadata()
- Add distributed tracing via azdext.NewContext()
- Extract newRootCmd() for metadata command provider pattern
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: add rate limiting, fix secret leak and error returns in MCP tools
- Add azdextutil.RateLimiter to all gRPC MCP tool handlers
- Remove secret value from set_environment_value response
- Use mcp.NewToolResultError for error responses so AI agents detect failures
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: preserve cobra context chain, validate workflow steps
- Replace azdext.NewContext() with propagation.TraceContext{}.Extract()
on existing cobra context to preserve Ctrl+C signal handling
- Validate workflow step structure: reject non-object steps and steps
with no command arguments instead of silently skipping them
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: nil check on deployment response, coerce workflow args
- Add nil check for resp.Deployment to prevent panic
- Convert non-string workflow step args with fmt.Sprint instead of dropping
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: reject null workflow step arguments
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: update azd-core to latest (CI-compatible pseudo-version)
Pin go.mod to azd-core v0.5.2-0.20260223042348-df3319c65059 which includes
lint fixes, macOS symlink test fix, and gofmt formatting.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: resolve lint errors (errcheck, gofmt)
- Check error return of fmt.Fprintln in metadata command
- Fix gofmt formatting (CRLF -> LF line endings)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: resolve remaining lint (errcheck, unlambda, gofmt)
- Use t.Setenv in tests instead of unchecked os.Setenv
- Simplify lambda wrappers (gocritic unlambda)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: add azdext/traceparent terms to cspell dictionary
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: pin azd-core to tagged v0.5.2 release
Replace pseudo-version with official tagged release.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: add working-directory: cli to pr-build workflow
The PR Build workflow was failing because extension.yaml is at cli/extension.yaml
but the workflow was looking for it at the repo root. Added defaults.run.working-directory: cli
(matching the CI workflow) and fixed the instructions.md path in the github-script step.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 462142f commit 7a997c3
File tree
8 files changed
+491
-223
lines changed- .github/workflows
- cli
- src/cmd/copilot
- commands
8 files changed
+491
-223
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
319 | 319 | | |
320 | 320 | | |
321 | 321 | | |
322 | | - | |
| 322 | + | |
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
79 | | - | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
116 | | - | |
| 115 | + | |
| 116 | + | |
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
84 | 87 | | |
85 | 88 | | |
86 | 89 | | |
| |||
0 commit comments