Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Typed answers with calibrated confidence for agents. Local-first, no API key.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
POORDJAEVIN_BACKENDต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"poordjaevin": {
"command": "uvx",
"args": [
"poordjaevin"
],
"env": {
"POORDJAEVIN_BACKEND": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add poordjaevin --env POORDJAEVIN_BACKEND='ใส่ค่าของคุณ' -- uvx poordjaevinเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"poordjaevin": {
"command": "uvx",
"args": [
"poordjaevin"
],
"env": {
"POORDJAEVIN_BACKEND": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"poordjaevin": {
"type": "stdio",
"command": "uvx",
"args": [
"poordjaevin"
],
"env": {
"POORDJAEVIN_BACKEND": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
POORDJAEVIN_BACKEND envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Icaro0310 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 32 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Filesystem 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.
Filesystem MCP server for AI assistants.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Part of the [DEVIN ecosystem](https://github.com/Icaro0310/awesome-devin)
Track: Control · Nature: product
For: AI engineers, QA engineers
Interface: CLI / Python library / MCP server / Bridge
Path: QA engineers · step 3/3 — after
devin-evals
devin-judgepoordjaevinawesome-devin · registry: devin-powerupspoordjaevin
Renamed (Oct 2026): this repository moved from Icaro0310/poordjaevin to Icaro0310/devin-judge . The PyPI package, console script and MCP registry name stay poordjaevin ; stars, issues and history are preserved by the redirect.
The poor man's Jev. An open source, local-first "System One" decision layer for LLM apps: typed decisions with provably calibrated confidence . No API key. No waitlist.
Community project. Not affiliated with, endorsed by, or sponsored by Cognition AI. "Devin" is a trademark of Cognition AI.
[Linux](README.linux.md) · [Personal Windows](README.windows.md) · [Corporate Windows](README.corporate-windows.md)
Part of the awesome-devin ecosystem: the curated hub for the devin-* tools.
Your model's `0.9` is a vibe. poordjaevin's `0.9` is a measurement.
Every LLM-in-JSON-mode hands you a confidence score and hopes you don't check it. poordjaevin checks it. On the shipped eval set it cuts calibration error (ECE) from 0.156 to 0.072 with zero loss of accuracy, and it runs on your laptop with no API key.
Left: raw confidences, overconfident. Right: calibrated, a stated 0.8 really is right about 80% of the time.
# Linux / macOS
pip install "poordjaevin[local]"
# Windows (PowerShell)
py -m pip install "poordjaevin[local]"
[local] pulls torch + transformers for the offline NLI backend. If you only plan to use the Devin ACP backend (poordjaevin serve default), a plain pip install poordjaevin is enough. To install the development version straight from GitHub, append @ git+https://github.com/Icaro0310/devin-judge.git to the package spec.
devin-judge is the new PyPI distribution name: pip install devin-judge and pip install poordjaevin install the same tool. The binary remains poordjaevin for historical compatibility, and a devin-judge command is provided as well.
from poordjaevin import Client, Choice, Score, Noul
client = Client() # local model, no key, offline after one download
result = client.ask( state="I've emailed three times and I'm STILL being double-charged. Cancel my account today.", questions={ "topic": Choice(["billing", "technical", "account", "shipping", "other"]), "frustration": Score(levels=["low", "medium", "high"]), "is_urgent": Noul("The customer needs a response today."), "wants_cancel": Noul("The customer wants to cancel their account."), }, )
result["topic"].value # "billing" always one of your options, by construction result["topic"].confidence # 0.86 calibrated, not a vibe result["frustration"].value # "high" result["is_urgent"].value # True result["wants_cancel"].value # True
One call, one model pass, four typed answers. No prompt engineering, no JSON parsing, no "the model returned prose."
poordjaevin ships an MCP server, so Devin (or any MCP client) can make fast, calibrated decisions as tools. The obvious use: gate a risky tool call before the agent runs it.
This mode needs nothing but Devin. The default backend (acp) talks to devin acp through a small packaged Node bridge, so every decision is scored by the model your Devin plan already provides, with automatic model rotation. No Ollama, no VM, no tunnel, no second API key: the bridge reads the same credentials.toml the Devin CLI uses.
# Devin users: no local model needed
uv tool install "poordjaevin[mcp]"
or with pipx (alternative):
pipx install "poordjaevin[mcp]"
Add it to your Devin MCP configuration:
{
"mcpServers": { "poordjaevin": { "command": "poordjaevin", "args": ["serve"] } } }
Requirements for the ACP backend: the devin CLI on PATH (or DEVIN_CLI_PATH), Node.js >= 18 on PATH, and valid Devin credentials at %APPDATA%\devin\credentials.toml (Windows) or ~/.local/share/devin/credentials.toml (Linux, override with DEVIN_CREDENTIALS_PATH).
Backend selection and tuning, all optional:
| Variable | Default | Meaning |
|---|---|---|
POORDJAEVIN_BACKEND | acp | acp = Devin's model via ACP, vscode-lm = VS Code's model via the LM API, nli = fully offline local model |
POORDJAEVIN_ACP_MODEL | auto | pin a specific Devin model instead of automatic rotation |
POORDJAEVIN_ACP_TIMEOUT | 120 | seconds per decision round trip |
POORDJAEVIN_ACP_MAX_COST | unset | fail closed when cumulative ACP cost exceeds this budget |
POORDJAEVIN_VSCODE_LM_ENDPOINT | auto | endpoint file path or direct http(s):// URL override |
POORDJAEVIN_VSCODE_LM_TIMEOUT | 120 | seconds per request to the extension endpoint |
POORDJAEVIN_VSCODE_LM_FALLBACK | unset | nli = fall back to the local model when the extension is unavailable |
POORDJAEVIN_ABSTAIN | off | on = abstain below the calibrated threshold instead of answering |
Honesty note: with acp and vscode-lm the confidence is self_report (the model's own stated probability, temperature-adjusted), not NLI logprobs. Every tool response carries a confidence_source field so callers never mistake one for the other, and model/cost are logged per call for quota monitoring.
The vscode-lm backend scores through whichever chat model VS Code is serving (Copilot, Codex, BYOK). vscode.lm only exists inside the extension host, so the icaro0310.judge extension serves a small localhost endpoint and advertises it via vscode-lm-endpoint.json in the platform data dir (next to djaevin_log.db). If the extension is not running the backend fails closed, or falls back to nli when POORDJAEVIN_VSCODE_LM_FALLBACK=nli.
No Devin on the machine? Use the offline path:
uv tool install "poordjaevin[local,mcp]"
or with pipx (alternative):
pipx install "poordjaevin[local,mcp]"
POORDJAEVIN_BACKEND=nli poordjaevin serve # ~400MB one-time model download, then offline
The server also works with Claude Code/Desktop (claude mcp add poordjaevin -- poordjaevin serve), same JSON config shape.
The agent then has these local tools:
| Tool | What it does |
|---|---|
gate(action) | guardrail: should this action be blocked (moves money, deletes data)? |
judge(text, statement) | a yes/no question, with calibrated P(true) |
classify(text, options) | pick one option, with calibrated confidence |
rate(text, levels) | an ordinal score (low / medium / high) |
decide(text, questions) | several typed questions at once, one pass |
Why this beats asking an LLM to judge: on the default NLI backend it is local (private), free (no tokens), fast, and the confidence is calibrated instead of made up. On acp or vscode-lm your scoring text goes to whichever model provider you picked; the confidence stays honestly labeled via confidence_source, calibrated when a matching calibrator is loaded and raw otherwise.
The repo ships a pre-commit hook that runs poordjaevin gate on an action file before every commit:
# .pre-commit-config.yaml (in the repo you want to protect)
rev: main hooks:
Setup is required: the hook fails closed. Without the action file every commit exits 2, so create it once:
mkdir -p .devin
echo "The risky action this commit performs." > .devin/judge-action.txt
Two details worth knowing: pre-commit appends args after the flag already embedded in entry, so repeat --action-file to override the default path. And the hook runs on every commit (always_run, pass_filenames: false), so it needs a working backend: the acp default, or POORDJAEVIN_BACKEND=nli with the local extra installed.
Most production AI work is not chat. It is fast structured decisions: route a ticket, classify an intent, score a sentiment, extract a field, gate a tool call. TypeSafe's Jev named this category ("System One" models) and nailed the thesis — and, per the independent cross-system benchmark below, it currently backs its calibration claims up: it's the strongest model measured here. It's also closed, hosted, and behind a waitlist.
poordjaevin exists for the deployments whe
ตัดมาแค่ช่วงต้น อ่านต่อใน repo