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_SECRETPrefix 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.mcpin current directory, then parent directories, finally~/.env.mcp - If
--env-fileis specified, uses that file instead - Loads environment variables from the file
- Replaces
$VARIABLE_NAMEreferences 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