marutap
Agent requests a purchase, the human taps approve, the agent gets a card scoped to it.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"marutap": {
"url": "https://mcp.marutap.com/mcp"
}
}
}원격 엔드포인트
https://mcp.marutap.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (7)
🟢request_payment(amount, merchant, line_items, currency)
Request the user's approval to pay for a purchase. Usually returns `{auto_approved: false, approval_url}` — show the approval_url to the user so they can review the total and approve with one tap, then call get_payment_result. If the user's spending policy auto-approves this purchase (e.g. under their cap at an allowlisted merchant), it returns `{auto_approved: true, status: "approved", card}` immediately — no approval needed, just use the card. Args: amount: Total to charge, in major units (e.g. 18.50 dollars). merchant: Human-readable merchant / store name shown on the approval screen. line_items: Optional list of {"name": str, "quantity": int, "amount_cents": int}. currency: ISO currency code, default "usd".
입력 스키마
{
"type": "object",
"properties": {
"amount": {
"title": "Amount",
"type": "number"
},
"merchant": {
"title": "Merchant",
"type": "string"
},
"line_items": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Line Items"
},
"currency": {
"default": "usd",
"title": "Currency",
"type": "string"
}
},
"required": [
"amount",
"merchant"
],
"title": "request_paymentArguments"
}🟢get_payment_result(charge_id, wait_seconds, agent_secret)
Poll for the outcome of a payment request. Long-polls up to wait_seconds. Returns status one of: pending, approved, settled, declined, expired, not_found, claim_pending. When approved, includes a single-use `card` (number, cvc, exp) locked to this purchase — use it to complete checkout at the merchant. If still "pending"/"claim_pending", call again. For a claim (charge_id = the "clm_…" poll_id from request_payment): pass the agent_secret you received. The first approved result also contains `connect_token` — persist it and send it as the Authorization bearer on all future calls.
입력 스키마
{
"type": "object",
"properties": {
"charge_id": {
"title": "Charge Id",
"type": "string"
},
"wait_seconds": {
"default": 20,
"title": "Wait Seconds",
"type": "integer"
},
"agent_secret": {
"default": "",
"title": "Agent Secret",
"type": "string"
}
},
"required": [
"charge_id"
],
"title": "get_payment_resultArguments"
}🟢list_payment_requests(status, limit)
List this agent's payment requests and whether each has been approved yet. Use this to see the state of every request you've made — not just poll one saved charge_id. Each item includes its `status` (pending, approved, settled, declined, expired) so you can tell which are still waiting and which the user has acted on. For a pending request it also returns the `approval_url` (re-surface it to the user); once a request is approved, call get_payment_result(charge_id) to fetch the card. Args: status: which to return — "open" (default, still-pending only) or "all". limit: max requests to return (default 20, capped at 100), newest first.
입력 스키마
{
"type": "object",
"properties": {
"status": {
"default": "open",
"title": "Status",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"title": "list_payment_requestsArguments"
}⚪record_order(charge_id, order_ref)
Report the merchant's order reference back after checkout, so the user can later reverse (refund) the purchase. `order_ref` is the merchant's payment id (e.g. a Stripe PaymentIntent).
입력 스키마
{
"type": "object",
"properties": {
"charge_id": {
"title": "Charge Id",
"type": "string"
},
"order_ref": {
"title": "Order Ref",
"type": "string"
}
},
"required": [
"charge_id",
"order_ref"
],
"title": "record_orderArguments"
}🔴request_subscription(merchant, cap, interval)
Set up a recurring subscription mandate (e.g. Netflix at up to $16/month). Requires the user's explicit one-time approval — returns an approval_url. The mandate is merchant-locked and capped: the merchant can never charge more than `cap` per period, and the user can cancel anytime (after which the merchant can never charge again). Args: merchant: merchant to authorize (e.g. "Netflix"). cap: max amount per period in major units (e.g. 16.00). interval: "weekly" | "monthly" | "yearly".
입력 스키마
{
"type": "object",
"properties": {
"merchant": {
"title": "Merchant",
"type": "string"
},
"cap": {
"title": "Cap",
"type": "number"
},
"interval": {
"default": "monthly",
"title": "Interval",
"type": "string"
}
},
"required": [
"merchant",
"cap"
],
"title": "request_subscriptionArguments"
}🟢list_subscriptions
List the user's subscription mandates and their status.
입력 스키마
{
"type": "object",
"properties": {},
"title": "list_subscriptionsArguments"
}🔴cancel_subscription(mandate_id)
Cancel a subscription mandate. Safe — canceling never spends money, and the merchant can never charge again afterwards.
입력 스키마
{
"type": "object",
"properties": {
"mandate_id": {
"title": "Mandate Id",
"type": "string"
}
},
"required": [
"mandate_id"
],
"title": "cancel_subscriptionArguments"
}커뮤니티
증거