Use environment variables in your Cursor MCP server definitions.
💡 Looking for more features? Consider mcpipe (npm) which includes envmcp's functionality as well as debugging tools and other capabilities.
# Use default ~/.env.mcp file
npx envmcp your-mcp-server $DATABASE_URL
# Specify custom env file
npx envmcp --env-file .env your-mcp-server $API_KEY $DATABASE_URL
# Short flag version
npx envmcp -e /path/to/secrets.env your-mcp-server $MY_SECRET
Prefix your server command with envmcp.
Before (secrets exposed in config):
{
"my_database": {
"command": "my-mcp-server",
"args": ["postgresql://user:password@hostname/db"]
}
}
After (secrets in ~/.env.mcp):
{
"my_database": {
"command": "npx",
"args": ["envmcp", "my-mcp-server", "$DATABASE_URL"]
}
}
- Looks for
.env.mcp
in current directory, then parent directories, finally~/.env.mcp
- If
--env-file
is specified, uses that file instead - Loads environment variables from the file
- Replaces
$VARIABLE_NAME
references in your command arguments - Executes the command with substituted values
npm install -g envmcp
--env-file <path>
,-e <path>
: Specify custom environment file path
DATABASE_URL=postgresql://user:password@localhost/db
API_KEY=your-secret-api-key
# This is a comment
QUOTED_VALUE="value with spaces"
See sample.env.mcp
for more examples.
MIT