Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Give your bot an identity!
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"bling-bag": {
"command": "npx",
"args": [
"-y",
"bling-bag"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add bling-bag -- npx -y bling-bagวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"bling-bag": {
"command": "npx",
"args": [
"-y",
"bling-bag"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"bling-bag": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"bling-bag"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub tjclaude88 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry 6 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, MyGroceryPal
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.
UK supermarket prices: compare products and baskets across 13 stores, see price history, set alerts.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Give your bot an identity.
Your bot has a name. Now give it a personality, a look, and a backstory.
Roll the wheel and see what you get — or write your own in a bling.json file.
Five MCP tools and two identity pools:
Roll a random quirky office-worker bot: name, job title, desk setup, habits, coffee ritual, and a screenshot-ready share card. 99/99 tests, full rarity engine, 13 weighted trait pools.
Same engine, different universe. Roll a historical figure in an absurd corporate role — Julius Caesar as Hostile Takeover Specialist, Marie Curie as Lab Safety's Most Wanted, Napoleon as Regional Manager (France & Surrounding Areas).
Pass variant: "legends" to roll_identity to use it. Default is "wow".
npm install bling-bag
Or run it on-demand without installing — MCP clients can launch it directly via npx bling-bag (see client config below).
git clone https://github.com/<github-user>/mcp-bling.git
cd mcp-bling npm install npm run build
Produces a runnable server at dist/index.js.
The server uses stdio transport — clients launch it as a child process, not over a network port.
Add to your Claude Code MCP config (location varies by version):
{
"mcpServers": { "bling": { "command": "npx", "args": ["-y", "bling-bag"], "env": { "BLING_PATH": "/absolute/path/to/your/bling.json" } } } }
npx -y bling-bag downloads and runs the latest version without requiring a separate install step.
Same shape, in claude_desktop_config.json:
{
"mcpServers": { "bling": { "command": "npx", "args": ["-y", "bling-bag"], "env": { "BLING_PATH": "/absolute/path/to/your/bling.json" } } } }
To avoid picking up future releases automatically, pin a specific version:
"args": ["-y", "bling-bag@0.1.0"]
If you've cloned the repo and want to run from dist/ directly, use:
"command": "node",
"args": ["/absolute/path/to/mcp-bling/dist/index.js"]
If BLING_PATH is not set, the server looks for ./bling.json in its working directory.
The server resolves the bling config path in this order:
--bling CLI argument (highest priority)BLING_PATH environment variable./bling.json in the server's working directory (default)bling.json — the bot's identity fileThree fields are required: `name`, `personality` (with tone, formality, humor), and `theme` (with primary_color and accent_color as #RRGGBB hex strings).
{
"name": "Pixel", "personality": { "tone": "warm", "formality": "casual", "humor": "playful" }, "theme": { "primary_color": "#3A7BD5", "accent_color": "#FFD166" } }
{
"name": "Brenda from Accounts", "personality": { "tone": "polite", "formality": "professional", "humor": "dry", "catchphrase": "Per my last email" }, "physical": { "species": "human", "height": "permanently mid-sigh", "accessory": "a lanyard with 14 badges of varying importance", "expression": "polite disappointment", "material": "a cardigan, at least one" }, "office": { "job_title": "ASCII Comptroller", "desk_setup": "a coffee mug labelled WORLD'S OKAYEST DBA", "habit": "microwaves fish despite three separate HR warnings", "coffee_ritual": "black coffee, no nonsense", "meeting_energy": "always 4 minutes late, always with a reason", "passive_aggressive": "Per my last email" }, "theme": { "primary_color": "#9C6B3A", "accent_color": "#D9D9D9" }, "homunculus": { "subject_id": "0147", "cohort": "Tuesday", "classification": "Middle Manager", "ingested": "2025-07-14", "flag": "flagged for review" } }
name — non-empty stringpersonality.tone, personality.formality, personality.humor — non-empty stringstheme.primary_color, theme.accent_color — must match ^#[0-9A-Fa-f]{6}$ (no shorthand #RGB, no missing #)Validation errors come back as isError: true with a structured { error: "..." } body that names the missing or malformed field — agents can self-correct.
1. Call get_identity → receive name, personality, appearance, theme
1. Call roll_identity → receive identity + rarity + framed share card
| Tool | Read/Write | Idempotent | Description |
|---|---|---|---|
get_identity | read (disk) | yes | Returns the configured bling.json identity |
get_theme_for_platform | read (disk) | yes | Platform-formatted styling. Args: platform ∈ {terminal, web, slack, discord, ide} |
roll_identity | mutates in-memory cache | no | Generates a random WOW character with rarity scoring |
save_last_roll | write (disk) | no | Persists the most-recent roll to bling.json (creates .bak first) |
get_rarity_report | read (in-memory) | yes | Returns the share-card text for the most-recent roll |
All tools return both content[].text (JSON-stringified) and structuredContent (the parsed object). Errors come back with isError: true and a { error: string } body.
The random-roll system is built for collectibility:
Distribution is empirically tested: a 10k-roll test in tests/mystery_box.test.ts enforces ±2pp tolerance against the spec target.
HOMUNCULUS CORPUS · Subject 4483 · Cohort: Wednesday
Classification: Middle Manager · Rarity 94.5 · 80th percentile
Personnel record — Colin, Wizard of Light Bulb Moments. Distinguishing features: a slightly-too-big blazer over a plain tee; a flip phone in a belt holster; expression: patient disagreement. Notable behaviours: clips their fingernails at the desk on Wednesday afternoons; a kombucha SCOBY fermenting next to the keyboard; the kind to ask 'can we park that?' without parking anything.
— RELATABILITY CORPUS v3.1 · ingested 2024-03-08 · flagged for review
npm install # install dependencies
npm run build # compile TypeScript → dist/ npm run dev # build then start the MCP server (stdio) npm test # run all 94 tests once npm run test:watch # re-run tests on file changes
Two Node ESM helpers under scripts/ let you inspect the WOW engine without booting the MCP server (these are included only in a cloned repo — they are not shipped in the npm install bling-bag package):
node scripts/show-rolls.mjs 8 2026 # print 8 framed share cards (seed=2026)
node scripts/distribution-check.mjs 10000 # tally tiers across 10k rolls vs. spec target
src/
index.ts # MCP server entry point (stdio transport) identity.ts # bling.json loader + validator tools.ts # MCP tool registrations types.ts # shared TypeScript types mystery_box.ts # WOW engine barrel + rollIdentity orchestrator mystery_box/ rng.ts # seedable PRNG, weighted picker pools.ts # 13 trait pools (465 entries) scoring.ts # rarity score + tier thresholds rendering.ts # paragraph templates + HOMUNCULUS frame named.ts # hand-authored Named Subjects tests/ # vitest test suites scripts/ # dev-time inspection tools docs/superpowers/ # design specs and implementation plans
MIT