Boundra — Payment Approval Gateway for AI Agents

Allow, ask, or veto — a policy decision point your agent consults before signing any payment

사용해야 할까요

품질 및 안전성

A
설명 품질
95%
스키마 완전성
67%
이름 품질
96%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • LOWTool 'get_policy' description lacks action verbget_policy에서
  • LOWTool 'get_policy_versions' description lacks action verbget_policy_versions에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,595토큰 (도구 정의)
~1.3 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.25%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "boundra": {
      "command": "uvx",
      "args": [
        "boundra-mcp"
      ]
    }
  }
}

실행 가능한 패키지

pypiboundra-mcp0.1.1stdio

원격 엔드포인트

https://api.boundra.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (11)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
⚪evaluate_payment(amount, recipient, purpose, expected_amount, source_content, ...)

Evaluate a payment intent. MUST be called before executing any payment. ALLOW = you may pay; DENY = you must abandon; ASK = a challenge is returned — relay the reason to the user, then retry with approval_token once the user signs. An optional mandate parameter carries a user-issued single-task authorization.

입력 스키마

{
  "type": "object",
  "properties": {
    "amount": {
      "title": "Amount",
      "type": "number"
    },
    "recipient": {
      "title": "Recipient",
      "type": "string"
    },
    "purpose": {
      "title": "Purpose",
      "type": "string"
    },
    "expected_amount": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Expected Amount"
    },
    "source_content": {
      "default": "",
      "title": "Source Content",
      "type": "string"
    },
    "approval_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Approval Token"
    },
    "owner": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Owner"
    },
    "agent_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Agent Id"
    },
    "mandate": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Mandate"
    }
  },
  "required": [
    "amount",
    "recipient",
    "purpose"
  ],
  "title": "evaluate_paymentArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "evaluate_paymentOutput"
}
🟡request_policy_change(agent_id, request, reason)

[For agents] Ask the user for a policy/budget change (e.g. 'raise daily budget from 50 to 80'). The request is queued for user approval; the user signs and publishes a new policy version. Agents can NEVER change policy directly.

입력 스키마

{
  "type": "object",
  "properties": {
    "agent_id": {
      "title": "Agent Id",
      "type": "string"
    },
    "request": {
      "title": "Request",
      "type": "string"
    },
    "reason": {
      "title": "Reason",
      "type": "string"
    }
  },
  "required": [
    "agent_id",
    "request",
    "reason"
  ],
  "title": "request_policy_changeArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "request_policy_changeOutput"
}
🟢get_policy(owner, agent_id)

View the active signed payment policy for an owner (and optionally an agent scope)

입력 스키마

{
  "type": "object",
  "properties": {
    "owner": {
      "title": "Owner",
      "type": "string"
    },
    "agent_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Agent Id"
    }
  },
  "required": [
    "owner"
  ],
  "title": "get_policyArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_policyOutput"
}
🟢get_spend_report(owner)

View today's spend summary for an owner

입력 스키마

{
  "type": "object",
  "properties": {
    "owner": {
      "title": "Owner",
      "type": "string"
    }
  },
  "required": [
    "owner"
  ],
  "title": "get_spend_reportArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_spend_reportOutput"
}
🟢get_audit_trail(owner, limit)

View recent payment-approval audit records for an owner

입력 스키마

{
  "type": "object",
  "properties": {
    "owner": {
      "title": "Owner",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "owner"
  ],
  "title": "get_audit_trailArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_audit_trailOutput"
}
🟡set_policy(owner, scope, version, nl_rule, prev_hash, ...)

[USER ONLY] Submit a new policy version. Must carry the user's wallet EIP-191 signature over the policy document; accepted only after signature + version-chain checks pass. Agents MUST NOT call this tool.

입력 스키마

{
  "type": "object",
  "properties": {
    "owner": {
      "title": "Owner",
      "type": "string"
    },
    "scope": {
      "title": "Scope",
      "type": "string"
    },
    "version": {
      "title": "Version",
      "type": "integer"
    },
    "nl_rule": {
      "title": "Nl Rule",
      "type": "string"
    },
    "prev_hash": {
      "title": "Prev Hash",
      "type": "string"
    },
    "created_at": {
      "title": "Created At",
      "type": "number"
    },
    "signature": {
      "title": "Signature",
      "type": "string"
    },
    "agent_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Agent Id"
    }
  },
  "required": [
    "owner",
    "scope",
    "version",
    "nl_rule",
    "prev_hash",
    "created_at",
    "signature"
  ],
  "title": "set_policyArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "set_policyOutput"
}
⚪revoke_policy(owner, scope, revoked_through, created_at, signature, ...)

[USER ONLY] Revoke a policy chain (takes effect immediately; subsequent payments default to DENY). Must carry the user's wallet signature over the revocation statement.

입력 스키마

{
  "type": "object",
  "properties": {
    "owner": {
      "title": "Owner",
      "type": "string"
    },
    "scope": {
      "title": "Scope",
      "type": "string"
    },
    "revoked_through": {
      "title": "Revoked Through",
      "type": "integer"
    },
    "created_at": {
      "title": "Created At",
      "type": "number"
    },
    "signature": {
      "title": "Signature",
      "type": "string"
    },
    "agent_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Agent Id"
    }
  },
  "required": [
    "owner",
    "scope",
    "revoked_through",
    "created_at",
    "signature"
  ],
  "title": "revoke_policyArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "revoke_policyOutput"
}
🟢get_policy_versions(owner)

View a user's policy version history (version chain + hashes, verifiable against on-chain commitments)

입력 스키마

{
  "type": "object",
  "properties": {
    "owner": {
      "title": "Owner",
      "type": "string"
    }
  },
  "required": [
    "owner"
  ],
  "title": "get_policy_versionsArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_policy_versionsOutput"
}
🟡list_policy_requests

List pending agent policy-change requests

입력 스키마

{
  "type": "object",
  "properties": {},
  "title": "list_policy_requestsArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_policy_requestsOutput"
}
🟢list_templates

List policy templates (personal assistant / travel / dev API / procurement)

입력 스키마

{
  "type": "object",
  "properties": {},
  "title": "list_templatesArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_templatesOutput"
}
⚪render_template(template_id, whitelist, daily, per_tx, ask_above)

Render a natural-language rule from a template + parameters (then compile, sign & publish)

입력 스키마

{
  "type": "object",
  "properties": {
    "template_id": {
      "title": "Template Id",
      "type": "string"
    },
    "whitelist": {
      "items": {
        "type": "string"
      },
      "title": "Whitelist",
      "type": "array"
    },
    "daily": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Daily"
    },
    "per_tx": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Per Tx"
    },
    "ask_above": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Ask Above"
    }
  },
  "required": [
    "template_id",
    "whitelist"
  ],
  "title": "render_templateArguments"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "render_templateOutput"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 11개