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
25 changes: 14 additions & 11 deletions servers/Azure.Mcp.Server/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,20 @@ The Azure MCP Server updates automatically by default whenever a new release com
- `azmcp foundry openai create-completion` - Generate text completions using deployed Azure OpenAI models in AI Foundry. [[#54](https://github.com/microsoft/mcp/pull/54)]
- Supports configurable temperature and max token parameters
- Requires resource-name, deployment-name, and prompt-text parameters
- Updated the description of the following Key Vault comands to increase selection accuracy by LLMs: [[#608](https://github.com/microsoft/mcp/pull/608)]
- `azmcp_keyvault_certificate_create`
- `azmcp_keyvault_certificate_import`
- `azmcp_keyvault_certificate_get`
- `azmcp_keyvault_certificate_list`
- `azmcp_keyvault_key_create`
- `azmcp_keyvault_key_get`
- `azmcp_keyvault_key_list`
- `azmcp_keyvault_secret_create`
- `azmcp_keyvault_secret_get`
- `azmcp_keyvault_secret_list`
- Updated the description of the following comands to increase selection accuracy by LLMs:
- Key Vault: [[#608](https://github.com/microsoft/mcp/pull/608)]
- `azmcp_keyvault_certificate_create`
- `azmcp_keyvault_certificate_import`
- `azmcp_keyvault_certificate_get`
- `azmcp_keyvault_certificate_list`
- `azmcp_keyvault_key_create`
- `azmcp_keyvault_key_get`
- `azmcp_keyvault_key_list`
- `azmcp_keyvault_secret_create`
- `azmcp_keyvault_secret_get`
- `azmcp_keyvault_secret_list`
- MySQL: [[#614](https://github.com/microsoft/mcp/pull/614)]
- `azmcp_mysql_server_param_set`

### Breaking Changes

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public sealed class ServerConfigGetCommand(ILogger<ServerConfigGetCommand> logge
{
private const string CommandTitle = "Get MySQL Server Configuration";

public override string Name => "config";
public override string Name => "get";

public override string Description => "Retrieves comprehensive configuration details for the specified Azure Database for MySQL Flexible Server instance. This command provides insights into server settings, performance parameters, security configurations, and operational characteristics essential for database administration and optimization. Returns configuration data in JSON format including ServerName, Location, Version, SKU, StorageSizeGB, BackupRetentionDays, and GeoRedundantBackup properties.";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public sealed class ServerParamGetCommand(ILogger<ServerParamGetCommand> logger)
{
private const string CommandTitle = "Get MySQL Server Parameter";

public override string Name => "param";
public override string Name => "get";

public override string Description => "Retrieves the current value of a single server configuration parameter on an Azure Database for MySQL Flexible Server. Use to inspect a setting (e.g. max_connections, wait_timeout, slow_query_log) before changing it.";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public sealed class ServerParamSetCommand(ILogger<ServerParamSetCommand> logger)

public override string Name => "set";

public override string Description => "Sets/updates a MySQL server configuration parameter to a new value to optimize performance, security, or operational behavior. This command enables fine-tuned configuration management with validation to ensure parameter changes are compatible with the server's current state and constraints.";
public override string Description => "Sets/updates a single MySQL server configuration setting/parameter.";

public override string Title => CommandTitle;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public sealed class TableSchemaGetCommand(ILogger<TableSchemaGetCommand> logger)
{
private const string CommandTitle = "Get MySQL Table Schema";

public override string Name => "schema";
public override string Name => "get";

public override string Description => "Retrieves detailed schema information for a specific table within an Azure Database for MySQL Flexible Server database. This command provides comprehensive metadata including column definitions, data types, constraints, indexes, and relationships, essential for understanding table structure and supporting application development.";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new DatabaseListCommand(_logger);

Assert.Equal("list", command.Name);
Assert.Equal("Retrieves a comprehensive list of all databases available on the specified Azure Database for MySQL Flexible Server instance. This command provides visibility into the database structure and helps identify available databases for connection and querying operations.", command.Description);
Assert.Equal("List MySQL Databases", command.Title);
Assert.False(command.Metadata.Destructive);
Assert.True(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new DatabaseQueryCommand(_logger);

Assert.Equal("query", command.Name);
Assert.Equal("Executes a safe, read-only SQL SELECT query against a database on Azure Database for MySQL Flexible Server. Use this tool to explore or retrieve table data without modifying it. Rejects non-SELECT statements (INSERT/UPDATE/DELETE/REPLACE/MERGE/TRUNCATE/ALTER/CREATE/DROP), multi-statements, comments hiding writes, transaction control (BEGIN/COMMIT/ROLLBACK), INTO OUTFILE, and other destructive keywords. Only a single SELECT is executed to ensure data integrity. Best practices: List needed columns (avoid SELECT *), add WHERE filters, use LIMIT/OFFSET for paging, ORDER BY for deterministic results, and avoid unnecessary sensitive data. Example: SELECT id, name, status FROM customers WHERE status = 'Active' ORDER BY name LIMIT 50;", command.Description);
Assert.Equal("Query MySQL Database", command.Title);
Assert.False(command.Metadata.Destructive);
Assert.True(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new ServerConfigGetCommand(_logger);

Assert.Equal("config", command.Name);
Assert.Equal("Retrieves comprehensive configuration details for the specified Azure Database for MySQL Flexible Server instance. This command provides insights into server settings, performance parameters, security configurations, and operational characteristics essential for database administration and optimization. Returns configuration data in JSON format including ServerName, Location, Version, SKU, StorageSizeGB, BackupRetentionDays, and GeoRedundantBackup properties.", command.Description);
Assert.Equal("Get MySQL Server Configuration", command.Title);
Assert.False(command.Metadata.Destructive);
Assert.True(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new ServerListCommand(_logger);

Assert.Equal("list", command.Name);
Assert.Equal("Discovers and lists all Azure Database for MySQL Flexible Server instances within the specified resource group. This command provides an inventory of available MySQL server resources, including their names and current status, enabling efficient server management and resource planning.", command.Description);
Assert.Equal("List MySQL Servers", command.Title);
Assert.False(command.Metadata.Destructive);
Assert.True(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new ServerParamGetCommand(_logger);

Assert.Equal("param", command.Name);
Assert.Equal("Retrieves the current value of a single server configuration parameter on an Azure Database for MySQL Flexible Server. Use to inspect a setting (e.g. max_connections, wait_timeout, slow_query_log) before changing it.", command.Description);
Assert.Equal("Get MySQL Server Parameter", command.Title);
Assert.False(command.Metadata.Destructive);
Assert.True(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new ServerParamSetCommand(_logger);

Assert.Equal("set", command.Name);
Assert.Equal("Sets/updates a MySQL server configuration parameter to a new value to optimize performance, security, or operational behavior. This command enables fine-tuned configuration management with validation to ensure parameter changes are compatible with the server's current state and constraints.", command.Description);
Assert.Equal("Set MySQL Server Parameter", command.Title);
Assert.True(command.Metadata.Destructive);
Assert.False(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new TableListCommand(_logger);

Assert.Equal("list", command.Name);
Assert.Equal("Enumerates all tables within a specified database on an Azure Database for MySQL Flexible Server instance. This command provides a complete inventory of table objects, facilitating database exploration, schema analysis, and data architecture understanding for development tasks.", command.Description);
Assert.Equal("List MySQL Tables", command.Title);
Assert.False(command.Metadata.Destructive);
Assert.True(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,6 @@ public void Metadata_IsConfiguredCorrectly()
{
var command = new TableSchemaGetCommand(_logger);

Assert.Equal("schema", command.Name);
Assert.Equal("Retrieves detailed schema information for a specific table within an Azure Database for MySQL Flexible Server database. This command provides comprehensive metadata including column definitions, data types, constraints, indexes, and relationships, essential for understanding table structure and supporting application development.", command.Description);
Assert.Equal("Get MySQL Table Schema", command.Title);
Assert.False(command.Metadata.Destructive);
Assert.True(command.Metadata.ReadOnly);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace Azure.Mcp.Tools.Postgres.Commands.Server;
public sealed class ServerConfigGetCommand(ILogger<ServerConfigGetCommand> logger) : BaseServerCommand<ServerConfigGetOptions>(logger)
{
private const string CommandTitle = "Get PostgreSQL Server Configuration";
public override string Name => "config";
public override string Name => "get";
public override string Description =>
"Retrieve the configuration of a PostgreSQL server.";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace Azure.Mcp.Tools.Postgres.Commands.Server;
public sealed class ServerParamGetCommand(ILogger<ServerParamGetCommand> logger) : BaseServerCommand<ServerParamGetOptions>(logger)
{
private const string CommandTitle = "Get PostgreSQL Server Parameter";
public override string Name => "param";
public override string Name => "get";

public override string Description =>
"Retrieves a specific parameter of a PostgreSQL server.";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public sealed class TableSchemaGetCommand(ILogger<TableSchemaGetCommand> logger)
{
private const string CommandTitle = "Get PostgreSQL Table Schema";

public override string Name => "schema";
public override string Name => "get";
public override string Description => "Retrieves the schema of a specified table in a PostgreSQL database.";
public override string Title => CommandTitle;

Expand Down