Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Find, add, push and pull an app's user-facing texts in locli (iOS, Android, web, backend).
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
LOCLI_TOKEN, LOCLI_CONFIG, LOCLI_API_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"locli": {
"command": "npx",
"args": [
"-y",
"@locli/cli",
"mcp"
],
"env": {
"LOCLI_TOKEN": "ใส่ค่าของคุณ",
"LOCLI_CONFIG": "ใส่ค่าของคุณ",
"LOCLI_API_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add locli --env LOCLI_TOKEN='ใส่ค่าของคุณ' --env LOCLI_CONFIG='ใส่ค่าของคุณ' --env LOCLI_API_URL='ใส่ค่าของคุณ' -- npx -y @locli/cli mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"locli": {
"command": "npx",
"args": [
"-y",
"@locli/cli",
"mcp"
],
"env": {
"LOCLI_TOKEN": "ใส่ค่าของคุณ",
"LOCLI_CONFIG": "ใส่ค่าของคุณ",
"LOCLI_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"locli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@locli/cli",
"mcp"
],
"env": {
"LOCLI_TOKEN": "ใส่ค่าของคุณ",
"LOCLI_CONFIG": "ใส่ค่าของคุณ",
"LOCLI_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
LOCLI_CONFIG envLOCLI_API_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub mariohahn ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: LOCLI_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.11) เข้า registry เมื่อวาน
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, AvaHR
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.
Read hiring data and create inactive assessment and questionnaire drafts for human review.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Put your app's user-facing texts into locli: push new texts, let a project owner approve a release, pull the approved translations. Built for coding agents, works for any stack: iOS String Catalogs, Android strings.xml, and JSON for web and backend. Node 18+, no dependencies.
npx @locli/cli init
init detects your text files and writes:
locli.json with the project slug, source language and one target per catalogAGENTS.md (and @AGENTS.md in an existing CLAUDE.md)--skill copies it to .agents/skills/locli/ (linked from .claude/skills/locli/)When you are logged in, init also creates the project with its languages and platforms. It is safe to rerun.
npx @locli/cli login
login opens the browser. You sign in, or create a free account, and approve the CLI. The token is stored per server in ~/.config/locli/credentials.json, readable only by you. In CI, set LOCLI_TOKEN instead. whoami shows the account; logout revokes the token.
receipt_import_title with a comment.npx @locli/cli push uploads only what locli lacks. It never overwrites existing texts. New keys from a Git feature branch are grouped as a feature.npx @locli/cli pull writes the latest approved release into your files.locli.json{
"project": "example-app", "sourceLanguage": "en", "targets": [ { "platform": "ios", "format": "xcstrings", "path": "App/Localizable.xcstrings" }, { "platform": "android", "format": "android-xml", "path": "app/src/main/res" }, { "platform": "web", "format": "json", "path": "messages/{locale}.json" } ] }
Every target has platform (ios, android, web or backend), format and path. Paths are relative to locli.json.
file; the default is strings.xml.{locale} in the path and take an optional keyPrefix.apiURL is optional; the default is https://locli.dev.The JSON schema is shipped as @locli/cli/schema/locli.json.
| Command | Effect | ||
|---|---|---|---|
login [--no-browser] / logout / whoami [--json] | Approve the CLI in the browser; revoke the token; show the account | ||
| `init [--name] [--slug] [--source LANG] [--target platform:format:path]… [--icon FILE \ | --no-icon] [--yes] [--no-agent-files]` | Detect catalogs, write the config and agent files, create the project and give it the app's icon | |
push [--dry-run] [--branch B] [--target platform] | Upload missing keys and values; never overwrites | ||
pull [--draft] [--release NAME] [--target platform] | Write the latest approved (or named) release | ||
status [--json] | Show languages, missing translations, open features, unreleased changes and glossary issues | ||
areas [--feature NAME] [--json] | List feature areas, or find the area a new feature's texts belong to | ||
context [--key KEY_OR_AREA] [--json] | Where each key is used in the code, as what (toolbar item, button, push notification …), and translations too long for it | ||
guide [--json] [--set FILE] | Show the translation guide (tone, glossary) and the texts that break it; --set replaces it | ||
keys normalize [--dry-run] [--no-code] | Rename dotted iOS/Android keys to lower_snake_case (adminDashboard.location → admin_dashboard_location) in locli, the String Catalog and the Swift code | ||
keys delete KEY… [--dry-run] [--json] | Delete keys that were never released, in locli and in every catalog from locli.json; released keys are refused and stay for the web editor | ||
| `community [--status S] [--locale CODE] [--accept ID \ | --reject ID \ | --hide ID]` | Suggestions from the project's public community catalog, the most voted first; accept, reject or hide one |
mcp | Start the MCP server on stdio |
Every command takes --api-url, --config and --help. Exit codes: 0 ok, 1 error, 2 usage error.
Environment variables:
LOCLI_TOKEN: the API token in CI.LOCLI_API_URL: the server.LOCLI_CONFIG: the path to locli.json.LOCLI_BRANCH: overrides the detected branch.The MCP server provides eleven tools:
locli_statuslocli_areaslocli_guidelocli_contextlocli_find_textslocli_add_textslocli_pushlocli_pulllocli_delete_keys (only keys that were never released)locli_community_suggestionslocli_community_reviewClaude Code: install the plugin (skill and MCP server in one), or add only the MCP server:
/plugin marketplace add mariohahn/locli
/plugin install locli@locli claude mcp add --scope project locli -- npx -y @locli/cli mcp
Cursor (.cursor/mcp.json) and other clients that use mcpServers:
{ "mcpServers": { "locli": { "command": "npx", "args": ["-y", "@locli/cli", "mcp"] } } }
Codex (~/.codex/config.toml):
[mcp_servers.locli]
command = "npx" args = ["-y", "@locli/cli", "mcp"]
, …) are skipped on push and left alone on pull.count or argN becomes a plural key. Other ICU messages are pushed as plain text.Agent guide: https://locli.dev/docs/agents.md · License: MIT