mcpField
J
Jami

Jami

本地服务
dev.jami.bio金融数据05 天前更新

关于 Jami

Jami 是 JamiDev 的官方 MCP 服务,让 Agent 能处理创作者付款并将 Jami 集成到应用中。它提供结账、订单、提现、Webhook 和文档工具,且默认禁用提现。

主要功能

  1. 01创建并跟踪 ETB 结账
  2. 02管理产品和订单
  3. 03预览并跟踪提现
  4. 04验证和生成 Webhook 事件
  5. 05搜索并阅读 Jami 文档

适用场景

  1. 01构建 Jami 付款集成
  2. 02核对订单和结账状态
  3. 03估算提现费用与到账金额
  4. 04排查 Webhook 签名和投递问题

MCP 相关

向 MCP 客户端提供 JamiDev 的付款、订单、提现、Webhook 和文档工具,以及提示词和参考资源。支持 stdio 与 Streamable HTTP 传输;提现需显式启用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"kenawak-jami": {
"command": "npx",
"args": [
"-y",
"jami-mcp"
],
"env": {
"JAMI_TOKEN": "<JAMI_TOKEN>",
"JAMI_WEBHOOK_SECRET": "<JAMI_WEBHOOK_SECRET>"
}
}
}
}
启动命令npx -y jami-mcp
需要配置的环境变量
JAMI_TOKEN密钥JamiDev API token (jamidev_test_… for sandbox, jamidev_live_… for production). Optional: docs and offline tools work without it.
JAMI_WEBHOOK_SECRET密钥Default webhook subscription secret for the webhook tools.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmjami-mcp0.3.0

工具

22

收录的工具列表 · 更新于 5 天前

参数类型必填说明
gatewayenum否付费产品的支付方式telebirr | mpesa | cbe
metadataobject否自定义键/值,会在订单 Webhook 中返回(最多 20 个键)
product_idstring否产品令牌(p_…)或 ID。自定义金额结账时可省略。
descriptionstring否仅限自定义金额:买家付款的项目,例如 "Order #1042"
success_urlstring否付款后将买家发送至何处
amount_minorinteger否以分为单位的整数。自定义金额(≥ 100)和随心付产品必填;固定价格时忽略。
checkout_linkstring否用于将此会话归属到某项的结账链接令牌(cl_…)
customer_namestring否
customer_emailstring否用于收据的买家邮箱。使用网关时必填;支付链接时可选。
customer_phonestring否买家电话,例如 "251911223344"
collected_fieldsobject否产品结账字段的答案,以字段 ID 为键
customer_external_idstring否存储在客户记录中的您自己的用户 ID

详细介绍

jami-mcp

面向 JamiDev 的官方 Model Context Protocol 服务。JamiDev 是用于 Jami 创作者收益支付的 SDK。将它连接到 Claude、Cursor、VS Code、Codex 或任何 MCP 客户端后,你的 Agent 就能创建 ETB 结账、监控结算、对账、预览并发送付款、调试 Webhook,还能在编写集成时阅读 Jami 文档。支付由 ArifPay 处理。

基于官方 jami-sdk 构建,因此每个工具的行为都与 SDK 和 REST API 完全一致。

npx -y jami-mcp

快速开始

  1. 获取令牌:Jami dashboard → JamiDev → Developer → API Tokens。先从沙盒组织开始——它的 jamidev_test_… 令牌不会转移真实资金。
  2. 将服务添加到你的客户端(见下文),并将令牌设为 JAMI_TOKEN。
  3. 提问:“通过 Telebirr 向 [email protected] 收取 1,237 比尔,用于订单 #1042,电话号码为 251900000001,并等待支付完成。”

还没有令牌?服务仍可运行。文档、提现报价和 Webhook 工具无需令牌即可使用,因此你可以立即开始构建。

Claude Code
claude mcp add jami -e JAMI_TOKEN=jamidev_test_xxx -- npx -y jami-mcp
Claude Desktop · Cursor · Windsurf

添加到 claude_desktop_config.json、~/.cursor/mcp.json 或 ~/.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 会提示输入令牌并安全存储:

{
  "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" }

工具

工具功能需要令牌
jami_create_checkout为商品(p_… 令牌或 ID)或任意金额(amount_minor + description)收款。指定 gateway:会将提示词推送到买家的手机。不指定:会返回 Jami 支付链接,供你发送给买家。✓
jami_create_product · jami_update_product创建或编辑商品;每个商品都会返回其公开页面和 p_… 令牌。✓
jami_get_product · jami_list_products查看商品目录。✓
jami_get_checkout_status检查一次会话状态;会话过期时会返回失败原因。✓
jami_wait_for_checkout等待买家完成支付,并提供进度更新。不会无限等待:超时时会返回 open。✓
jami_list_orders查看订单,按最新顺序排列,支持分页并可按状态筛选。✓
jami_get_balance查看可提现收益,以及组织是否可以提现。✓
jami_quote_withdrawal计算指定金额的费用、税款和净额,并检查自动付款和限额。离线可用。—
jami_create_withdrawal付款至 Telebirr、M-Pesa 或 CBE Birr。需主动启用(见安全说明)。✓
jami_get_withdrawal · jami_list_withdrawals跟踪付款。✓
jami_verify_webhook检查已捕获投递的签名及其失败原因。—
jami_create_test_webhook构建签名正确的测试事件,也可选择将其 POST 到你的本地处理程序。—
jami_search_docs · jami_read_doc搜索并阅读 dev.jami.bio 上的实时文档。—

每个工具都会返回易读的 Markdown 摘要和类型化的 structuredContent。传入 response_format: "json" 可获取原始载荷。货币始终以整数 分(santim) 表示,且所有金额参数都以 _minor 结尾:amount_minor: 15000 = 150.00 ETB。

提示词:integrate_jami(在你的技术栈中构建完整集成)、go_live_checklist、 debug_payment。资源:jami://reference — 在一个页面中查看费用、限额、沙盒号码、失败代码和 Webhook 规则。

安全性

默认设置可防止 Agent 意外转移资金。

  • 提款功能默认关闭,除非使用 --enable-withdrawals(或 JAMI_ENABLE_WITHDRAWALS=true)启动服务。启用后,支持请求确认的客户端会要求你确认每笔付款;每笔付款都需要 idempotency_key,因此重试绝不会重复付款。沙盒令牌会在发出任何请求前被拒绝。
  • --read-only 仅注册读取数据的工具。可用于报告 Agent。
  • 实时模式会明确提示。 使用 jamidev_live_ 令牌时,服务会告知 Agent 结账将向真实买家收费,并要求先行确认。
  • 令牌保存在环境中,绝不会出现在工具输出中。

选项

--http                 Streamable HTTP on POST /mcp instead of stdio
--port <n>             HTTP port (default 3333)
--host <addr>          HTTP bind address (default 127.0.0.1)
--read-only            Only read tools
--enable-withdrawals   Register jami_create_withdrawal
--base-url <url>       Override the API base (default https://jami.bio/api/jamidev)
--docs-url <url>       Override the docs origin (default https://dev.jami.bio)
环境变量用途
JAMI_TOKENjamidev_test_… 或 jamidev_live_…
JAMI_WEBHOOK_SECRETWebhook 工具的默认密钥
JAMI_READ_ONLY, JAMI_ENABLE_WITHDRAWALS与对应标志相同
远程(HTTP)模式
npx -y jami-mcp --http --port 3333
# → http://127.0.0.1:3333/mcp   (health check: /healthz)

HTTP 服务是无状态的,因此任意数量的客户端都可以共用一个进程。未设置 JAMI_TOKEN 时,每个请求都使用各自的 Authorization: Bearer jamidev_… 标头进行身份验证,因此一个部署可安全地供多个团队共享。通过环回地址访问时,服务会拒绝外部 Host 标头(DNS 重绑定防护)。在 HTTP 模式下,jami_create_test_webhook 不会发送请求;它只会返回签名后的负载和一条 curl 命令。

嵌入

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());

开发

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

完整指南:dev.jami.bio/docs/mcp · 支持:[email protected]

MIT © Jami

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。