Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
i18n for coding agents: extract, check and translate an app's text, with drafts a person approves
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"verbaly": {
"command": "npx",
"args": [
"-y",
"@verbaly/mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add verbaly -- npx -y @verbaly/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"verbaly": {
"command": "npx",
"args": [
"-y",
"@verbaly/mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"verbaly": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@verbaly/mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub AronSoto ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.79.0) เข้า registry 4 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Python 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.
Local-only Python MCP server for the Files.com API.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Write your text in the code. Ship it in every language.
An i18n compiler and a tiny runtime for React, Vue, Svelte, Next.js, Nuxt, SvelteKit, Astro and plain HTML.
No key files to keep in sync, params typed from the text, and a CI gate that stops broken translations.
Most i18n tools ask you to invent a key for every sentence, write it in a file per language and keep the files in step with the code by hand. Verbaly turns that around:
// with key files: name it, write it in en.json, es.json, pt.json, keep them in sync
t('dashboard.welcome_back', { name });
// with Verbaly: write the sentence where it is used tWelcome back, ${name};
// and the compiler writes a stable key and a typed call for you t('ESsQIvlA', { name });
The runtime that ships is 3.35 KB gzip with zero dependencies, measured on every release by a gate in this repo (pnpm --filter verbaly size).
pnpm add verbaly @verbaly/vite
pnpm add -D @verbaly/compiler # the verbaly command: init, extract, check npx verbaly init
// vite.config.ts
import verbaly from '@verbaly/vite';
export default { plugins: [verbaly()] };
// anywhere in your app: extracted and typed on save
import { t, setLocale } from 'verbaly/app';
tHello ${name}; await setLocale('es'); // loads only the Spanish module
verbaly/app is your project's own module: the plugin writes it from your config, with your languages and catalogs already in it. Next.js, Nuxt, SvelteKit and Astro have their own one-line setup: pick yours in the row above, or read the full docs at https://verbaly-web.vercel.app/docs.
✍️ No key files You write the sentence. The compiler names it and keeps every language file in step with your code. 🧷 Typed from the text {name} , plurals, currency and dates come from the message itself, so a wrong or missing param fails to compile. 🛑 Broken ones never ship verbaly check catches a missing translation, and one that lost a {param} , a tag or a plural case, in plain words.
🪶 Small and fast Zero dependencies, one module per language, and a hot path benchmarked against i18next on every release. 🔄 Any workflow Plain JSON, XLIFF, CSV and gettext PO for translators, Android and iOS exports, and AI drafts a person approves. 🤖 Agent ready An MCP server, an Agent Skill and llms.txt , with drafts an agent can write but never approve.
npx verbaly-studio
Studio serves your project over localhost: what is missing, what is broken, what a machine wrote and where each text lives in your code. Your JSON files are the database and git is the history, a save runs the same validations as verbaly check, and it never edits your source text.
| Verbaly | i18next | Lingui | Paraglide | typesafe-i18n | |
|---|---|---|---|---|---|
| Type-safe keys & params | ✅ inferred from text | plugin/manual | partial | ✅ | ✅ |
| Runtime size (gzip) | 3.35KB, zero deps | 13.6KB (19.0 +react) | 2.2KB (3.3 +react) | compiled | 1.2KB |
| Setup | 1 Vite plugin | heavy config | macros + Babel/SWC | inlang project | generator |
| Key maintenance | none, extracted | by hand | extract → compile step | by hand | by hand |
| Dynamic / CMS content | ✅ real runtime path | ✅ | ✅ | ⚠️ weak | ✅ |
| Plain HTML (no framework) | ✅ DOM interpreter | ❌ | ❌ | ❌ | ❌ |
| Missing-translation gate | ✅ fails CI only | runtime warning | CI step | ✅ | ❌ |
| Broken-translation gate | ✅ fails CI only | ❌ | ❌ | ❌ | ❌ |
| Catalog format | plain JSON | JSON | PO/JSON | inlang format | TS files |
Sizes are min+gzip of each library's main entry with React external, measured with the same method on 2026-10-15.
claude mcp add verbaly -- npx -y @verbaly/mcp
The MCP server gives your agent the whole cycle as tools, with structured output and resources to read your config and catalogs. Machine translations stay drafts until a person approves them (verbaly review --approve, or Studio): approving is deliberately not a tool. The Agent Skill teaches the write, extract, check and translate cycle (npx degit AronSoto/verbaly/skills/verbaly .claude/skills/verbaly), and the docs publish llms.txt.
| Package | What it is |
|---|---|
verbaly | The runtime: t, Intl formats, locale helpers and the DOM interpreter |
@verbaly/compiler | Extraction, typed codegen, the gate and the verbaly command |
@verbaly/vite · @verbaly/unplugin | Bundler plugins: Vite, and webpack, Rollup, esbuild and Rspack |
@verbaly/react · @verbaly/vue · @verbaly/svelte | Framework adapters: hooks or composables plus |
@verbaly/next · @verbaly/nuxt · @verbaly/sveltekit | Server rendering: the language per request, hydration with no flash |
@verbaly/astro | Astro integration: .astro extraction and a static build per language |
@verbaly/mcp | MCP server: the translation cycle as tools for an agent |
@verbaly/studio | The local review panel above |
All of them share one version number, and every release is published from CI with npm provenance.
Editor: see the text behind a key on hover
Generated keys are hashes, so t('a1B2c3D4') in a diff tells you nothing. The i18n-ally extension shows the real text inline once you point it at your catalogs. Two files, no Verbaly config changes:
.vscode/settings.json
{
"i18n-ally.localesPaths": ["locales"], "i18n-ally.keystyle": "flat", "i18n-ally.sourceLanguage": "en", "i18n-ally.display
ตัดมาแค่ช่วงต้น อ่านต่อใน repo