-
Notifications
You must be signed in to change notification settings - Fork 506
Add user_config to Azure MCP Bundle #2618
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?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,5 @@ | ||
| { | ||
| "$schema": "https://raw.githubusercontent.com/modelcontextprotocol/mcpb/refs/heads/main/schemas/mcpb-manifest-v0.3.schema.json", | ||
| "manifest_version": "0.3", | ||
| "name": "Azure.Mcp.Server", | ||
| "display_name": "Azure MCP Server", | ||
|
|
@@ -28,8 +29,31 @@ | |
| } | ||
| }, | ||
| "command": "${__dirname}/server/azmcp", | ||
| "args": [ "server", "start" ], | ||
| "env": {} | ||
| "args": [ | ||
| "server", | ||
| "start", | ||
| "--mode", | ||
| "${user_config.mode}", | ||
| "--debug", | ||
| "${user_config.debug}", | ||
| "--read-only", | ||
| "${user_config.read_only}", | ||
| "--dangerously-disable-elicitation", | ||
| "${user_config.dangerously_disable_elicitation}" | ||
| ], | ||
| "env": { | ||
| "AZURE_TENANT_ID": "${user_config.azure_tenant_id}", | ||
| "AZURE_CLIENT_ID": "${user_config.azure_client_id}", | ||
| "AZURE_CLIENT_SECRET": "${user_config.azure_client_secret}", | ||
| "AZURE_SUBSCRIPTION_ID": "${user_config.azure_subscription_id}", | ||
| "AZURE_CLOUD": "${user_config.azure_cloud}", | ||
| "AZURE_TOKEN_CREDENTIALS": "${user_config.azure_token_credentials}", | ||
| "AZURE_MCP_COLLECT_TELEMETRY": "${user_config.azure_mcp_collect_telemetry}", | ||
| "AZURE_MCP_COLLECT_TELEMETRY_MICROSOFT": "${user_config.azure_mcp_collect_telemetry_microsoft}", | ||
| "AZURE_MCP_ONLY_USE_BROKER_CREDENTIAL": "${user_config.azure_mcp_only_use_broker_credential}", | ||
| "AZURE_MCP_ENABLE_OTLP_EXPORTER": "${user_config.azure_mcp_enable_otlp_exporter}", | ||
| "APPLICATIONINSIGHTS_CONNECTION_STRING": "${user_config.applicationinsights_connection_string}" | ||
|
pl4nty marked this conversation as resolved.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The server reads But boolean-typed user_config values always resolve to a concrete true/false string. If a user previously set
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the server isn't run from a shell, so envvar overrides shouldn't be an issue. But I can mention just in case if you'd like |
||
| } | ||
| } | ||
| }, | ||
| "tools": [], | ||
|
|
@@ -94,6 +118,100 @@ | |
| "quick reference", | ||
| "cli" | ||
| ], | ||
| "user_config": { | ||
| "azure_tenant_id": { | ||
| "type": "string", | ||
| "title": "Entra Tenant ID", | ||
| "description": "Entra tenant ID. Use this to authenticate against a specific tenant. Example: 00000000-0000-0000-0000-000000000000", | ||
| "default": "" | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. While implementing microsoft/fabric-rti-mcp#172, I noticed Claude Desktop only substitutes string variables if a value is provided. This can cause server issues like trying to parse a guid from raw |
||
| }, | ||
| "azure_client_id": { | ||
| "type": "string", | ||
| "title": "Entra Client ID", | ||
| "description": "Client ID of a service principal or user-assigned managed identity. Example: 00000000-0000-0000-0000-000000000000", | ||
| "default": "" | ||
| }, | ||
| "azure_client_secret": { | ||
| "type": "string", | ||
| "title": "Entra Client Secret", | ||
| "description": "Client secret for service principal authentication. Used together with AZURE_TENANT_ID and AZURE_CLIENT_ID for non-interactive environments.", | ||
|
pl4nty marked this conversation as resolved.
|
||
| "default": "", | ||
| "sensitive": true | ||
| }, | ||
| "azure_subscription_id": { | ||
| "type": "string", | ||
| "title": "Azure Subscription ID", | ||
| "description": "Default Azure subscription ID or name to use when no subscription is specified in a command. Example: 00000000-0000-0000-0000-000000000000", | ||
| "default": "" | ||
| }, | ||
| "azure_cloud": { | ||
| "type": "string", | ||
| "title": "Azure Cloud Environment", | ||
| "description": "Azure cloud environment to connect to. Examples: AzureCloud (default public cloud), AzureChinaCloud, AzureUSGovernment.", | ||
| "default": "" | ||
| }, | ||
| "azure_token_credentials": { | ||
| "type": "string", | ||
| "title": "Azure Token Credentials", | ||
| "description": "Credential chain to use for authentication. Values: 'dev' (VS/VSCode/CLI/PowerShell/AzureDeveloperCLI + browser fallback), 'prod' (Workload Identity + Managed Identity, no interactive fallback), or a specific provider name such as 'AzureCliCredential' or 'ManagedIdentityCredential'.", | ||
| "default": "" | ||
| }, | ||
| "azure_mcp_collect_telemetry": { | ||
| "type": "boolean", | ||
| "title": "Collect Telemetry", | ||
| "description": "Whether to allow Azure MCP Server to collect anonymous usage telemetry. Set to false to opt out.", | ||
| "default": true | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Booleans in Claude Desktop are non-nullable and currently default to false |
||
| }, | ||
| "azure_mcp_collect_telemetry_microsoft": { | ||
| "type": "boolean", | ||
| "title": "Collect Microsoft Telemetry", | ||
| "description": "Whether to allow Azure MCP Server to send anonymous usage telemetry to Microsoft. Enabled by default in release builds. Set to false to opt out of Microsoft-owned telemetry while keeping other telemetry settings unchanged.", | ||
| "default": true | ||
| }, | ||
| "azure_mcp_only_use_broker_credential": { | ||
| "type": "boolean", | ||
| "title": "Only Use Broker Credential", | ||
| "description": "When set to true, restricts authentication to the broker credential only (e.g. Windows Web Account Manager). Useful in environments where only broker-based authentication is permitted.", | ||
| "default": false | ||
| }, | ||
| "azure_mcp_enable_otlp_exporter": { | ||
| "type": "boolean", | ||
| "title": "Enable OTLP Exporter", | ||
| "description": "When set to true, enables the OpenTelemetry Protocol (OTLP) exporter for traces, metrics, and logs. Configure the exporter endpoint via standard OTEL_EXPORTER_OTLP_ENDPOINT environment variables.", | ||
| "default": false | ||
| }, | ||
| "applicationinsights_connection_string": { | ||
| "type": "string", | ||
| "title": "Application Insights Connection String", | ||
| "description": "Azure Application Insights connection string for custom telemetry reporting.", | ||
|
pl4nty marked this conversation as resolved.
|
||
| "default": "", | ||
| "sensitive": true | ||
| }, | ||
| "debug": { | ||
| "type": "boolean", | ||
| "title": "Debug", | ||
| "description": "Enable debug mode with verbose logging to stderr. Default: false.", | ||
| "default": false | ||
| }, | ||
| "dangerously_disable_elicitation": { | ||
| "type": "boolean", | ||
| "title": "Disable User Confirmation (Not Recommended)", | ||
| "description": "Disable user confirmation (elicitation) before allowing high risk commands to run, such as returning secrets (passwords) from KeyVault. When enabled, tools that handle secrets, credentials, or sensitive data will execute without user confirmation. This removes an important security layer designed to prevent unauthorized access to sensitive information. Only use this option in trusted, automated environments where user interaction isn't possible. Never use this option in production environments or when handling untrusted input. Default: false.", | ||
| "default": false | ||
| }, | ||
| "mode": { | ||
| "type": "string", | ||
| "title": "Mode", | ||
| "description": "Server mode: namespace, consolidated, all, or single. Default: namespace.", | ||
| "default": "namespace" | ||
| }, | ||
| "read_only": { | ||
| "type": "boolean", | ||
| "title": "Read Only", | ||
| "description": "Whether the MCP server should be read-only. If true, no write operations are allowed. Default: false.", | ||
| "default": false | ||
| } | ||
| }, | ||
| "license": "MIT", | ||
| "privacy_policies": [ | ||
| "https://www.microsoft.com/privacy/privacystatement" | ||
|
|
@@ -106,4 +224,4 @@ | |
| "linux" | ||
| ] | ||
| } | ||
| } | ||
| } | ||
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.
When
user_config.debugis false (the default), this expands to--debug false. System.CommandLine parses it fine, but it means every launch always includes--debug false --read-only false --dangerously-disable-elicitation falsewhich is noisy. Not blocking, but if mcpb supports conditional arg inclusion (only add when true), that'd be cleaner.Uh oh!
There was an error while loading. Please reload this page.
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.
Conditional inclusion would be ideal, but I couldn't find any docs nor get it working with common syntax. I may end up writing a feature request on the spec repo for it