EnvMem
Personal environment variable memory with semantic search and project management. Enables storing, searching, and retrieving environment variables via MCP, supporting project organization and auto-fill of .env files.
README
EnvMem

Your Environment Variables, Always at Hand
Personal environment variable memory with semantic search and project management. Multi-tenant MCP server that remembers all your API keys, secrets, and configurations.
Live: envmem.com | NPM: npmjs.com/package/envmem

Features
- Semantic Search - Natural language queries powered by Cloudflare Vectorize
- Project Management - Organize envs by project with dev/staging/prod environments
- Auto-Fill .env - Parse .env.example and fill with your stored values
- Multi-Tenant Isolation - Each API key gets completely isolated storage
- MCP Protocol - Works with Claude, ChatGPT, and any MCP-compatible AI
- Service Bundles - Get all env vars for Stripe + Supabase + OpenAI in one query
- Edge-Native - Sub-50ms responses from 300+ global locations
🚀 Quick Start & MCP Configuration
EnvMem is designed to work seamlessly with any MCP-compatible client (like Claude Desktop, Cursor, or your own tools).
Option 1: Claude Desktop (Recommended)
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"envmem": {
"command": "npx",
"args": ["-y", "envmem"],
"env": {
"ENVMEM_API_KEY": "your-secret-api-key"
}
}
}
}
Note: Generate your API key at envmem.com or use any random string (it acts as your personal partition).
Option 2: Remote MCP (No Node.js required)
If your MCP client supports remote URLs (SSE), you can connect directly without running anything locally:
{
"mcpServers": {
"envmem": {
"url": "https://envmem.com/mcp?apikey=your-secret-api-key"
}
}
}
Usage
1. Import Your Variables
import_env_variables({
envText: `
OPENAI_API_KEY=sk-...
STRIPE_SECRET_KEY=sk_live_...
DATABASE_URL=postgres://...
`
})
2. Create a Project
create_project({
name: "my-saas",
repoUrl: "github.com/me/my-saas",
tags: ["nextjs", "stripe", "supabase"]
})
3. Link Services to Project
link_services_to_project({
projectName: "my-saas",
services: ["Stripe", "Supabase", "OpenAI", "Clerk"]
})
4. Get Complete .env File
get_envs_for_project({
projectName: "my-saas",
environment: "prod"
})
// Returns ready-to-use .env file content
5. Auto-Fill from .env.example
fill_env_example({
envExampleContent: `OPENAI_API_KEY=\nSTRIPE_SECRET_KEY=\nDATABASE_URL=`,
projectName: "my-saas"
})
// Returns filled .env with your stored values
MCP Tools
Search & Retrieve
| Tool | Description |
|---|---|
search_env_variables |
Semantic + keyword search |
get_env_by_name |
Get by exact name |
get_envs_for_services |
Get all vars for services |
list_env_categories |
List categories with counts |
Import & Manage
| Tool | Description |
|---|---|
import_env_variables |
Bulk import from .env text |
add_env_variable |
Add single variable |
delete_env_variable |
Delete by name |
clear_all_env_variables |
Delete all (requires confirm) |
Project Management
| Tool | Description |
|---|---|
create_project |
Create project with repo URL + tags |
list_projects |
List all your projects |
link_env_to_project |
Link env to project (dev/staging/prod) |
link_services_to_project |
Bulk link services to project |
get_envs_for_project |
Get .env file for project |
fill_env_example |
Auto-fill .env.example |
delete_project |
Delete project + links |
Typical Workflow
// 1. Import your envs once
import_env_variables({ envText: "..." })
// 2. Create project
create_project({ name: "autoclient", repoUrl: "github.com/me/autoclient" })
// 3. Link services
link_services_to_project({
projectName: "autoclient",
services: ["Stripe", "Supabase", "OpenAI"]
})
// 4. Get .env for deployment
get_envs_for_project({ projectName: "autoclient", environment: "prod" })
Categories
| Category | Examples |
|---|---|
ai_services |
OpenAI, Anthropic, Google AI |
database |
Supabase, PlanetScale, MongoDB |
payment |
Stripe, PayPal, SumUp |
auth |
Auth0, Clerk, Firebase |
email |
SendGrid, Mailjet, Resend |
deployment |
Vercel, Netlify, Railway |
storage |
S3, Cloudflare R2, Cloudinary |
monitoring |
Sentry, Datadog |
Authentication
Your API key creates isolated storage. Generate one:
openssl rand -hex 16
Pass via:
- Header:
x-api-key: your-key - Bearer:
Authorization: Bearer your-key - Query:
?apikey=your-key
Self-Hosting
git clone https://github.com/samihalawa/envmem-mcp.git
cd envmem-mcp
npm install
# Create Cloudflare resources
wrangler d1 create env-reference-db
wrangler vectorize create env-embeddings --dimensions=768 --metric=cosine
# Apply migrations
wrangler d1 migrations apply env-reference-db --remote
# Deploy
wrangler deploy
Tech Stack
- Runtime: Cloudflare Workers
- Embeddings: Workers AI (bge-base-en-v1.5, 768-dim)
- Vector Search: Cloudflare Vectorize
- Database: Cloudflare D1 (SQLite + FTS5)
- Protocol: MCP (Model Context Protocol)
License
ISC
Built with care for developers who forget their env var names.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.