Skip to content

[Doc Gap] azmcp mysql list and server commands — parameter changes from PR #2677 not reflected in azmcp-commands.md #2887

@github-actions

Description

@github-actions

Documentation Gap

Server: Azure.Mcp.Server
Tool directory: tools/Azure.Mcp.Tools.MySql
Triggered by: commit 5403cce / PR #2677 by @g2vinay
Changed files:

  • tools/Azure.Mcp.Tools.MySql/src/Commands/MySqlListCommand.cs
  • tools/Azure.Mcp.Tools.MySql/src/Commands/Server/BaseServerCommand.cs
  • tools/Azure.Mcp.Tools.MySql/src/Commands/Database/BaseDatabaseCommand.cs
  • tools/Azure.Mcp.Tools.MySql/src/Commands/BaseMySqlCommand.cs (removed)

What Changed

PR #2677 fixed several issues in the MySQL toolset:

  1. azmcp mysql list: --resource-group is now optional. When omitted, lists all MySQL servers across the entire subscription (previously required). --user is also now optional — only required when --server is specified (data-plane operations).
  2. azmcp mysql server config get, server param get, server param set: --user is no longer required. These are ARM-only commands that do not open a direct database connection, so user credentials are not needed.
  3. --user remains required for database query and table schema get (data-plane commands).

Gaps Found

  • azmcp-commands.md still shows --resource-group as required for mysql list, but it is now optional
  • azmcp-commands.md still shows --user as required for mysql list, but it is now only required when --server is specified
  • azmcp-commands.md comment for mysql list incorrectly says "Without parameters: lists all MySQL servers in the resource group" — it should say "in the subscription"
  • azmcp-commands.md still shows --user <user> as required for azmcp mysql server config get, server param get, and server param set--user was removed from all three ARM-only commands

Files to Update

  • servers/Azure.Mcp.Server/docs/azmcp-commands.md

Context

Current (incorrect) docs for mysql list:

# Hierarchical list command for MySQL resources
# Without parameters: lists all MySQL servers in the resource group
# With --server: lists all databases on that server
# With --server and --database: lists all tables in that database
# ❌ Destructive | ✅ Idempotent | ❌ OpenWorld | ✅ ReadOnly | ❌ Secret | ❌ LocalRequired
azmcp mysql list --subscription <subscription> \
                 --resource-group <resource-group> \
                 --user <user> \
                 [--server <server>] \
                 [--database <database>]

Correct docs for mysql list:

# Hierarchical list command for MySQL resources
# Without parameters: lists all MySQL servers in the subscription
# With --resource-group: lists servers in that resource group
# With --server: lists all databases on that server (--user required)
# With --server and --database: lists all tables in that database (--user required)
# ❌ Destructive | ✅ Idempotent | ❌ OpenWorld | ✅ ReadOnly | ❌ Secret | ❌ LocalRequired
azmcp mysql list --subscription <subscription> \
                 [--resource-group <resource-group>] \
                 [--user <user>] \
                 [--server <server>] \
                 [--database <database>]

Current (incorrect) docs for server commands (same issue for server param get and server param set):

# Retrieve the configuration of a MySQL server
azmcp mysql server config get --subscription <subscription> \
                              --resource-group <resource-group> \
                              --user <user> \
                              --server <server>

Correct docs for server commands:

# Retrieve the configuration of a MySQL server
azmcp mysql server config get --subscription <subscription> \
                              --resource-group <resource-group> \
                              --server <server>
📐 Implementation Guide

This section contains step-by-step instructions for a coding agent to implement the changes described above.

Step 1: Modify files

File: servers/Azure.Mcp.Server/docs/azmcp-commands.md

Locate the ### Azure Database for MySQL Operations section and make the following replacements:

1. Fix mysql list command signature and comments:

Replace:

# Hierarchical list command for MySQL resources
# Without parameters: lists all MySQL servers in the resource group
# With --server: lists all databases on that server
# With --server and --database: lists all tables in that database
# ❌ Destructive | ✅ Idempotent | ❌ OpenWorld | ✅ ReadOnly | ❌ Secret | ❌ LocalRequired
azmcp mysql list --subscription <subscription> \
                 --resource-group <resource-group> \
                 --user <user> \
                 [--server <server>] \
                 [--database <database>]

With:

# Hierarchical list command for MySQL resources
# Without parameters: lists all MySQL servers in the subscription
# With --resource-group: lists servers in that resource group
# With --server: lists all databases on that server (--user required)
# With --server and --database: lists all tables in that database (--user required)
# ❌ Destructive | ✅ Idempotent | ❌ OpenWorld | ✅ ReadOnly | ❌ Secret | ❌ LocalRequired
azmcp mysql list --subscription <subscription> \
                 [--resource-group <resource-group>] \
                 [--user <user>] \
                 [--server <server>] \
                 [--database <database>]

2. Fix mysql server config get — remove --user:

Replace:

azmcp mysql server config get --subscription <subscription> \
                              --resource-group <resource-group> \
                              --user <user> \
                              --server <server>

With:

azmcp mysql server config get --subscription <subscription> \
                              --resource-group <resource-group> \
                              --server <server>

3. Fix mysql server param get — remove --user:

Replace:

azmcp mysql server param get --subscription <subscription> \
                             --resource-group <resource-group> \
                             --user <user> \
                             --server <server> \
                             --param <parameter>

With:

azmcp mysql server param get --subscription <subscription> \
                             --resource-group <resource-group> \
                             --server <server> \
                             --param <parameter>

4. Fix mysql server param set — remove --user:

Replace:

azmcp mysql server param set --subscription <subscription> \
                             --resource-group <resource-group> \
                             --user <user> \
                             --server <server> \
                             --param <parameter> \
                             --value <value>

With:

azmcp mysql server param set --subscription <subscription> \
                             --resource-group <resource-group> \
                             --server <server> \
                             --param <parameter> \
                             --value <value>

Step 2: Verify documentation structure

servers/Azure.Mcp.Server/docs/azmcp-commands.md — must include:

  • One ## azmcp <service> <resource> <operation> section per command, containing a description, parameters table, and example usage block
  • Optional parameters shown in brackets [--param <value>]; required parameters shown without brackets

Step 3: Validate

Run these commands in order. Each must succeed before proceeding to the next:

  1. dotnet build servers/Azure.Mcp.Server/ — confirms the server project compiles cleanly
  2. dotnet build tools/Azure.Mcp.Tools.MySql/src/ — confirms the affected toolset compiles
  3. dotnet test tools/Azure.Mcp.Tools.MySql/tests/Azure.Mcp.Tools.MySql.Tests/ --filter "TestType!=Live" — runs unit tests for the affected toolset
  4. .\eng\common\spelling\Invoke-Cspell.ps1 — checks spelling in new or modified documentation

Next Steps

Tip

Ready for automated implementation? Assign this issue to @copilot to have Copilot coding agent implement the changes described in the Implementation Guide above

Generated by Documentation Updater · ● 13.2M ·

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Task.

    Projects

    Status
    Untriaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions