Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Compare dotenv files and report which keys are missing or extra, by name only.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"envsync-le": {
"command": "npx",
"args": [
"-y",
"envsync-le-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add envsync-le -- npx -y envsync-le-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"envsync-le": {
"command": "npx",
"args": [
"-y",
"envsync-le-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"envsync-le": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"envsync-le-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub nolindnaidoo ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.5.0) เข้า registry 10 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Zoo MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
An MCP server that provides access to the Zoo API for various CAD operations and tools.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
EnvSync-LE: Zero Hassle .env Sync
Spot missing keys across your .env files before they bite
Automatic checks, a status bar counter, and a plain markdown report
Useful? A star or rating is how other developers find it —
★ GitHub ·
EnvSync-LE compares the variable names across the .env files in your workspace and tells you which files are missing which keys. It never reads or compares values, and it never modifies your files. Works in VS Code and in VS Code–based editors like Cursor and VSCodium (installable from Open VSX).
.env file changesShow Details lists every missing key per fileauto (union of all keys), manual (only the files you list), template (validate everything against one reference file; also reports keys a file has that the template lacks).env.example) from checking| Where | What you get | Install |
|---|---|---|
| VS Code | The same comparison, live, in your editor | Marketplace |
| Cursor, VSCodium, Windsurf | The same extension | Open VSX |
| A terminal or a CI step | The same run over a whole tree, with exit codes | npx envsync-le · npm or cargo install envsync-le · crates.io |
| Any MCP agent, via Node | compare_env_files over stdio | npx envsync-le-mcp · npm |
The same engine runs as an MCP server, so an agent can call it directly instead of you running a command.
| Editor | How |
|---|---|
| VS Code 1.101+ | Nothing to install — the extension registers compare_env_files with agent mode |
| Claude Code | claude mcp add envsync-le -- npx -y envsync-le-mcp |
| Cursor, Windsurf, anything else | point it at npx envsync-le-mcp |
compare_env_files(files[], mode?, templatePath?, caseSensitive?, maxResults?)
Takes file contents directly and reports which keys are missing from which file. Only key names are returned, never values — a dotenv file is where credentials live and the answer does not need them.
The server takes content and returns data — it reads no files and makes no network requests of its own. Published as envsync-le-mcp on npm and as io.github.nolindnaidoo/envsync-le in the MCP registry.
Configuring it by hand — any host with an MCP config file
Most hosts read a JSON config. Add one entry:
{
"mcpServers": { "envsync-le": { "command": "npx", "args": ["-y", "envsync-le-mcp"] } } }
-y skips the install prompt on first run. Pin a version if you would rather not track releases — envsync-le-mcp@2.3.0.
Prefer not to go through npx on every launch? Install it once and point at the binary instead:
npm install -g envsync-le-mcp
{
"mcpServers": { "envsync-le": { "command": "envsync-le-mcp" } } }
It speaks MCP over stdio and needs no environment variables, no API key and no configuration of its own. To check it before wiring it into anything:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx -y envsync-le-mcp
That prints the tool list and exits — if you see compare_env_files, the server works.
| Filename | Type |
|---|---|
.env | base |
.env.local, .env.*.local | local override |
.env.example, .env.template | template |
.env.production, .env.prod | production |
.env.development, .env.dev | development |
.env.test | test |
anything.env, unknown segments | base |
Classification is segment-based on the basename — app.device.env is not "development", and Windows paths classify correctly.
The same comparison runs from a terminal or a CI step: a Rust CLI in crate/, sharing one corpus with the extension — crate/fixtures/ — so the two can never read a dotenv file differently. Install it from npm with npm install -g envsync-le (or run it with npx envsync-le) or from crates.io with cargo install envsync-le. Both install the same command and are held to the same output byte for byte.
envsync-le . # have these environments drifted? JSON on stdout when piped
envsync-le --template .env.example . # will this deploy break? envsync-le mcp # the same comparison over MCP on stdio
Install it from npm (envsync-le) or from crates.io (envsync-le). Both install the same envsync-le command.
npm install -g envsync-le # or run it once: npx envsync-le
cargo install envsync-le
.env: missing STRIPE_KEY, SENTRY_DSN (in .env.example) .env.production: missing SENTRY_DSN (in .env.example) out of sync — 2 files with mismatches across 3 files
The exit code is the product — 0 in sync, 1 out of sync, 2 malformed question. Finding no dotenv files at all is 0: there is nothing to be out of sync with. Unlike the extractors in this family there is no list to pipe onward; the number is the answer.
It never reads a value. Only key names are parsed, compared or reported, and three separate checks enforce that rather than a promise.
| Command | Description |
|---|---|
EnvSync-LE: Show Details | Run a sync check and open the markdown report |
EnvSync-LE: Compare Files | Compare the key sets of two or more selected .env files |
EnvSync-LE: Set Template | Mark a .env file as the reference template |
EnvSync-LE: Clear Template | Return to automatic comparison |
EnvSync-LE: Ignore File | Exclude a .env file from sync checking |
EnvSync-LE: Unignore File | Re-include a previously ignored file |
EnvSync-LE: Clear Ignored Files | Empty the ignore list |
EnvSync-LE: Open Settings | Open VS Code settings filtered to EnvSync-LE |
EnvSync-LE: Help & Troubleshooting | Built-in documentation |
No command is bound to a key by default. Give any of them one under Keyboard Shortcuts in the editor.
| Setting | Default | Description |
|---|---|---|
envsync-le.enabled | true | Master switch for sync checking |
envsync-le.watchPatterns | [".env*"] | Glob patterns for files to watch and compare |
envsync-le.excludePatterns | [] | Glob patterns to exclude; patterns without / match the basename (so .env.*.local excludes nested files too) |
envsync-le.notificationLevel | important | all = missing + extra keys, important = missing keys + errors, silent = nothing |
envsync-le.statusBar.enabled | true | Show the status bar item (applies immediately) |
envsync-le.debounceMs | 1000 | Delay between a file change and the sync check |
envsync-le.caseSensitive | true | Treat DB_URL and db_url as different keys |
envsync-le.comparisonMode | auto | auto, manual, or template |
envsync-le.compareOnlyFiles | [] | In manual mode, only compare these files (workspace-relative) |
envsync-le.templateFile | — | The reference file for template mode (set via Set Template) |
envsync-le.temporaryIgnore | [] | Files currently ignored (managed by the ignore commands) |
envsync-le.telemetryEnabled | false | Local-only event log (see Privacy) |
A-Za-z_*, so dotted names such as spring.datasource.url count; anything else left of = is reported as a parse error for that line (the rest of the file still counts).export KEY=value is accepted; duplicate keys count once.", ', or ` may span multiple lines; an unterminated quote is reported as an error.auto mode the reference is the union of all keys, so "extra keys" only exist in template mode.Twelve languages besides English:
German · Spanish · French · Indonesian · Italian · Japanese · Korean · Portuguese (Brazil) · Russian · Ukrainian · Vietnamese · Chinese (Simplified)
Both halves are covered — the manifest (command titles, setting names and descriptions) and everything shown while the extension runs (notifications, the status bar, quick-picks and prompts, and the headings of the report). The help page is written in English. The extension follows VS Code's display language, so it matches whatever the editor is already set to; no setting of its own.
telemetryEnabled setting only writes events to a local Output Channel you can inspect (envsync-le).ตัดมาแค่ช่วงต้น อ่านต่อใน repo