@@ -29,40 +29,51 @@ usage() {
2929 cat << EOF
3030Usage: docker run [docker-options] mcp-snowflake:local [options]
3131
32- Required arguments:
33- --account ACCOUNT Snowflake account identifier
34- --user USER Snowflake username
32+ Configuration can be provided via environment variables or command-line arguments.
33+ Command-line arguments override environment variables.
34+
35+ Required (via env var or CLI):
36+ --account ACCOUNT Snowflake account identifier
37+ SNOWFLAKE_ACCOUNT Environment variable for account
38+
39+ --user USER Snowflake username
40+ SNOWFLAKE_USER Environment variable for user
3541
3642Authentication (provide ONE of these):
37- --password PASSWORD Password (or use SNOWFLAKE_PASSWORD env var)
38- SNOWFLAKE_PRIVATE_KEY Private key PEM content (env var only)
43+ --password PASSWORD Password
44+ SNOWFLAKE_PASSWORD Password env var
45+ SNOWFLAKE_PRIVATE_KEY Private key PEM content (env var only)
46+
47+ Optional (via env var or CLI):
48+ --role ROLE Snowflake role
49+ SNOWFLAKE_ROLE Environment variable for role
50+
51+ --warehouse WAREHOUSE Snowflake warehouse
52+ SNOWFLAKE_WAREHOUSE Environment variable for warehouse
3953
40- Optional arguments:
41- --role ROLE Snowflake role
42- --warehouse WAREHOUSE Snowflake warehouse
43- --database DATABASE Snowflake database
44- --schema SCHEMA Snowflake schema
45- --transport TYPE Transport type (default: stdio)
54+ --database DATABASE Snowflake database
55+ SNOWFLAKE_DATABASE Environment variable for database
4656
47- Environment variables:
48- SNOWFLAKE_PASSWORD Password for authentication
49- SNOWFLAKE_PRIVATE_KEY Unencrypted private key PEM content for key-pair auth
57+ --schema SCHEMA Snowflake schema
58+ SNOWFLAKE_SCHEMA Environment variable for schema
59+
60+ --transport TYPE Transport type (default: stdio)
5061
5162EOF
5263 exit 1
5364}
5465
55- # Initialize variables
56- ACCOUNT=" "
57- USER=" "
58- PASSWORD=" "
59- ROLE=" "
60- WAREHOUSE=" "
61- DATABASE=" "
62- SCHEMA=" "
66+ # Initialize variables from environment or defaults
67+ ACCOUNT=" ${SNOWFLAKE_ACCOUNT :- } "
68+ USER=" ${SNOWFLAKE_USER :- } "
69+ PASSWORD=" ${SNOWFLAKE_PASSWORD :- } "
70+ ROLE=" ${SNOWFLAKE_ROLE :- } "
71+ WAREHOUSE=" ${SNOWFLAKE_WAREHOUSE :- } "
72+ DATABASE=" ${SNOWFLAKE_DATABASE :- } "
73+ SCHEMA=" ${SNOWFLAKE_SCHEMA :- } "
6374TRANSPORT=" stdio"
6475
65- # Parse command-line arguments
76+ # Parse command-line arguments (override environment variables)
6677while [[ $# -gt 0 ]]; do
6778 case $1 in
6879 --account)
@@ -107,19 +118,14 @@ while [[ $# -gt 0 ]]; do
107118 esac
108119done
109120
110- # Check for password from environment if not provided via CLI
111- if [[ -z " $PASSWORD " ]] && [[ -n " ${SNOWFLAKE_PASSWORD:- } " ]]; then
112- PASSWORD=" $SNOWFLAKE_PASSWORD "
113- fi
114-
115121# Validate required parameters
116122if [[ -z " $ACCOUNT " ]]; then
117- log_error " Missing required parameter: --account"
123+ log_error " Missing required parameter: --account or SNOWFLAKE_ACCOUNT environment variable "
118124 usage
119125fi
120126
121127if [[ -z " $USER " ]]; then
122- log_error " Missing required parameter: --user"
128+ log_error " Missing required parameter: --user or SNOWFLAKE_USER environment variable "
123129 usage
124130fi
125131
0 commit comments