Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Jami
ภาพรวม
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Jami creator payouts for your agent: ETB checkouts, orders, payouts, webhooks. Powered by ArifPay.
สามเสาของ PopNx MCP
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
- เสียงผู้ใช้iยังไม่มีรีวิวรีวิวเปิดพร้อมระบบบัญชีในขั้นถัดไป
- ผลตรวจเบื้องต้นของเราiผ่าน 1 จาก 1 ข้อตรวจจากข้อมูลที่เปิดอยู่ ยังไม่ได้สแกนโค้ด
- การใช้งานiยังไม่ได้วัด★ –
ใช้ทำอะไรได้
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
- การเชื่อมต่อ: รันบนเครื่อง
- ช่องทาง (transport): stdio
- หมวด: ร้านค้าออนไลน์และรับเงิน
- ต้องใส่ค่าเหล่านี้: JAMI_TOKEN, JAMI_WEBHOOK_SECRET
ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ก่อนติดตั้ง
- ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
- รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
- ค่าที่คุณต้องใส่เอง:
JAMI_TOKEN,JAMI_WEBHOOK_SECRET
ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
- npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"jami": {
"command": "npx",
"args": [
"-y",
"jami-mcp"
],
"env": {
"JAMI_TOKEN": "ใส่ค่าของคุณ",
"JAMI_WEBHOOK_SECRET": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add jami --env JAMI_TOKEN='ใส่ค่าของคุณ' --env JAMI_WEBHOOK_SECRET='ใส่ค่าของคุณ' -- npx -y jami-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
หรือคัดลอกค่าตั้งเอง
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"jami": {
"command": "npx",
"args": [
"-y",
"jami-mcp"
],
"env": {
"JAMI_TOKEN": "ใส่ค่าของคุณ",
"JAMI_WEBHOOK_SECRET": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
หรือคัดลอกค่าตั้งเอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"jami": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"jami-mcp"
],
"env": {
"JAMI_TOKEN": "ใส่ค่าของคุณ",
"JAMI_WEBHOOK_SECRET": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าที่ต้องใส่เอง
- JamiDev API token (jamidev_test_… for sandbox, jamidev_live_… for production). Optional: docs and offline tools work without it.
- Default webhook subscription secret for the webhook tools.
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub kenawak ซึ่งเป็นเจ้าของ repo
- … ยังไม่ตรวจ
ยังมีคนดูแล
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
- … ยังไม่ตรวจ
มีสัญญาอนุญาต (license)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับตัวอื่นในหมวด ร้านค้าออนไลน์และรับเงินi
- ดาวมากกว่า 0% ของอีก 1759 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 70% ของอีก 1759 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1759 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
Jami ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
ต้องใส่ค่าเหล่านี้: JAMI_TOKEN, JAMI_WEBHOOK_SECRET
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.0) เข้า registry 13 วันที่ผ่านมา
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
มีตัวไหนใช้แทนได้บ้าง?
ในหมวดเดียวกันมี Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
ตัวที่ใช้แทนได้
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Stripe MCP
server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
jami-mcp
The official Model Context Protocol server for JamiDev, the SDK for Jami's creator payouts. Connect it to Claude, Cursor, VS Code, Codex or any MCP client and your agent can create ETB checkouts, watch them settle, reconcile orders, preview and send payouts, debug webhooks, and read the Jami docs while it writes your integration. Payments are processed by ArifPay.
Built on the official jami-sdk, so every tool behaves exactly like the SDK and the REST API.
npx -y jami-mcp
Quick start
- Get a token: Jami dashboard → JamiDev → Developer → API Tokens. Start with a sandbox org — its
jamidev_test_…token moves no real money. - Add the server to your client (below), with the token as
JAMI_TOKEN. - Ask: *"Charge buyer@example.com 1,237 birr for order #1042 on Telebirr, phone 251900000001, and wait for it."*
No token yet? The server still runs. The docs, withdrawal-quote and webhook tools work without one, so you can start building right away.
Claude Code
claude mcp add jami -e JAMI_TOKEN=jamidev_test_xxx -- npx -y jami-mcp
Claude Desktop · Cursor · Windsurf
Add to claude_desktop_config.json, ~/.cursor/mcp.json or ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": { "jami": { "command": "npx", "args": ["-y", "jami-mcp"], "env": { "JAMI_TOKEN": "jamidev_test_xxx" } } } }
VS Code
.vscode/mcp.json — VS Code prompts for the token and stores it securely:
{
"inputs": [ { "type": "promptString", "id": "jami-token", "description": "JamiDev API token", "password": true } ], "servers": { "jami": { "type": "stdio", "command": "npx", "args": ["-y", "jami-mcp"], "env": { "JAMI_TOKEN": "${input:jami-token}" } } } }
Codex
~/.codex/config.toml:
[mcp_servers.jami]
command = "npx" args = ["-y", "jami-mcp"] env = { JAMI_TOKEN = "jamidev_test_xxx" }
Tools
| Tool | What it does | Needs token |
|---|---|---|
jami_create_checkout | Charge a product (p_… token or id) or any amount (amount_minor + description). With gateway: pushes the prompt to the buyer's phone. Without: returns a Jami payment link to send them. | ✓ |
jami_create_product · jami_update_product | Create or edit products; each comes back with its public page and p_… token. | ✓ |
jami_get_product · jami_list_products | Read the catalog. | ✓ |
jami_get_checkout_status | Check a session once, with the failure reason when it expired. | ✓ |
jami_wait_for_checkout | Wait for the buyer to finish, with progress updates. Never hangs: returns open at the timeout. | ✓ |
jami_list_orders | Orders, newest first, paginated and filterable by status. | ✓ |
jami_get_balance | Withdrawable earnings and whether the org can withdraw. | ✓ |
jami_quote_withdrawal | Fee, tax and net for an amount, plus auto-pay and cap checks. Offline. | — |
jami_create_withdrawal | Pay out to Telebirr, M-Pesa or CBE Birr. Opt-in (see Safety). | ✓ |
jami_get_withdrawal · jami_list_withdrawals | Track payouts. | ✓ |
jami_verify_webhook | Check a captured delivery's signature, and why it fails. | — |
jami_create_test_webhook | Build a correctly signed test event, and optionally POST it to your local handler. | — |
jami_search_docs · jami_read_doc | Search and read the live docs at dev.jami.bio. | — |
Every tool returns a readable markdown summary plus typed structuredContent. Pass response_format: "json" for the raw payload. Money is always integer santim, and every parameter that takes money ends in _minor: amount_minor: 15000 = 150.00 ETB.
Prompts: integrate_jami (build a full integration in your stack), go_live_checklist, debug_payment. Resource: jami://reference — fees, limits, sandbox numbers, failure codes and webhook rules in one page.
Safety
The defaults are set so an agent can't move money by accident.
- Withdrawals are off until you start the server with
--enable-withdrawals(orJAMI_ENABLE_WITHDRAWALS=true). When they're on, clients that support elicitation ask you to confirm each payout, and every payout needs anidempotency_key, so a retry can never pay twice. Sandbox tokens are refused before any request is made. - `--read-only` registers only the tools that read data. Use it for reporting agents.
- Live mode is announced. With a
jamidev_live_token, the server tells the agent that checkouts charge real buyers and to confirm first. - Tokens stay in the environment. They never appear in tool output.
Options
--http Streamable HTTP on POST /mcp instead of stdio
--port HTTP port (default 3333) --host HTTP bind address (default 127.0.0.1) --read-only Only read tools --enable-withdrawals Register jami_create_withdrawal --base-url Override the API base (default https://jami.bio/api/jamidev) --docs-url Override the docs origin (default https://dev.jami.bio)
| Env | Purpose |
|---|---|
JAMI_TOKEN | jamidev_test_… or jamidev_live_… |
JAMI_WEBHOOK_SECRET | Default secret for the webhook tools |
JAMI_READ_ONLY, JAMI_ENABLE_WITHDRAWALS | Same as the flags |
Remote (HTTP) mode
npx -y jami-mcp --http --port 3333
→ http://127.0.0.1:3333/mcp (health check: /healthz)
The HTTP server is stateless, so any number of clients can share one process. Without JAMI_TOKEN, each request authenticates with its own Authorization: Bearer jamidev_… header, which makes one deployment safe to share across teams. On loopback it rejects foreign Host headers (DNS-rebinding protection). In HTTP mode, jami_create_test_webhook never sends requests; it only returns the signed payload and a curl command.
Embedding
import { createJamiServer } from 'jami-mcp';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = createJamiServer({ token: process.env.JAMI_TOKEN, docsUrl: 'https://dev.jami.bio', readOnly: true, withdrawals: false }); await server.connect(new StdioServerTransport());
Development
npm install
npm test # in-memory MCP client against a mocked API npm run build npm run inspect # opens the MCP Inspector on dist/index.js
Full guide: dev.jami.bio/docs/mcp · Support: support@jami.bio
MIT © Jami