Skip to content

[Doc Gap] PostgreSQL tools entirely missing from azmcp-commands.md, e2eTestPrompts.md, and README.md after breaking-change migration in PR [Content truncated due to length] #2947

Description

@github-actions

Documentation Gap

Server: Azure.Mcp.Server
Tool directory: tools/Azure.Mcp.Tools.Postgres
Triggered by: commit 1753e0a (PR #2942) by @alzimmermsft
Changed files:

  • tools/Azure.Mcp.Tools.Postgres/src/Commands/PostgresListCommand.cs
  • tools/Azure.Mcp.Tools.Postgres/src/Commands/Database/DatabaseQueryCommand.cs
  • tools/Azure.Mcp.Tools.Postgres/src/Commands/Server/ServerConfigGetCommand.cs
  • tools/Azure.Mcp.Tools.Postgres/src/Commands/Server/ServerParamGetCommand.cs
  • tools/Azure.Mcp.Tools.Postgres/src/Commands/Server/ServerParamSetCommand.cs
  • tools/Azure.Mcp.Tools.Postgres/src/Options/PostgresOptionDefinitions.cs
  • servers/Azure.Mcp.Server/changelog-entries/1782332979507.yaml

What Changed

PR #2942 migrated all PostgreSQL tools to the new tool design pattern (AuthenticatedCommand / SubscriptionCommand), removing several base command classes (BaseDatabaseCommand, BaseServerCommand, BasePostgresCommand) and refactoring option definitions. The changelog explicitly marks this as a Breaking Change: "Removed unused parameters from Postgresql tools."

Options previously managed through legacy base command classes are now expressed directly as typed properties on individual Options classes. Some commands gained new parameters (--tenant, --retry-*) and the required/optional status of existing parameters changed.

Gaps Found

  • No azmcp postgres commands appear anywhere in azmcp-commands.md — all 6 tools are entirely undocumented
  • No PostgreSQL entries exist in e2eTestPrompts.md — no test prompts for any of the 6 tools
  • PostgreSQL is not mentioned in README.md under either "What can you do..." or "Complete List of Supported Azure Services"

The current 6 commands and their parameter sets (post-PR #2942) are:

CLI command Description
azmcp postgres list List PostgreSQL servers, databases, or tables
azmcp postgres database query Execute a read-only SQL query against a PostgreSQL database
azmcp postgres table schema get Retrieve the schema of a PostgreSQL table
azmcp postgres server config get Retrieve the configuration of a PostgreSQL server
azmcp postgres server param get Retrieve a specific parameter of a PostgreSQL server
azmcp postgres server param set Configure PostgreSQL server settings

Files to Update

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

Context

# servers/Azure.Mcp.Server/changelog-entries/1782332979507.yaml
changes:
  - section: "Breaking Changes"
    description: "Removed unused parameters from Postgresql tools."

PostgresSetup.cs command group structure:

azmcp postgres list
azmcp postgres database query
azmcp postgres table schema get
azmcp postgres server config get
azmcp postgres server param get
azmcp postgres server param set
📐 Implementation Guide

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

Step 1: Modify files

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

Add a new ## Azure Database for PostgreSQL section (in alphabetical order). Include one subsection per command following the existing format. Parameter tables should reflect the current options:

azmcp postgres list (PostgresListOptions):

Parameter Required Description
--subscription No Subscription ID or name
--resource-group No Resource group (scopes server listing)
--server No PostgreSQL server name — provide to list databases; required with --database
--database No PostgreSQL database — provide to list tables (requires --server)
--schema No Schema to list tables from (defaults to public; requires --server and --database)
--user Conditional Username — required when --server is provided
--auth-type No Auth type: MicrosoftEntra (default) or PostgreSQL
--password No Password — required only when --auth-type is PostgreSQL
--tenant No Tenant ID or name
--retry-max-retries No Max retry attempts
--retry-delay No Delay between retries

azmcp postgres database query (DatabaseQueryOptions):

Parameter Required Description
--query Yes Read-only SELECT query to execute
--server Yes PostgreSQL server hostname
--database Yes Target database name
--user Yes Username
--auth-type Yes Auth type: MicrosoftEntra or PostgreSQL
--password No Password (required for PostgreSQL auth-type)

azmcp postgres table schema get (TableSchemaGetOptions):

Parameter Required Description
--table Yes Table name
--server Yes PostgreSQL server hostname
--database Yes Database name
--user Yes Username
--auth-type Yes Auth type: MicrosoftEntra or PostgreSQL
--password No Password (required for PostgreSQL auth-type)

azmcp postgres server config get (BaseServerOptions):

Parameter Required Description
--server Yes PostgreSQL server name
--user Yes Username
--resource-group Yes Resource group
--subscription No Subscription ID or name
--tenant No Tenant ID or name
--retry-max-retries No Max retry attempts
--retry-delay No Delay between retries

azmcp postgres server param get (ServerParamGetOptions : BaseServerOptions):
Same as server config get, plus:
| --param | Yes | Parameter name to retrieve |

azmcp postgres server param set (ServerParamSetOptions : BaseServerOptions):
Same as server config get, plus:
| --param | Yes | Parameter name to set |
| --value | Yes | Value to set for the parameter |

servers/Azure.Mcp.Server/docs/e2eTestPrompts.md

Add a new ## Azure Database for PostgreSQL section in alphabetical order. Add a table:

## Azure Database for PostgreSQL

| Tool Name | Test Prompt |
|---|---|
| postgres_database_query | Execute a SQL query to list all tables in the public schema on my PostgreSQL server myserver.postgres.database.azure.com database mydb |
| postgres_list | List all PostgreSQL servers in my subscription |
| postgres_server_config_get | Get the configuration of my PostgreSQL server myserver in resource group myrg |
| postgres_server_param_get | Get the log_connections parameter of my PostgreSQL server myserver in resource group myrg |
| postgres_server_param_set | Set the log_connections parameter to on for my PostgreSQL server myserver in resource group myrg |
| postgres_table_schema_get | Get the schema of the users table in the public schema on my PostgreSQL server |

servers/Azure.Mcp.Server/README.md

  1. Add PostgreSQL to the "Complete List of Supported Azure Services" section:

    | 🐘 Azure Database for PostgreSQL | List servers, databases, and tables; execute queries; retrieve and configure server parameters |
  2. Add a ### 🐘 Azure Database for PostgreSQL subsection under "What can you do" with 2–3 example prompts.

Step 2: Verify documentation structure

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

  • A global options table at the top (subscription, resource-group, tenant, retry-max-retries, retry-delay)
  • One ## azmcp <service> <resource> <operation> section per command, containing a description, parameters table, and example usage block

servers/Azure.Mcp.Server/docs/e2eTestPrompts.md — must include:

  • A header explaining the file's purpose
  • Service area sections (e.g., ## Azure Advisor, ## Azure AI Search) in alphabetical order
  • Within each section, a table with columns Tool Name | Test Prompt listing tool names alphabetically
  • New commands added in alphabetical order within their service section

servers/Azure.Mcp.Server/README.md — must include:

  • An # Overview section describing the server
  • An # Installation section with subsections for IDE and Package Manager
  • A ## What can you do with the Azure MCP Server? section with per-service subsections showing example prompts
  • A ## Complete List of Supported Azure Services section listing all supported services with emoji icons and brief descriptions
  • A # Support and Reference section

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.Postgres/src/ — confirms the affected toolset compiles
  3. dotnet test tools/Azure.Mcp.Tools.Postgres/tests/Azure.Mcp.Tools.Postgres.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 · ● 11.2M ·

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Task.

Projects

Status
Untriaged

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions