Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
134 paid APIs as MCP tools, billed per call in USDC on Base. No account, no login.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
HALOWERK_PRIVATE_KEY, HALOWERK_MAX_PREIS_USDC, HALOWERK_BUDGET_USDC, HALOWERK_MODUS, HALOWERK_TROCKENค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"halowerk": {
"command": "npx",
"args": [
"-y",
"halowerk-mcp"
],
"env": {
"HALOWERK_PRIVATE_KEY": "ใส่ค่าของคุณ",
"HALOWERK_MAX_PREIS_USDC": "ใส่ค่าของคุณ",
"HALOWERK_BUDGET_USDC": "ใส่ค่าของคุณ",
"HALOWERK_MODUS": "ใส่ค่าของคุณ",
"HALOWERK_TROCKEN": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add halowerk --env HALOWERK_PRIVATE_KEY='ใส่ค่าของคุณ' --env HALOWERK_MAX_PREIS_USDC='ใส่ค่าของคุณ' --env HALOWERK_BUDGET_USDC='ใส่ค่าของคุณ' --env HALOWERK_MODUS='ใส่ค่าของคุณ' --env HALOWERK_TROCKEN='ใส่ค่าของคุณ' -- npx -y halowerk-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"halowerk": {
"command": "npx",
"args": [
"-y",
"halowerk-mcp"
],
"env": {
"HALOWERK_PRIVATE_KEY": "ใส่ค่าของคุณ",
"HALOWERK_MAX_PREIS_USDC": "ใส่ค่าของคุณ",
"HALOWERK_BUDGET_USDC": "ใส่ค่าของคุณ",
"HALOWERK_MODUS": "ใส่ค่าของคุณ",
"HALOWERK_TROCKEN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"halowerk": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"halowerk-mcp"
],
"env": {
"HALOWERK_PRIVATE_KEY": "ใส่ค่าของคุณ",
"HALOWERK_MAX_PREIS_USDC": "ใส่ค่าของคุณ",
"HALOWERK_BUDGET_USDC": "ใส่ค่าของคุณ",
"HALOWERK_MODUS": "ใส่ค่าของคุณ",
"HALOWERK_TROCKEN": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
HALOWERK_MAX_PREIS_USDC envHALOWERK_BUDGET_USDC envHALOWERK_MODUS envHALOWERK_TROCKEN envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub halowerk ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: HALOWERK_PRIVATE_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, dotnet-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.
MCP server for .NET symbols, XAML, source generators, and restricted workspace edit
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
70 paid APIs as MCP tools. No account, no login, no subscription — a throwaway wallet with a few dollars is enough.
Your spend is capped before anything is signed:
| Variable | Default | What it does |
|---|---|---|
HALOWERK_MAX_PREIS_USDC | 0.05 | Ceiling per call. A more expensive service is refused, not silently bought. |
HALOWERK_BUDGET_USDC | 1.00 | Ceiling per session. Once reached, the server refuses further calls. |
HALOWERK_TROCKEN | off | Dry run: returns the price and the call plan, pays nothing. |
Every paid answer carries bezahlt_usdc, budget_rest_usdc and the transaction hash, so the model and you see the same numbers.
Two tools work with no wallet and cost nothing: halowerk_katalog lists every service with its price, and halowerk_preis tells you what a planned call would cost. Install it, browse, decide later.
{
"mcpServers": { "halowerk": { "command": "npx", "args": ["-y", "halowerk-mcp"] } } }
That goes in your Claude Desktop config (claude_desktop_config.json), Cursor's mcp.json, or Cline's MCP settings.
{
"mcpServers": { "halowerk": { "command": "npx", "args": ["-y", "halowerk-mcp"], "env": { "HALOWERK_PRIVATE_KEY": "0x…", "HALOWERK_MAX_PREIS_USDC": "0.05", "HALOWERK_BUDGET_USDC": "1.00" } } } }
Payment is x402 with USDC on Base. There is no account to create, no card, no invoice: the call carries a signed authorisation for the exact amount, and the service settles it.
Create a fresh wallet, put a few dollars of USDC on it, use it for nothing else.
Not because this package is untrustworthy — because you have no reason to trust it yet. A key in an MCP config is a key that a model-driven process can reach. The way to make that safe is not to trust the code but to make the blast radius small: if the wallet holds three dollars, three dollars is the worst case.
You do not need ETH for gas. Payment uses EIP-3009 transferWithAuthorization, so a third party submits the transaction. A balance of exactly 0 ETH is normal and correct.
HALOWERK_PRIVATE_KEY and from nowhere else — no file, no argument, no prompt.npm run pruefe searches the entire output for the first eight characters of a key and fails if it finds them.src/x402.ts is about 300 lines and is the only file that touches it. It is meant to be read in five minutes.The server only ever pays the ten hosts baked into the catalogue at build time. The list is frozen in the package; it cannot be extended by a file, an environment variable or a tool argument.
This is the point of the whole design. A tool that accepts an arbitrary URL and pays for it is a payment instruction with a blank payee field. A model that reads a web page, a PDF or an email can be told, by that text, to call such a tool with an attacker's address. So:
halowerk.com.attacker.example passes any endsWith check and is a different host.https only. Redirects are not followed: a 301 to a foreign host is the attack, not an inconvenience.localhost, no private ranges.halowerk_rufe_auf takes a *tool name from the catalogue*, never a URL.
Seventy tools at once makes the tool picker worse for everybody, especially if you have other MCP servers connected. So:
HALOWERK_MODUS | Tools | For |
|---|---|---|
hero (default) | 12 services + the 2 free ones | Everyday use |
gateway | 3 meta-tools + the 2 free ones | Minimal context; two extra round trips |
all | 70 services + the 2 free ones | You know what you want |
In gateway mode: halowerk_suche finds a service by description, halowerk_beschreibe returns its input schema, halowerk_rufe_auf executes it.
One measure only: what does an agent need more than once in the same task? A tool used once per session can be looked up; one used ten times belongs in the toolbox. All twelve are also text in, text out — in a chat window, a tool that needs a file upload first is close to unusable.
| Tool | Repeats because |
|---|---|
cost_estimate | before every model call |
output_validate | after every model answer |
tool_arg_validate | before every expensive or irreversible call |
state_store | across every step of a long task |
cve_check | per dependency list, and you look at it more than once |
license_check | same audit, per package set |
tls_chain | per host in an infrastructure check |
jwt_verify | per token while debugging auth |
webhook_signature | per webhook while debugging an integration |
doc_diff | per file pair in a review |
web_archive | per URL in a research task |
invoice_audit | per invoice in a batch |
Some services bill per unit: per audio minute, per 1000 characters, per sample point. For those, price_usdc is only the minimum.
The budget check therefore uses max_usdc, the ceiling. Checking against the minimum would approve 0.006 and pay 0.25 — the endpoint bills by length, and the length is in the request body, not in the catalogue.
If a service has no ceiling at all, it counts as unbounded and is not called without unbegrenzt_erlauben: true. A budget that checks against an unknown amount is not a budget.
npm run katalog # regenerate katalog.json from the live services
npm run build # compile TypeScript npm run pruefe # modes, spending brakes, attack tests, key-leak test
katalog.json is generated. Never edit it by hand — regenerate and republish, otherwise the package promises a price the service does not charge.
MIT. See LICENSE.