-
Notifications
You must be signed in to change notification settings - Fork 302
Moving engineering tools into src/tests format. #1058
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Maybe I don't know enough about .NET, but I had originally envisioned having the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a Tool Description Evaluator, a comprehensive testing and analysis tool that validates Azure MCP Server tool descriptions against user prompts using Azure OpenAI embeddings. The tool helps ensure proper tool selection by measuring semantic similarity between tool descriptions and test prompts using cosine similarity scoring.
Key Changes
- Added a complete ToolDescriptionEvaluator application with vector database implementation
- Implemented embedding service using Azure OpenAI's text-embedding-3-large model
- Created supporting infrastructure including PowerShell scripts for execution, prompt generation, and tools.json updates
- Added comprehensive documentation (README, Quickstart guide)
Reviewed Changes
Copilot reviewed 1 out of 24 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| eng/tools/src/ToolDescriptionEvaluator/Program.cs | Main application logic with command-line argument parsing, tool/prompt loading, vector database population, and analysis execution |
| eng/tools/src/ToolDescriptionEvaluator/VectorDb/VectorDB.cs | Vector database implementation with cosine similarity support and thread-safe operations |
| eng/tools/src/ToolDescriptionEvaluator/Services/EmbeddingService.cs | Azure OpenAI embedding service wrapper for generating text embeddings |
| eng/tools/src/ToolDescriptionEvaluator/Models/*.cs | Data models for tools, prompts, embeddings, and metrics |
| eng/tools/src/ToolDescriptionEvaluator/*.ps1 | PowerShell scripts for running evaluator, updating tools.json, and generating prompts |
| eng/tools/src/ToolDescriptionEvaluator/README.md | Comprehensive documentation covering usage modes, setup, and configuration |
| eng/tools/src/ToolDescriptionEvaluator/Quickstart.md | Quick start guide for new users |
| eng/tools/src/ToolDescriptionEvaluator/*.json | Example data files for tools, prompts, and namespace mappings |
| eng/tools/Tools.sln | Solution file for the Tools project |
|
The common "testable project" folder structure is: |
7fcd53a to
57a0980
Compare
|
Let's get @vcolin7 and @anannya03 to review this PR as the tool owner |
vcolin7
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@conniey and I talked about this yesterday on Teams and we landed on following the structure we use for all our other projects in the repo, having one /src directory per tool/server/utility
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think removing the results files is the right move. Would you mind adding them to our .gitignore or creating a new one for this directory?
What does this PR do?
GitHub issue number?
[Link to the GitHub issue this PR addresses]Pre-merge Checklist
servers/Azure.Mcp.Server/CHANGELOG.mdand/orservers/Fabric.Mcp.Server/CHANGELOG.mdfor product changes (features, bug fixes, UI/UX, updated dependencies)servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationeng/scripts/Process-PackageReadMe.ps1. See Package README/servers/Azure.Mcp.Server/docs/azmcp-commands.mdand/or/docs/fabric-commands.md.\eng\scripts\Update-AzCommandsMetadata.ps1to update tool metadata in azmcp-commands.md (required for CI)ToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test prompts/servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline