Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
One MCP endpoint for all your servers: a few meta-tools, Keychain secrets, sandbox, audit, OAuth.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน soflution.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (5.11.0) เข้า registry 6 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี MCPB ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Recta
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.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
McpHub sits between your AI editors and all your MCP servers.
Your agents see 3 tools instead of hundreds , every call goes through the same security guards ,
and your servers run once, sandboxed , shared by Cursor, Claude, Windsurf and VS Code.
Install · Connect your editor · How it works · Code mode · Security · Dashboard · Library · Linux and sync · Configuration · FAQ
-99.9% tokens spent on tool definitions 1,054,593 → 918 on a 928-tool setup 1 process for every editor servers start once, survive editor restarts 8 layers of security Keychain, pinning, sandbox, audit... 0 runtime dependencies a single signed Rust binary
| Each server wired into each editor | Through McpHub | |
|---|---|---|
| Tool definitions in every prompt | all of them (hundreds of thousands of tokens) | 3 tools, schemas loaded on demand |
| Server processes | one copy per editor | one shared copy |
| Secrets | plain text in every editor config | macOS Keychain, ${NAME} references |
| A server silently changes a tool | nobody notices | quarantined until you approve |
A malicious npm server reads ~/.ssh | it can | blocked by the macOS sandbox |
| Remote servers with OAuth | one mcp-remote process each, tokens in plain files | native HTTP, tokens in the Keychain, auto refresh |
| Who called what | unknown | audit log with redacted arguments |
| Finding a new server | search GitHub, copy a JSON snippet, paste a token | Library of the official MCP Registry: trust score, one-click add, secrets straight to the Keychain |
| Your agent needs a tool you lack | you install it by hand | the agent installs it itself from the registry, sandboxed, if it is trusted enough |
| A second machine, a Linux server | redo everything, copy tokens around | same binary, bubblewrap sandbox, encrypted sync of servers and secrets |
curl -fsSL https://raw.githubusercontent.com/Soflutionltd/McpHub/main/get.sh | bash
The script downloads the latest binary for your machine (signed universal binary on macOS, x64 or arm64 on Linux), verifies its SHA-256 checksum and installs it to ~/.local/bin/McpHub. Then:
McpHub dashboard # Library tab: add servers from the official MCP Registry (or McpHub add)
McpHub generate # index every tool once McpHub install # start the daemon at login (LaunchAgent on macOS, systemd --user on Linux)
Manual download
McpHub-macos-universal.tar.gz and its checksum.shasum -a 256 -c McpHub-macos-universal.tar.gz.sha256tar -xzf McpHub-macos-universal.tar.gz && install -m 755 McpHub ~/.local/bin/McpHubxattr -d com.apple.quarantine ~/.local/bin/McpHubLinux (amd64, arm64) and Windows (amd64) archives are attached to every release too. On Linux the sandbox uses bubblewrap and secrets live in ~/.McpHub/secrets.env (mode 600, hidden from sandboxed servers), see Linux servers and sync. Windows has no sandbox.
Build from source
git clone https://github.com/Soflutionltd/McpHub.git
cd McpHub make install # cargo build --release, install, sign
make install signs with your Developer ID certificate when one is present, so macOS keeps its permissions from one version to the next. Linux and Windows build from source (cargo build --release); the macOS sandbox and Keychain features are macOS only.
Once the daemon runs (McpHub install), McpHub keeps itself up to date. Editors connected by URL (Cursor, Claude Code, VS Code, Windsurf) need nothing: they talk to the updated daemon.
latest.json (version and SHA-256 of each file) signed with minisign; the public key is compiled into McpHub. On macOS the new binary must also carry Soflution's Developer ID signature. Anything else is refused."settings": { "autoUpdate": false } turns it off; McpHub update installs the latest release right away, McpHub update --check only reports it. Development builds and named instances never update themselves (the main instance updates the shared binary).mcphub.mcpb uses the installed McpHub when there is one, so it follows the same updates; otherwise it runs the binary it ships with.The daemon listens on http://127.0.0.1:24680. Your token is in ~/.McpHub/auth-token.
Cursor , ~/.cursor/mcp.json
{
"mcpServers": { "McpHub": { "url": "http://127.0.0.1:24680/mcp", "headers": { "Authorization": "Bearer " } } } }
Claude Code
claude mcp add --transport http mcphub http://127.0.0.1:24680/mcp \
--header "Authorization: Bearer $(cat ~/.McpHub/auth-token)"
Claude Desktop , claude_desktop_config.json
{
"mcpServers": { "McpHub": { "command": "/Users/you/.local/bin/McpHub", "args": ["stdio"] } } }
VS Code , .vscode/mcp.json
{
"servers": { "mcphub": { "type": "http", "url": "http://127.0.0.1:24680/mcp", "headers": { "Authorization": "Bearer " } } } }
Windsurf and other SSE clients
Use http://127.0.0.1:24680/sse with the same Authorization header.
One profile per client. Give each editor its own view: http://127.0.0.1:24680/mcp/cursor only shows what the cursor profile allows (see Profiles).
client/ is a small Node MCP server that sits between your editor and the daemon. It talks to the running daemon (SSE, token from ~/.McpHub/auth-token) and falls back to McpHub stdio. It exposes six tools:
mcphub_bootstrap: call once per conversation. Resolves the project from the workspace, returns its aliases and allowed servers, and recalls compact MemoryPilot context, also for folders without a project entry.mcphub_search, mcphub_call: same as the daemon, plus suggestions on a misspelled tool or server, and the input schema on argument errors.mcphub_batch: up to 20 independent calls in one round-trip.mcphub_status, mcphub_savings: server health and an honest context-size comparison.Per-project policy lives in ~/.McpHub/projects.json (or the path in MCPHUB_PROJECTS), see client/projects.example.json. For a workspace listed there, only its allowedServers are reachable, and a call aimed at another Supabase project, App Store app or Cloudflare project is refused. Without the file there is no policy; an unreadable file is an error, never silently ignored.
Each release ships the client as a single file, mcphub-client.mjs, which the daemon keeps up to date in ~/.McpHub/client/ (Node 20 or later, no npm install). Editors pick up a new version the next time they start the server:
{
"mcpServers": { "McpHub": { "command": "node", "args": ["/Users/you/.McpHub/client/mcphub-client.mjs"] } } }
From a clone instead: cd client && npm ci, then point args at /path/to/McpHub/client/index.js.
npm test runs smoke tests against the local daemon (MemoryPilot and supabase configured), with a throwaway project file.
Connecting to a client's Stripe (or Supabase, Cloudflare…) should not log you out of your own, and your own agent should never reach theirs by mistake. Two levels, from light to strict:
1. Client-owned servers (same McpHub). Add the client's server under its own name (stripe-acme, with its own OAuth token or restricted key, since tokens are stored per server name) and list it in the client project's ownedServers:
"acme": {
"workspaces": ["/Users/you/Clients/Acme"], "aliases": { "product": "Acme" }, "allowedServers": ["MemoryPilot", "context7"], "ownedServers": ["stripe-acme"] }
An owned server only answers, appears in mcphub_search and in mcphub_status when working_dir is inside that client's workspace; the project argument alone is not enough. A server owned by two projects is a start-up error. This guard lives in the Node client: an editor connected straight to the daemon still sees every server, so give it a profile with "excludeServers": ["*-acme"].
2. A separate instance (nothing shared). For clients who require it, run a second McpHub with its own folder, port, Keychain service, auth token and LaunchAgent:
export MCPHUB_INSTANCE=acme MCPHUB_PORT=24690
McpHub add # writes ~/.McpHub-acme/config.json McpHub oauth login stripe # token stored under Keychain service McpHub-acme McpHub install # Launc
ตัดมาแค่ช่วงต้น อ่านต่อใน repo