Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 31 additions & 38 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -16,186 +16,179 @@
##################
# Catch all
##################
* @Azure/azure-mcp
* @microsoft/azure-mcp

##################
# Eng Sys
##################
/eng/ @Azure/azure-mcp @Azure/azure-sdk-eng
/.github/ @Azure/azure-mcp @Azure/azure-sdk-eng
/.config/ @Azure/azure-mcp @Azure/azure-sdk-eng
/eng/ @microsoft/azure-mcp @microsoft/azure-sdk-eng
/.github/ @microsoft/azure-mcp @microsoft/azure-sdk-eng
/.config/ @microsoft/azure-mcp @microsoft/azure-sdk-eng

##################
# Services
##################
# PRLabel: %area-AKS
/areas/aks/ @jongio @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Aks/ @jongio @microsoft/azure-mcp

# ServiceLabel: %area-AKS
# ServiceOwners: @jongio


# PRLabel: %area-AppConfig
/areas/appconfig/ @JonathanCrd @conniey @Azure/azure-mcp
/tools/Azure.Mcp.Tools.AppConfig/ @JonathanCrd @conniey @microsoft/azure-mcp

# ServiceLabel: %area-AppConfig
# ServiceOwners: @shenmuxiaosen @avanigupta


# PRLabel: %area-ACR
/areas/acr/ @jongio @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Acr/ @jongio @microsoft/azure-mcp

# ServiceLabel: %area-ACR
# ServiceOwners: @jongio


# PRLabel: %area-BestPractices
/areas/azurebestpractices/ @g2vinay @conniey @Azure/azure-mcp
/tools/Azure.Mcp.Tools.AzureBestPractices/ @g2vinay @conniey @microsoft/azure-mcp

# ServiceLabel: %area-BestPractices
# ServiceOwners: @g2vinay @conniey

# PRLabel: %area-CloudArchitect
/areas/cloudarchitect/ @msalaman @Azure/azure-mcp
/tools/Azure.Mcp.Tools.CloudArchitect/ @msalaman @microsoft/azure-mcp

# ServiceLabel: %area-CloudArchitect
# ServiceOwners: @msalaman

# PRLabel: %area-CosmosDB
/areas/cosmos/ @sajeetharan @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Cosmos/ @sajeetharan @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-CosmosDB
# ServiceOwners: @sajeetharan @xiangyan99


# PRLabel: %area-Azd
/areas/extension/ @wbreza @jongio @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Extension/ @wbreza @jongio @microsoft/azure-mcp

# ServiceLabel: %area-Azd
# ServiceOwners: @wbreza @jongio


# PRLabel: %area-ARM
/areas/group/ @ArthurMa1978 @jongio @Azure/azure-mcp

# ServiceLabel: %area-ARM
# ServiceOwners: @ArthurMa1978

# PRLabel: %area-Foundry
/areas/foundry/ @jayzzh @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Foundry/ @jayzzh @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-Foundry
# ServiceOwners: @jayzzh @xiangyan99

# PRLabel: %area-FunctionApp
/areas/functionapp/ @jongio @Azure/azure-mcp
/tools/Azure.Mcp.Tools.FunctionApp/ @jongio @microsoft/azure-mcp

# ServiceLabel: %area-FunctionApp
# ServiceOwners: @jongio

# PRLabel: %area-Grafana
/areas/grafana/ @weng5e @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Grafana/ @weng5e @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-Grafana
# ServiceOwners: @weng5e @xiangyan99

# PRLabel: %area-KeyVault
/areas/keyvault/ @vcolin7 @JonathanCrd @Azure/azure-mcp
/tools/Azure.Mcp.Tools.KeyVault/ @vcolin7 @JonathanCrd @microsoft/azure-mcp

# ServiceLabel: %area-KeyVault
# ServiceOwners: @vcolin7 @JonathanCrd

# PRLabel: %area-ISV
/areas/azureisv/ @jayanthjj @pachaturevedi
/tools/Azure.Mcp.Tools.AzureIsv/ @jayanthjj @pachaturevedi

