Skip to content

Commit 72b7ad3

Browse files
committed
update snowflake entrypoint
1 parent ad902de commit 72b7ad3

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

images/snowflake-mcp/entrypoint.sh

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -29,40 +29,51 @@ usage() {
2929
cat <<EOF
3030
Usage: 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
3642
Authentication (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
5162
EOF
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:-}"
6374
TRANSPORT="stdio"
6475

65-
# Parse command-line arguments
76+
# Parse command-line arguments (override environment variables)
6677
while [[ $# -gt 0 ]]; do
6778
case $1 in
6879
--account)
@@ -107,19 +118,14 @@ while [[ $# -gt 0 ]]; do
107118
esac
108119
done
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
116122
if [[ -z "$ACCOUNT" ]]; then
117-
log_error "Missing required parameter: --account"
123+
log_error "Missing required parameter: --account or SNOWFLAKE_ACCOUNT environment variable"
118124
usage
119125
fi
120126

121127
if [[ -z "$USER" ]]; then
122-
log_error "Missing required parameter: --user"
128+
log_error "Missing required parameter: --user or SNOWFLAKE_USER environment variable"
123129
usage
124130
fi
125131

0 commit comments

Comments
 (0)