Token导航 LogoToken导航TokenDH.com
Roony MCP logo
AI代理未说明官方级别未说明来源级核验

Roony MCP

MCP Server

开源AI代理支付治理引擎,提供支出控制、审批流程和审计跟踪功能,适用于AI代理的自主支付场景。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaudeAI代理ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Roony-Pay

提供方

Roony-Pay

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Roony治理

开源AI代理支付治理引擎。

让您的AI代理能够通过内置的支出控制、审批工作流和审计跟踪进行购买。

为什么是Roony?

人工智能代理越来越自主——预订旅行、购买软件、管理订阅。但是,你如何在不失去控制的情况下给人工智能信用卡呢?

Roony提供:

  • 🔒 支出限额 -每笔交易、每日和每月上限
  • 🏪 商户控制 -允许/阻止特定商家或类别
  • 👤 人类认可 -需要对大额或异常购买进行审查
  • 🏢 组织护栏 -所有代理商的全公司政策
  • 💳 虚拟卡 -购买后过期的一次性卡
  • 🤖 MCP支持 -与Claude、Cursor和其他MCP客户端配合使用

快速开始

选项1:使用托管Roony(最简单)

只需使用 roony.pay -我们处理一切:

  • 用于管理代理和策略的仪表板
  • 虚拟卡的条纹集成
  • 没有要管理的基础设施

选项2:自助主机

npm install @roony-pay/governance
import {
  createRoonyMCPServer,
  InMemoryStorageProvider,
  MockPaymentProvider,
} from "@roony-pay/governance";

// Create providers (use your own implementations for production)
const storage = new InMemoryStorageProvider();
const payments = new MockPaymentProvider();

// Add an organization
storage.addOrganization({
  id: "org_123",
  name: "Acme Corp",
  monthlyBudget: 10000,
  guardrails: {
    maxTransactionAmount: 500,
    requireApprovalAbove: 200,
  },
});

// Add an agent with spending controls
storage.addAgent({
  id: "agent_123",
  organizationId: "org_123",
  name: "Shopping Assistant",
  status: "active",
  monthlyLimit: 1000,
  perTransactionLimit: 100,
  approvalThreshold: 50,
  flagNewVendors: true,
});

// Create MCP server
const server = createRoonyMCPServer({
  storage,
  paymentProvider: payments,
});

// Handle requests (e.g., in Next.js API route)
export async function POST(req: Request) {
  const body = await req.json();
  const response = await server.handleRequest(body, "agent_123", "org_123");
  return Response.json(response);
}

运作原理

┌─────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  AI Agent   │────▶│  Roony Gateway   │────▶│  Your Payment   │
│  (Claude)   │     │                  │     │  Provider       │
└─────────────┘     │  ✓ Check limits  │     │  (Stripe, etc)  │
                    │  ✓ Evaluate rules│     └─────────────────┘
                    │  ✓ Log & audit   │              │
                    │  ✓ Issue card    │              ▼
                    └──────────────────┘     ┌─────────────────┐
                             │               │    Merchant     │
                             ▼               └─────────────────┘
                    ┌──────────────────┐
                    │  Approval Queue  │
                    │  (if needed)     │
                    └──────────────────┘

MCP工具

当通过MCP连接时,代理可以访问这些工具:

工具说明
request_purchase申请购买,获得批准后获得虚拟卡
check_budget检查剩余预算和限额
list_transactions查看交易历史记录
get_policy_info查看适用于此代理的规则

示例:代理请求购买

// Agent calls request_purchase
{
  "amount": 49.99,
  "currency": "usd",
  "description": "Monthly Figma subscription",
  "merchant_name": "Figma"
}

// If approved, agent receives:
{
  "status": "approved",
  "card": {
    "number": "4242424242424242",
    "exp_month": 12,
    "exp_year": 2025,
    "cvc": "123"
  },
  "hard_limit_amount": 49.99,
  "expires_at": "2025-12-05T15:00:00Z"
}

// If rejected:
{
  "status": "rejected",
  "reason_code": "OVER_TRANSACTION_LIMIT",
  "message": "Amount $49.99 exceeds per-transaction limit of $25.00",
  "suggestion": "Try a smaller purchase amount..."
}

