Add support for vally - #3163
Open
Connie Yau (conniey) wants to merge 17 commits into
Open
Conversation
Connie Yau (conniey)
requested review from
a team and
Jonathan Cárdenas (JonathanCrd)
as code owners
July 27, 2026 20:02
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds first-class support for running vally evaluations against Azure MCP tools by introducing a Vally evaluation generator (based on e2eTestPrompts.md + build_info.json), wiring it into a new GitHub Actions workflow, and documenting how contributors author/run eval specs.
Changes:
- Introduces
eng/tools/VallyEvaluatorto generateeval.yamlspecs per tool namespace and supporting YAML/JSON serialization models. - Adds a PR-triggered GitHub Actions workflow to build the server, generate evals, run
vally eval, and publishvally-resultsartifacts. - Adds contributor documentation and baseline configuration (
.vally.yaml) plus an initial AppConfig eval spec.
Reviewed changes
Copilot reviewed 38 out of 39 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/Azure.Mcp.Tools.AppConfig/tests/eval.yaml | Adds initial vally eval spec for App Configuration prompts. |
| eng/tools/VallyEvaluator/tests/VallyUtilitiesTests.cs | Adds unit test coverage for placeholder replacement utility. |
| eng/tools/VallyEvaluator/tests/VallyEvaluator.Tests.csproj | New test project for VallyEvaluator utilities. |
| eng/tools/VallyEvaluator/src/VallyYamlStaticContext.cs | YAML static context registration for source-generated YAML serialization. |
| eng/tools/VallyEvaluator/src/VallyUtilities.cs | Implements YAML serialization and eval spec generation helpers. |
| eng/tools/VallyEvaluator/src/VallyJsonContext.cs | Source-gen JSON context for reading build info metadata. |
| eng/tools/VallyEvaluator/src/VallyEvaluator.csproj | New VallyEvaluator tool project + dependencies. |
| eng/tools/VallyEvaluator/src/RunConfiguration.cs | Adds configuration model for the evaluator tool CLI binding. |
| eng/tools/VallyEvaluator/src/Resources/eval.template.yaml | Provides a starter YAML template for eval specs. |
| eng/tools/VallyEvaluator/src/Resources/eval.instructions.md | Adds vally-run instructions injected into AGENTS.md during workflow. |
| eng/tools/VallyEvaluator/src/Properties/launchSettings.json | Adds launch profiles for running the evaluator locally. |
| eng/tools/VallyEvaluator/src/Program.cs | Implements CLI entrypoint to generate per-namespace eval specs. |
| eng/tools/VallyEvaluator/src/Models/StimulusGraderConfig.cs | Adds models for vally grader config serialization. |
| eng/tools/VallyEvaluator/src/Models/Stimulus.cs | Adds model for vally stimulus entries. |
| eng/tools/VallyEvaluator/src/Models/Evaluation.cs | Adds model for vally evaluation spec root object. |
| eng/tools/VallyEvaluator/src/Models/BuildInfoModels.cs | Adds models matching build_info.json structure. |
| eng/tools/VallyEvaluator/src/BuildInfo.cs | Adds build-info loader using source-generated JSON context. |
| eng/tools/Tools.sln | Adds new tool projects to the tools solution and updates VS metadata. |
| eng/tools/McpToolEvaluator.Core/tests/PromptParserTests.cs | Updates test namespace to match the new core evaluator library. |
| eng/tools/McpToolEvaluator.Core/tests/McpToolEvaluator.Core.Tests.csproj | New test project for prompt parsing/datastore. |
| eng/tools/McpToolEvaluator.Core/src/Utilities.cs | Adds repo-root discovery utility for tools. |
| eng/tools/McpToolEvaluator.Core/src/PromptParser.cs | Moves/renames prompt parsing into shared core library and makes it public. |
| eng/tools/McpToolEvaluator.Core/src/PromptDatastore.cs | Adds prompt datastore grouping prompts by namespace. |
| eng/tools/McpToolEvaluator.Core/src/Models/TestPrompt.cs | Introduces shared TestPrompt model for evaluators/testers. |
| eng/tools/McpToolEvaluator.Core/src/McpToolEvaluator.Core.csproj | New shared evaluator core library project. |
| eng/tools/CopilotCliTester/src/Program.cs | Updates CopilotCliTester to use the new shared evaluator core types. |
| eng/tools/CopilotCliTester/src/Models/TestPrompt.cs | Removes now-duplicated local TestPrompt model. |
| eng/tools/CopilotCliTester/src/Models/JsonContext.cs | Updates JSON source-gen context to reference shared TestPrompt. |
| eng/tools/CopilotCliTester/src/CopilotCliTester.csproj | Adds project reference to shared evaluator core library. |
| eng/scripts/Invoke-VallyEvalTests.ps1 | Adds script to run vally evals using build_info + generated evals. |
| docs/testing-with-vally.md | Adds contributor doc for authoring and running vally evaluations. |
| Directory.Packages.props | Adds central package versions needed by VallyEvaluator (binder/commandline + YAML generator/analyzers). |
| CONTRIBUTING.md | Links new vally testing documentation from contributing guide. |
| AGENTS.md | Adds guidance about vally runs (assume az login, avoid subscription_list). |
| .vally.yaml | Adds repo-level vally configuration for environments and suites. |
| .gitignore | Ignores .vscode/ and vally-results/ output. |
| .github/workflows/vally-eval.yml | Adds workflow to generate and run vally evals on tool PR changes and upload artifacts. |
| .github/aw/actions-lock.json | Updates gh-aw firewall container pins and adds GitHub MCP server image pin. |
| .github/agents/agentic-workflows.agent.md | Updates referenced gh-aw documentation links to newer version. |
Comments suppressed due to low confidence (1)
.vally.yaml:27
- The suite entries for generated evals reference
.work/evals/..., but the evaluator + workflow place them under.work/vally/evals/.... As written,vally suite basicwon’t include the generated evals.
evals:
- ".work/evals/appconfig/"
- ".work/evals/storage/"
- ".work/evals/keyvault/"
This was referenced Jul 28, 2026
Vinay Gera (g2vinay)
approved these changes
Jul 31, 2026
vcolin7
reviewed
Aug 3, 2026
Connie Yau (conniey)
force-pushed
the
conniey/vally-experiment
branch
3 times, most recently
from
August 7, 2026 21:54
535e3fe to
bcdfafe
Compare
Larry Osterman (LarryOsterman)
approved these changes
Aug 10, 2026
Connie Yau (conniey)
force-pushed
the
conniey/vally-experiment
branch
from
August 10, 2026 19:16
e128655 to
8a5307b
Compare
Larry Osterman (LarryOsterman)
approved these changes
Aug 10, 2026
- Update agentic-workflow components - Add initial template for pr-vally-eval - Fix namespace in PromptDataStore - Update launchSettings in VallyEvaluator
Connie Yau (conniey)
force-pushed
the
conniey/vally-experiment
branch
from
August 10, 2026 22:09
c3b6e15 to
aa543f0
Compare
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.
What does this PR do?
GitHub issue number?
Fixes #2848
Pre-merge Checklist
servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationREADME.mdchanges running the script./eng/scripts/Process-PackageReadMe.ps1. See Package READMEToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test promptsconsolidated-tools.jsonbreaking-changelabelservers/Azure.Mcp.Server/docs/azmcp-commands.md./eng/scripts/Update-AzCommandsMetadata.ps1to update tool metadata inazmcp-commands.md(required for CI)servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline