mcpField
J
Jami

Jami

ローカル
dev.jami.bio金融データ05 日前に更新

Jami について

Jamiは、JamiDevの公式MCPサーバーで、エージェントによるクリエイター向け決済処理やアプリへのJami組み込みを支援します。チェックアウト、注文、出金、Webhook、ドキュメントのツールを備え、出金は既定で無効です。

主な機能

  1. 01ETBチェックアウトの作成と追跡
  2. 02商品と注文の管理
  3. 03出金の見積もりと追跡
  4. 04Webhookイベントの検証と生成
  5. 05Jamiドキュメントの検索と閲覧

活用シーン

  1. 01Jami決済のインテグレーションを構築
  2. 02注文とチェックアウト状況を照合
  3. 03出金手数料と受取額を見積もり
  4. 04Webhookの署名や配信をデバッグ

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(Jamiのクリエイターへの支払いを実現するSDK)向けの、公式Model Context Protocolサーバーです。Claude、Cursor、VS Code、Codexなど、あらゆるMCPクライアントに接続すると、エージェントがETB決済を作成し、決済完了を監視し、注文を照合し、支払いのプレビューと送信を行い、Webhookをデバッグし、連携コードの作成中にJamiのドキュメントを参照できます。決済処理はArifPayが行います。

公式のjami-sdkを基盤としているため、各ツールはSDKおよびREST APIとまったく同じように動作します。

npx -y jami-mcp

クイックスタート

  1. トークンを取得します:Jamiダッシュボード → JamiDev → Developer → API Tokens。まずはサンドボックス組織を使いましょう。そのjamidev_test_…トークンでは実際の資金は動きません。
  2. トークンをJAMI_TOKENとして設定し、以下の手順でMCPサーバーをクライアントに追加します。
  3. 次のように依頼します:「Telebirrで、注文#1042の代金1,237ビルを[email protected]に請求してください。電話番号は251900000001です。決済が完了するまで待ってください。」

まだトークンをお持ちでなくても、MCPサーバーは動作します。ドキュメント、出金見積もり、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_withdrawalTelebirr、M-Pesa、またはCBE Birrに支払います。明示的な有効化が必要(「安全性」を参照)。✓
jami_get_withdrawal · jami_list_withdrawals支払い状況を追跡します。✓
jami_verify_webhook受信したWebhookの署名と、失敗した場合の理由を確認します。—
jami_create_test_webhook正しく署名されたテストイベントを作成し、オプションでローカルのハンドラーにPOSTします。—
jami_search_docs · jami_read_docdev.jami.bioで公開されている最新のドキュメントを検索して読みます。—

すべてのツールは、読みやすいMarkdownの概要と、型付きのstructuredContentを返します。生のペイロードを取得するには、response_format: "json"を指定してください。金額は常に整数のサンティムで表し、金額を扱うパラメーター名はすべて_minorで終わります:amount_minor: 15000 = 150.00 ETB。

プロンプト: integrate_jami(使用するスタックで連携全体を構築)、go_live_checklist、debug_payment。リソース: jami://reference — 手数料、上限、サンドボックス用の番号、失敗コード、Webhookのルールを1ページにまとめています。

安全性

デフォルト設定では、エージェントが誤って送金できないようになっています。

  • 出金は無効です。サーバーを --enable-withdrawals(または JAMI_ENABLE_WITHDRAWALS=true)を指定して起動するまで無効のままです。有効にすると、エリシテーションに対応したクライアントでは、各支払いの確認を求められます。また、すべての支払いに idempotency_key が必要なため、再試行しても二重に支払われることはありません。サンドボックストークンは、リクエストを行う前に拒否されます。
  • --read-only を指定すると、データを読み取るツールのみが登録されます。レポート作成用のエージェントに使用してください。
  • ライブモードは通知されます。 jamidev_live_ トークンを使用すると、チェックアウトで実際の購入者に請求が発生するため、先に確認するようサーバーがエージェントに伝えます。
  • トークンは環境内に保持されます。ツールの出力に表示されることはありません。

オプション

--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 サーバーはステートレスなので、1 つのプロセスを任意の数のクライアントで共有できます。 JAMI_TOKEN が設定されていない場合、各リクエストは独自の Authorization: Bearer jamidev_… ヘッダーで認証されるため、1 つのデプロイメントをチーム間で安全に共有できます。ループバックでは、サーバーは不正な 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。