# ServiceLabel: %area-ISV
# ServiceOwners: @jayanthjj @pachaturevedi

# PRLabel: %area-Kusto
/areas/kusto/ @danield137 @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Kusto/ @danield137 @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-Kusto
# ServiceOwners: @danield137


# PRLabel: %area-Marketplace
/areas/marketplace/ @meirloichter @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Marketplace/ @meirloichter @microsoft/azure-mcp

# ServiceLabel: %area-Marketplace
# ServiceOwners: @meirloichter


# PRLabel: %area-Monitor
/areas/monitor/ @smritiy @srnagar @jongio @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Monitor/ @smritiy @srnagar @jongio @microsoft/azure-mcp

# ServiceLabel: %area-Monitor
# ServiceOwners: @smritiy @srnagar @jongio

# PRLabel: %area-AzureManagedLustre
/areas/azuremanagedlustre/ @wolfgang-desalvador
/tools/Azure.Mcp.Tools.AzureManagedLustre/ @wolfgang-desalvador
# ServiceLabel: %area-AzureManagedLustre
# ServiceOwners: @wolfgang-desalvador

# PRLabel: %area-MySQL
/areas/mysql/ @ramnov @mattkohnms @Azure/azure-mcp
/tools/Azure.Mcp.Tools.MySql/ @ramnov @mattkohnms @microsoft/azure-mcp

# ServiceLabel: %area-MySQL
# ServiceOwners: @ramnov @mattkohnms


# PRLabel: %area-Postgres
/areas/postgres/ @kk-src @shreyaaithal @maxluk @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Postgres/ @kk-src @shreyaaithal @maxluk @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-Postgres
# ServiceOwners: @kk-src @shreyaaithal @maxluk


# PRLabel: %area-Search
/areas/search/ @pablocastro @jongio @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Search/ @pablocastro @jongio @microsoft/azure-mcp

# ServiceLabel: %area-Search
# ServiceOwners: @pablocastro


# PRLabel: %area-ServiceBus
/areas/servicebus/ @anuchandy @conniey @Azure/azure-mcp
/tools/Azure.Mcp.Tools.ServiceBus/ @anuchandy @conniey @microsoft/azure-mcp

# ServiceLabel: %area-ServiceBus
# ServiceOwners: @shankarsama @EldertGrootenboer

# PRLabel: %area-Redis
/areas/redis/ @philon-msft @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Redis/ @philon-msft @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-Redis
# ServiceOwners: @philon-msft @carldc

# PRLabel: %area-Storage
/areas/storage/ @alzimmermsft @jongio @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Storage/ @alzimmermsft @jongio @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-Storage
# ServiceOwners: @alzimmermsft @jongio

# PRLabel: %area-Authorization
/areas/authorization/ @vurhanau @jongio @xiangyan99 @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Authorization/ @vurhanau @jongio @xiangyan99 @microsoft/azure-mcp

# ServiceLabel: %area-Authorization
# ServiceOwners: @vurhanau

# PRLabel: %area-Deploy
/src/Areas/Deploy/ @qianwens @xiaofanzhou @Azure/azure-mcp
/src/Areas/Quota/ @qianwens @xiaofanzhou @Azure/azure-mcp
/tools/Azure.Mcp.Tools.Deploy/ @qianwens @xiaofanzhou @microsoft/azure-mcp
/tools/Azure.Mcp.Tools.Quota/ @qianwens @xiaofanzhou @microsoft/azure-mcp

# ServiceLabel: %area-Deploy
# ServiceOwners: @qianwens @xiaofanzhou

# PRLabel: %area-LoadTesting
/areas/loadtesting/ @nishtha489 @knarayanana @krchanda @johnsta @Azure/azure-mcp
/tools/Azure.Mcp.Tools.LoadTesting/ @nishtha489 @knarayanana @krchanda @johnsta @microsoft/azure-mcp