// If needs approval:
{
  "status": "pending_approval",
  "message": "Amount exceeds approval threshold",
  "purchase_intent_id": "pi_abc123"
}

支出控制

代理级别控制

控制描述
monthlyLimit每月最大支出
dailyLimit每日最大消费
perTransactionLimit单次购买的最大金额
approvalThreshold以上需要人工批准
flagNewVendors首次在新商家购买时需要获得批准
blockedMerchants被屏蔽商户名称列表
allowedMerchants如果设置,则只允许这些商家

组织护栏

护栏说明
monthlyBudget所有代理的总预算
maxTransactionAmount任何单一交易的硬上限
requireApprovalAbove以上所有购买都需要审核
flagAllNewVendors所有新供应商都需要批准
blockCategories阻止整个商户类别

实施提供商

存储提供程序

实施 StorageProvider 使用您自己的数据库:

import type { StorageProvider } from "@roony-pay/governance";

class PostgresStorageProvider implements StorageProvider {
  async getAgent(agentId: string) {
    return await db.query("SELECT * FROM agents WHERE id = $1", [agentId]);
  }
  
  async getAgentSpend(agentId: string, period: "daily" | "monthly") {
    // Sum approved purchases for the period
  }
  
  // ... implement other methods
}

支付提供商

实施 PaymentProvider 使用您的支付处理器:

import type { PaymentProvider } from "@roony-pay/governance";
import Stripe from "stripe";

class StripePaymentProvider implements PaymentProvider {
  private stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
  
  async createVirtualCard(request) {
    const card = await this.stripe.issuing.cards.create({
      cardholder: process.env.CARDHOLDER_ID,
      type: "virtual",
      currency: request.currency,
      spending_controls: {
        spending_limits: [{
          amount: request.amount * 100,
          interval: "all_time",
        }],
      },
    });
    
    // Return card details
  }
}

Docker部署

# docker-compose.yml
version: '3.8'
services:
  roony:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://...
      - STRIPE_SECRET_KEY=sk_...
      - STRIPE_CARDHOLDER_ID=ich_...

api参考

createRoonyMCPServer(config)

创建用于AI代理治理的MCP服务器。

const server = createRoonyMCPServer({
  storage: StorageProvider,      // Your database implementation
  paymentProvider: PaymentProvider, // Your payment processor
});

// Handle requests
const response = await server.handleRequest(
  mcpRequest,   // The MCP JSON-RPC request
  agentId,      // ID of the agent making the request  
  organizationId // ID of the organization
);

createSpendingChecker(config)

创建一个独立的支出检查器(不带MCP):

const checker = createSpendingChecker({
  storage: myStorageProvider,
});

const result = await checker.checkSpending({
  agentId: "agent_123",
  amount: 50.00,
  currency: "usd",
  merchantName: "Amazon",
  description: "Office supplies",
});

if (result.allowed && !result.requiresApproval) {
  // Proceed with purchase
} else if (result.requiresApproval) {
  // Queue for human review
} else {
  // Rejected - show result.rejectionMessage
}

拒收代码

代码描述
AGENT_NOT_FOUND找不到代理ID
OVER_TRANSACTION_LIMIT超过每笔交易限额
DAILY_LIMIT_EXCEEDED已达到每日消费限额
MONTHLY_LIMIT_EXCEEDED已达到每月支出限额
ORG_BUDGET_EXCEEDED组织预算已用尽
OVER_ORG_MAX_TRANSACTION超过组织最大交易额
MERCHANT_BLOCKED商户被封锁
MERCHANT_NOT_ALLOWED商人不在敌对状态
CATEGORY_BLOCKED商户类别被阻止

托管与自托管

功能自托管托管(roony.pay)
支出控制
审批工作流
MCP支持
虚拟卡您实现✅ 内置
仪表板您构建✅ 包括
条纹集成您实现✅ 包括
支持社区优先级

贡献

我们欢迎捐款!看 贡献.md 作为指导方针。

# Clone the repo
git clone https://github.com/roony-pay/roony-mcp.git
cd roony-mcp

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

许可证

MIT© Roony

______________________________________________________________________

问题? 打开问题或联系hello@roony.pay

目录标签

目录标签

TypeScriptClaudeAI代理支付治理本地部署支出控制虚拟卡审计跟踪

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP