Spree Commerce: open-source B2B and marketplace ecommerce
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Install-script inventory for a dependency tree: what runs when you install.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"installaudit": {
"command": "npx",
"args": [
"-y",
"@reneturcios/installaudit",
"mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add installaudit -- npx -y @reneturcios/installaudit mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"installaudit": {
"command": "npx",
"args": [
"-y",
"@reneturcios/installaudit",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"installaudit": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/installaudit",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub CloudCorpRecords ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.0) เข้า registry 8 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js, Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Installing is running code. installaudit tells you whose code, before you install.
npm install does not just download files. Any package whose lockfile entry carries hasInstallScript: true runs code at install time, and so do the root package's own preinstall, install, postinstall, and prepare scripts. Most audits ask whether a dependency is vulnerable. installaudit asks a prior question: what executes the moment you install this tree?
It reads package.json and package-lock.json, inventories every install script in the tree, separates direct dependencies from transitive ones, classifies the root scripts by what they do, and returns a verdict. It never installs anything, never runs a script, and never fetches a package.
npx @reneturcios/installaudit audit
Or install it globally, or add it as an MCP server (below).
# Audit the current directory
npx @reneturcios/installaudit audit
npx @reneturcios/installaudit audit ~/src/my-repo
npx @reneturcios/installaudit audit ~/src/my-repo --json
npx @reneturcios/installaudit mcp
npx @reneturcios/installaudit --version
Exit codes:
0 when the verdict is CLEAN.1 when the verdict is REVIEW.2 for usage errors, including a missing package.json or a missing package-lock.json.141 when the reader closed the output pipe early.Add to your MCP client config:
{
"mcpServers": { "installaudit": { "command": "npx", "args": ["-y", "@reneturcios/installaudit", "mcp"] } } }
Tool: audit_install_scripts, taking a path argument. It returns the full report as JSON: verdict, counts, and findings.
Dependencies come from the lockfile, not from package.json alone, because the lockfile is the resolved tree that will actually be installed.
packages object maps install paths such as node_modules/ to entries.hasInstallScript: true runs code at install time and becomes a finding.node_modules/ segment of the path. Scoped names take two segments: node_modules/@scope/name is @scope/name, and node_modules/a/node_modules/@scope/name is also @scope/name.node_modules segment and its name is listed in the root package.json under dependencies or devDependencies. Everything else is transitive, including a nested copy whose name happens to match a direct dependency.version and the dev flag are read from the lockfile entry and reported with the finding.Root scripts come from package.json. Only preinstall, install, postinstall, and prepare are read, because those are the scripts npm runs around install. Each one present is a finding, classified from its command body.
| rule | severity | what it means |
|---|---|---|
DEP-INSTALL-SCRIPT | medium (direct), low (transitive) | A dependency whose lockfile entry has hasInstallScript: true. Evidence is name@version. |
ROOT-SCRIPT-NETWORK | high | A root lifecycle script classified as NETWORK. |
ROOT-SCRIPT-SHELL-OUT | medium | A root lifecycle script classified as SHELL-OUT. |
ROOT-SCRIPT-BUILD | low | A root lifecycle script classified as BUILD. |
ROOT-SCRIPT-OTHER | info | A root lifecycle script classified as OTHER. |
Root script classification uses simple, documented patterns, checked in this priority order: NETWORK first, then SHELL-OUT, then BUILD, then OTHER.
| class | patterns |
|---|---|
| NETWORK | curl or wget, or an http:// or https:// URL combined with a fetch or download tool word (fetch, download, curl, wget). |
| SHELL-OUT | A shell interpreter word (sh, bash, zsh), node -e, or a script interpreter word (python, python3, perl, ruby). |
| BUILD | tsc, npm run build (also pnpm, yarn, and bun), or a build tool name (webpack, vite, rollup, esbuild, parcel, gulp, grunt, babel). |
| OTHER | Anything else. |
Counts reported in every report:
totalDeps: every dependency entry found in the lockfile packages object, excluding the root entry.depsWithScripts: entries with hasInstallScript: true.directWithScripts: the direct subset of depsWithScripts.transitiveWithScripts: the transitive subset of depsWithScripts.rootScripts: root lifecycle scripts present among preinstall, install, postinstall, and prepare.findings: total findings.Findings are sorted deterministically by rule, then by name. Reports contain no timestamps, so the same tree always produces the same report.
CLEAN: no root NETWORK or SHELL-OUT scripts, and no dependency install scripts. A root BUILD or OTHER script alone still verdicts CLEAN; it is reported as a low or info finding, not hidden.REVIEW: anything else. At least one thing in this tree runs code at install time that is worth a human look.package-lock.json is an error (exit 2), not an empty report, because without the lockfile there is no resolved tree to inventory. A missing package.json is likewise an error.package.json; it does not follow a script into the files it invokes, expand variables, or trace what a downloaded file would do.packages object. The legacy lockfile v1 dependencies object is not read, so a v1 lockfile is an error rather than a half inventory.test or start, are out of scope even when their commands look risky.dependencies or devDependencies of the root package.json. A dependency that is only reachable through the tree is transitive by definition here, regardless of who maintains it.