# ServiceLabel: %area-LoadTesting
# ServiceOwners: @nishtha489 @knarayanana @krchanda @johnsta

# PRLabel: %area-VirtualDesktop
/areas/VirtualDesktop/ @vladimisms @Azure/azure-mcp
/tools/Azure.Mcp.Tools.VirtualDesktop/ @vladimisms @microsoft/azure-mcp

# ServiceLabel: %area-VirtualDesktop
# ServiceOwners: @vladimisms
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
## Pre-merge Checklist

- [ ] Required for All PRs
- [ ] **Read [contribution guidelines](https://github.com/Azure/azure-mcp/blob/main/CONTRIBUTING.md)**
- [ ] **Read [contribution guidelines](https://github.com/microsoft/mcp/blob/main/CONTRIBUTING.md)**
- [ ] PR title clearly describes the change
- [ ] Commit history is clean with descriptive messages ([cleanup guide](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md))
- [ ] Added comprehensive tests for new/modified functionality
Expand All @@ -20,7 +20,7 @@
- [ ] Updated `README.md` documentation
- [ ] Updated command list in `/docs/azmcp-commands.md`
- [ ] Updated test prompts in `/docs/e2eTestPrompts.md`
- [ ] For new or modified tool descriptions, ran [`ToolDescriptionEvaluator`](https://github.com/Azure/azure-mcp/blob/main/eng/tools/ToolDescriptionEvaluator/Quickstart.md) and obtained a score of `0.4` or more and a top 3 ranking for all related test prompts
- [ ] For new or modified tool descriptions, ran [`ToolDescriptionEvaluator`](https://github.com/microsoft/mcp/blob/main/eng/tools/ToolDescriptionEvaluator/Quickstart.md) and obtained a score of `0.4` or more and a top 3 ranking for all related test prompts
- [ ] 👉 For Community (non-Azure team member) PRs:
- [ ] **Security review**: Reviewed code for security vulnerabilities, malicious code, or suspicious activities before running tests (`crypto mining, spam, data exfiltration, etc.`)
- [ ] **Manual tests run**: added comment `/azp run azure - mcp` to run *Live Test Pipeline*
4 changes: 2 additions & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
## Pull Request Guidelines

- Ensure all tests pass
- Follow the [contribution guidelines](https://github.com/Azure/azure-mcp/blob/main/CONTRIBUTING.md)
- Follow the [contribution guidelines](https://github.com/microsoft/mcp/blob/main/CONTRIBUTING.md)
- Include appropriate documentation
- Include tests that cover your changes
- Update CHANGELOG.md with your changes
- Run `.\eng\common\spelling\Invoke-Cspell.ps1`
- Run `.\eng\common\spelling\Invoke-Cspell.ps1`
7 changes: 7 additions & 0 deletions .vscode/cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@
"accesspolicy",
"acaenvironment",
"ADMINPROVIDER",
"agentic",
"aisearch",
"akscluster",
"aksservice",
Expand Down Expand Up @@ -302,9 +303,11 @@
"dataplane",
"datasource",
"datasources",
"dataverse",
"dbforpostgresql",
"deallocate",
"DEBUGTELEMETRY",
"devbox",
"devcontainers",
"discoverability",
"Distributedtask",
Expand All @@ -320,6 +323,7 @@
"esrp",
"ESRPRELPACMANTEST",
"eventgrid",
"eventhouse",
"exfiltration",
"fabricmcp",
"facetable",
Expand All @@ -338,6 +342,7 @@
"Gsamas",
"GZRS",
"healthmodels",
"heatmaps",
"hnsw",
"hostings",
"hostpool",
Expand Down Expand Up @@ -376,10 +381,12 @@
"MACPOOL",
"MACVMIMAGE",
"malaysiawest",
"markitdown",
"mcptmp",
"mexicocentral",
"midsole",
"Microbundle",
"microsoftdocs",
"monitoredresources",
"msal",
"MSRP",
Expand Down
36 changes: 18 additions & 18 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Contributing to Azure MCP
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jongio @joshfree Should this move into the Azure.Mcp.Server directory?


There are many ways to contribute to the Azure MCP project: reporting bugs, submitting pull requests, and creating suggestions.
After cloning and building the repo, check out the [GitHub project](https://github.com/orgs/Azure/projects/812/views/13) and [issues list](https://github.com/Azure/azure-mcp/issues). Issues labeled [help wanted](https://github.com/Azure/azure-mcp/labels/help%20wanted) are good issues to submit a PR for. Issues labeled [good first issue](https://github.com/Azure/azure-mcp/labels/good%20first%20issue) are great candidates to pick up if you are in the code for the first time.
After cloning and building the repo, check out the [GitHub project](https://github.com/orgs/Azure/projects/812/views/13) and [issues list](https://github.com/microsoft/mcp/issues). Issues labeled [help wanted](https://github.com/microsoft/mcp/labels/help%20wanted) are good issues to submit a PR for. Issues labeled [good first issue](https://github.com/microsoft/mcp/labels/good%20first%20issue) are great candidates to pick up if you are in the code for the first time.

>[!IMPORTANT]
If you are contributing significant changes, or if the issue is already assigned to a specific milestone, please discuss with the assignee of the issue first before starting to work on the issue.
Expand Down Expand Up @@ -104,14 +104,14 @@ The project is organized as follows:
### Adding a New Command

> **⚠️ Important: Submit One Tool Per Pull Request**
>
>
> We strongly recommend submitting **one tool per pull request** to streamline the review process and provide better onboarding experience. This approach results in:
>
>
> - **Faster reviews**: Single tools are easier and quicker to review
> - **Better feedback**: More focused discussions on individual tool implementation
> - **Better feedback**: More focused discussions on individual tool implementation
> - **Easier iteration**: Smaller changes mean faster iteration cycles
> - **Incremental progress**: Get your first tool merged to establish baseline, then build upon it
>
>
> If you're planning to contribute multiple tools, please:
> 1. Submit your most important or representative tool as your first PR to establish the code patterns.
> 2. Use that baseline to inform your subsequent tool PRs.
Expand All @@ -130,21 +130,21 @@ The project is organized as follows:
"create [namespace] [resource] [operation] command using #new-command.md as a reference"
```

4. **Follow implementation guidelines** in [docs/new-command.md](https://github.com/Azure/azure-mcp/blob/main/docs/new-command.md)
4. **Follow implementation guidelines** in [docs/new-command.md](https://github.com/microsoft/mcp/blob/main/docs/new-command.md)

5. **Update documentation**:
- Add the new command to [/docs/azmcp-commands.md](https://github.com/Azure/azure-mcp/blob/main/docs/azmcp-commands.md)
- Add test prompts for the new command in [/docs/e2eTestPrompts.md](https://github.com/Azure/azure-mcp/blob/main/docs/e2eTestPrompts.md)
- Update [README.md](https://github.com/Azure/azure-mcp/blob/main/README.md) to mention the new command
- Add the new command to [/docs/azmcp-commands.md](https://github.com/microsoft/mcp/blob/main/docs/azmcp-commands.md)
- Add test prompts for the new command in [/docs/e2eTestPrompts.md](https://github.com/microsoft/mcp/blob/main/docs/e2eTestPrompts.md)
- Update [README.md](https://github.com/microsoft/mcp/blob/main/README.md) to mention the new command

6. **Add CODEOWNERS entry** in [CODEOWNERS](https://github.com/Azure/azure-mcp/blob/main/.github/CODEOWNERS) [(example)](https://github.com/Azure/azure-mcp/commit/08f73efe826d5d47c0f93be5ed9e614740e82091)
6. **Add CODEOWNERS entry** in [CODEOWNERS](https://github.com/microsoft/mcp/blob/main/.github/CODEOWNERS) [(example)](https://github.com/microsoft/mcp/commit/08f73efe826d5d47c0f93be5ed9e614740e82091)

7. **Create Pull Request**:
- Reference the issue you created
- Include tests in the `/tests` folder
- Ensure all tests pass
- Follow code style requirements
- Run [`ToolDescriptionEvaluator`](https://github.com/Azure/azure-mcp/blob/main/eng/tools/ToolDescriptionEvaluator/Quickstart.md) for the new tool description and obtain a score of `0.4` or more and a top 3 ranking for all related test prompts
- Run [`ToolDescriptionEvaluator`](https://github.com/microsoft/mcp/blob/main/eng/tools/ToolDescriptionEvaluator/Quickstart.md) for the new tool description and obtain a score of `0.4` or more and a top 3 ranking for all related test prompts

## Testing

Expand Down Expand Up @@ -396,8 +396,8 @@ This section assumes that the necessary Azure resources for live tests are alrea
To debug the Azure MCP Server (`azmcp`) when running live tests in VS Code:

1. Build the package with debug symbols: `./eng/scripts/Build-Local.ps1 -DebugBuild`
2. Set a breakpoint in a command file (e.g., [`KeyValueListCommand.ExecuteAsync`](https://github.com/Azure/azure-mcp/blob/4ed650a0507921273acc7b382a79049809ef39c1/src/Commands/AppConfig/KeyValue/KeyValueListCommand.cs#L48))
3. In VS Code, navigate to a test method (e.g., [`AppConfigCommandTests::Should_list_appconfig_kvs()`](https://github.com/Azure/azure-mcp/blob/4ed650a0507921273acc7b382a79049809ef39c1/tests/Client/AppConfigCommandTests.cs#L56)), add a breakpoint to `CallToolAsync` call in the test method, then right-click and select **Debug Test**
2. Set a breakpoint in a command file (e.g., [`KeyValueListCommand.ExecuteAsync`](https://github.com/microsoft/mcp/blob/4ed650a0507921273acc7b382a79049809ef39c1/src/Commands/AppConfig/KeyValue/KeyValueListCommand.cs#L48))
3. In VS Code, navigate to a test method (e.g., [`AppConfigCommandTests::Should_list_appconfig_kvs()`](https://github.com/microsoft/mcp/blob/4ed650a0507921273acc7b382a79049809ef39c1/tests/Client/AppConfigCommandTests.cs#L56)), add a breakpoint to `CallToolAsync` call in the test method, then right-click and select **Debug Test**
4. Find the `azmcp` process ID:

```shell
Expand Down Expand Up @@ -590,18 +590,18 @@ Instructions for consuming the package from the dev feed can be found in the "Ex

## Support and Community

Please see our [support](https://github.com/Azure/azure-mcp/blob/main/SUPPORT.md) statement.
Please see our [support](https://github.com/microsoft/mcp/blob/main/SUPPORT.md) statement.

### Questions and Support

We're building this in the open. Your feedback is much appreciated, and will help us shape the future of the Azure MCP server.

👉 [Open an issue in the public repository](https://github.com/Azure/azure-mcp/issues/new/choose).
👉 [Open an issue in the public repository](https://github.com/microsoft/mcp/issues/new/choose).

### Additional Resources

- [Azure MCP Documentation](https://github.com/Azure/azure-mcp/blob/main/README.md)
- [Command Implementation Guide](https://github.com/Azure/azure-mcp/blob/main/docs/new-command.md)
- [Azure MCP Documentation](https://github.com/microsoft/mcp/blob/main/README.md)
- [Command Implementation Guide](https://github.com/microsoft/mcp/blob/main/docs/new-command.md)
- [VS Code Insiders Download](https://code.visualstudio.com/insiders/)
- [GitHub Copilot Documentation](https://docs.github.com/en/copilot)

Expand All @@ -611,4 +611,4 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope

### License

By contributing, you agree that your contributions will be licensed under the project's [license](https://github.com/Azure/azure-mcp/blob/main/LICENSE).
By contributing, you agree that your contributions will be licensed under the project's [license](https://github.com/microsoft/mcp/blob/main/LICENSE).
Loading
Loading