
人工智能AI Agent多智能体MCP 服务工具调用浏览器控制【免费下载链接】hiveMulti-Agent Harness for Production AI项目地址https://gitcode.com/gh_mirrors/hive48/hive点击查看免费下载本文以 Hive 开源仓库tools目录下的 Razorpay 支付工具为对象完整讲解该集成如何让 Hive Agent 通过 6 个 MCP 工具对接 Razorpay 支付基础设施覆盖交易查询、付款链接创建、发票管理与退款处理四大核心场景。读完本文你将掌握从 API 凭证配置、环境变量与凭证存储双通道认证到每个工具的参数语义、返回值字段、输入校验与错误码处理的完整使用链路并了解其底层 HTTP 客户端实现与测试验证方式。工具概述Hive Agent 的支付操作入口Razorpay Tool 是 Hive 的 Aden 工具集中面向在线支付与账单管理的 MCP 集成其能力边界在 razorpay_tool.py 的模块文档中明确声明支持 API Key 认证RAZORPAY_API_KEYRAZORPAY_API_SECRET主要使用场景为列出并筛选支付、获取支付详情、创建支付链接、列出与获取发票、创建退款。整个集成对外暴露6 个 MCP 工具覆盖支付、发票、退款三条业务线工具名功能所属业务线razorpay_list_payments列出近期支付支持分页与时间范围过滤支付razorpay_get_payment按 ID 获取单笔支付详细信息支付razorpay_create_payment_link创建一次性支付链接返回可分享 URL支付razorpay_list_invoices列出发票支持类型与状态过滤发票razorpay_get_invoice获取发票详情含明细行line items发票razorpay_create_refund对已捕获支付创建全额或部分退款退款在 Hive 的 Aden 工具集中这 6 个工具被归类为需要凭证credentials的稳定工具在 tools/init.py 的_register_verified已验证工具与 tools/init.py 的_register_unverified新工具/社区工具两个注册阶段均通过register_razorpay(mcp, credentialscredentials)挂载到 FastMCP 服务器也就是说无论工具成熟度如何划分Razorpay 支付能力始终可用。环境准备与凭证配置1. 获取 Razorpay API 凭证接入前需要先获得一对 API 凭证步骤与官方指引一致登录 Razorpay Dashboard进入Settings → API Keys点击Generate Key或使用已有的测试/生产 Key复制Key ID与Key Secret。仓库在 credentials/razorpay.py 的api_key_instructions中内嵌了完全相同的获取步骤供 CredentialManager 在向用户展示配置指引时直接使用。重要提示开发阶段务必使用测试 Key以rzp_test_开头切勿将生产 Key 提交到版本控制。2. 配置环境变量两种凭证通过两个环境变量注入export RAZORPAY_API_KEYrzp_test_your_key_id export RAZORPAY_API_SECRETyour_key_secret3. 凭证的第二种来源CredentialStoreAdapter除了环境变量Razorpay 工具还支持通过 Aden 的凭证存储CredentialStoreAdapter读取密钥。在 razorpay_tool.py 的_get_credentials中凭证解析遵循如下优先级若传入credentials适配器则调用credentials.get(razorpay)与credentials.get(razorpay_secret)读取否则回退读取环境变量RAZORPAY_API_KEY/RAZORPAY_API_SECRET两者都不可用时返回包含error与help的提示字典help会引导用户配置上述两个环境变量。4. 凭证规格CredentialSpec 双条目Razorpay 在凭证注册表中占用了两个条目Key ID 与 Key Secret 分开管理见 credentials/razorpay.py字段razorpayKey IDrazorpay_secretKey Secretenv_varRAZORPAY_API_KEYRAZORPAY_API_SECRETrequiredTrueTruestartup_requiredFalseFalseaden_supportedFalseFalsedirect_api_key_supportedTrueTruecredential_grouprazorpayrazorpaycredential_keyapi_keyapi_secrethealth_check_endpointGET https://api.razorpay.com/v1/payments?count1同左tools6 个razorpay_*工具与左相同的 6 个工具这里有几个值得注意的实现细节两个凭证同属razorpay组credential_group要求它们必须成对配置startup_requiredFalse意味着缺失凭证不会阻塞 MCP 服务器启动而是让每个工具在调用时按需返回凭证未配置错误凭证还内置了健康检查端点便于系统用一次轻量 GET 请求验证 Key 是否有效。CredentialSpec的完整字段语义可参考 credentials/base.py。认证机制HTTP Basic AuthenticationRazorpay 官方 API 采用 HTTP Basic 认证本集成完全遵循该约定用户名RAZORPAY_API_KEYKey ID密码RAZORPAY_API_SECRETKey Secret在 razorpay_tool.py 中内部客户端_RazorpayClient通过_auth属性自动构造认证元组(api_key, api_secret)所有httpx.get/httpx.post调用都直接透传authself._auth无需在业务代码中手工拼接认证头。测试用例 test_razorpay_tool.py 也验证了认证元组的构造结果。工具详解与实战用法以下按工具逐一说明参数、示例与底层实现。所有工具的返回值在成功时为结构化字典失败时统一为包含error键的错误字典。razorpay_list_payments列出与过滤支付参数countint默认 10— 拉取的支付数量合法范围 1-100skipint默认 0— 分页跳过的记录数from_timestampint可选— Unix 时间戳过滤该时间点之后的支付to_timestampint可选— Unix 时间戳过滤该时间点之前的支付。示例# 列出最近 20 笔支付 razorpay_list_payments(count20) # 按时间范围过滤 razorpay_list_payments(count50, from_timestamp1640995200, to_timestamp1643673600)实现要点内部调用GET https://api.razorpay.com/v1/payments查询参数为count、skip时间过滤会映射为 Razorpay 约定的from与to参数见 razorpay_tool.py。count在工具入口会被强制钳制到 1-100razorpay_tool.py底层客户端同样用min(count, 100)兜底。返回结果只保留精简字段每笔支付包含id、amount、currency、status、method、email、contact、created_at、description、order_id。测试 test_razorpay_tool.py 验证了过滤参数的正确透传与 count 上限钳制。razorpay_get_payment获取支付详情参数payment_idstr必填— Razorpay 支付 ID以pay_开头。示例razorpay_get_payment(payment_idpay_AbcDefGhijkLmn)实现要点调用GET https://api.razorpay.com/v1/payments/{payment_id}。入口处用正则^pay_[A-Za-z0-9]$校验 ID 格式非法 ID 直接返回Invalid payment_id. Must match pattern: pay_[A-Za-z0-9]错误razorpay_tool.py。成功返回的字段比列表更丰富额外包含error_code、error_description、captured、fee、tax、refund_status、amount_refunded便于 Agent 判断支付是否已捕获、手续费与税费以及退款状态razorpay_tool.py。razorpay_create_payment_link创建一次性支付链接参数amountint必填— 金额使用货币最小单位INR 为派萨 paisecurrencystr必填— ISO 4217 三位货币代码如INR、USDdescriptionstr必填— 支付说明customer_namestr可选— 客户姓名customer_emailstr可选— 客户邮箱customer_contactstr可选— 客户电话。示例razorpay_create_payment_link( amount50000, # Rs. 500.00 currencyINR, descriptionPayment for order #123, customer_emailcustomerexample.com )实现要点调用POST https://api.razorpay.com/v1/payment_links。请求体会按需组装customer对象——只有至少提供了姓名/邮箱/电话之一时才会写入customer字段razorpay_tool.py最小化请求可只含amount、currency、description。入口校验包括amount必须为正数、currency必须恰好为 3 个字母、description不能为空razorpay_tool.py。成功后返回id、short_url可分享短链如https://rzp.io/rzp/...、amount、currency、description、status、created_at、customer。测试 test_razorpay_tool.py 专门验证了无客户信息时请求体不含customer键以及amount-100、currencyINVALID、空description三类非法输入均被拦截。razorpay_list_invoices列出发票参数countint默认 10— 拉取数量1-100skipint默认 0— 分页偏移type_filterstr可选— 按发票类型过滤如invoice、link。示例razorpay_list_invoices(count20, type_filterinvoice)实现要点调用GET https://api.razorpay.com/v1/invoicestype_filter映射为查询参数typerazorpay_tool.py。返回的每张发票含id、amount、currency、status、customer_id、created_at、description、short_url。测试 test_razorpay_tool.py 验证了类型过滤透传。razorpay_get_invoice获取发票详情参数invoice_idstr必填— Razorpay 发票 ID以inv_开头。示例razorpay_get_invoice(invoice_idinv_AbcDefGhijkLmn)实现要点调用GET https://api.razorpay.com/v1/invoices/{invoice_id}入口以^inv_[A-Za-z0-9]$校验格式razorpay_tool.py。相比列表接口详情接口额外返回customer_details、line_items明细行数组、paid_at、cancelled_at等关键字段razorpay_tool.py是核对订单内容与付款时间的核心入口。测试 test_razorpay_tool.py 验证了明细行与paid_at字段。razorpay_create_refund创建退款参数payment_idstr必填— Razorpay 支付 ID以pay_开头amountint可选— 退款金额最小货币单位省略则全额退款notesdict可选— 附加退款的键值对信息。示例# 全额退款 razorpay_create_refund(payment_idpay_AbcDefGhijkLmn) # 带备注的部分退款 razorpay_create_refund( payment_idpay_AbcDefGhijkLmn, amount10000, # Rs. 100.00 notes{reason: Customer request} )实现要点调用POST https://api.razorpay.com/v1/payments/{payment_id}/refund。请求体按需组装仅当amount非空时才写入amount仅当notes非空时才写入notes全额退款时请求体为空对象razorpay_tool.py。入口校验复用pay_正则并拒绝非正的退款金额razorpay_tool.py。成功后返回id、payment_id、amount、currency、status、created_at、notes、speed_processed。测试 test_razorpay_tool.py 同时覆盖了全额空请求体与部分带amount与notes两种形态。参数校验与防御式设计从源码结构看Razorpay 工具在 MCP 入口层做了完整的输入防御未命中校验的调用不会发往 Razorpay API而是直接返回错误字典校验项规则错误信息特征支付/退款payment_id必须匹配^pay_[A-Za-z0-9]$Must match pattern: pay_[A-Za-z0-9]发票invoice_id必须匹配^inv_[A-Za-z0-9]$Must match pattern: inv_[A-Za-z0-9]列表类count钳制到 1-100超出后自动归一链接/退款amount必须为正数Amount must be positive/Refund amount must be positive链接currency必须为 3 个字母Currency must be a 3-letter code链接description不能为空Description is required此外所有工具调用都包裹了httpx.TimeoutException统一返回Request timed out与httpx.RequestError返回Network error: ...两类网络异常的捕获确保网络抖动时工具仍以结构化错误返回不会让异常穿透到 Agent 侧如 razorpay_tool.py。每个 HTTP 请求都显式设置了 30 秒超时。错误处理统一的错误字典契约所有 6 个工具在失败时统一返回错误字典格式如下{ error: Invalid Razorpay API credentials }底层由_RazorpayClient._handle_response统一将 HTTP 状态码翻译为可读错误信息razorpay_tool.pyHTTP 状态码返回错误说明400Bad request: description从响应 JSON 的error.description提取详情401Invalid Razorpay API credentialsKey/Secret 错误403Insufficient permissions. Check your Razorpay account access.账户权限不足404Resource not foundID 不存在429Razorpay rate limit exceeded. Try again later.触发限流 400其他Razorpay API error (HTTP code): description兜底分支如 500测试 test_razorpay_tool.py 通过参数化用例逐一断言了 401/403/404/400/429 与通用 500 的错误文案保证了错误契约的稳定性。测试与验证测试模式 单元测试使用 Razorpay 测试模式为避免真实扣款开发阶段务必使用测试环境生成测试 API Key以rzp_test_开头使用 Razorpay 官方测试卡文档提供的测试卡号、测试 UPI ID 等测试支付方式完成支付流程模拟。仓库内置的单元测试仓库为这套集成提供了完整的单元测试 test_razorpay_tool.py覆盖范围包括_RazorpayClient六个方法的请求路径、参数与认证透传错误处理的状态码到错误文案映射参数化测试凭证获取三条路径无凭证返回not configured、CredentialStoreAdapter按razorpay/razorpay_secret两次读取、环境变量验证 auth 元组来自 env6 个 MCP 工具函数的成功路径、输入校验与超时/网络异常凭证规格断言CREDENTIAL_SPECS中存在razorpay与razorpay_secret两条目、各自关联 6 个工具、健康检查端点为GET https://api.razorpay.com/v1/payments?count1、aden_supportedFalse且direct_api_key_supportedTruetest_razorpay_tool.py。其中test_register_tools_registers_all_tools通过断言mcp.tool.call_count 6确保工具注册数量不回归test_razorpay_tool.py。在 Hive 工具生态中的位置与扩展入口如果你要在自己的 Hive 部署中接入或扩展 Razorpay 能力可以按以下脉络继续深入工具声明与注册入口函数register_tools(mcp, credentialsNone)定义于 razorpay_tool.py并通过init.py 导出统一在 tools/init.py 与 tools/init.py 挂载到 MCP凭证规格新增或修改环境变量名、健康检查端点等编辑 credentials/razorpay.py凭证基础设施CredentialSpec的完整字段与 CredentialManager 的读取、校验、热加载逻辑见 credentials/base.py工具总览razorpay_*在 Aden 工具清单中的定位可参考 tools/README.md集成文档本工具的使用说明原始文档位于 razorpay_tool/README.md。总结Razorpay Tool 以 6 个语义清晰的 MCP 工具为 Hive Agent 提供了从收款到退款的全链路支付操作能力凭证侧支持环境变量与凭证存储双通道认证遵循 HTTP Basic 约定请求侧内置完整的参数校验、30 秒超时与网络异常兜底响应侧统一为结构化字典并给出精确的错误文案。配合仓库内完整的单元测试与 Razorpay 官方测试模式开发者可以在不产生真实交易的前提下安全地把支付、开票与退款管理自动化能力集成进自己的 Agent 工作流中。赞分享人工智能AI Agent多智能体MCP 服务工具调用浏览器控制【免费下载链接】hiveMulti-Agent Harness for Production AI项目地址https://gitcode.com/gh_mirrors/hive48/hive点击查看免费下载相关推荐Hive 项目 Stripe 支付工具接入指南MCP 工具集实现客户、订阅、发票与退款全流程Hive 项目 Stripe 支付工具接入指南MCP 工具集实现客户、订阅、发票与退款全流程 本篇指南系统讲解 Hive 项目中 aden_tools 工具包人工智能AI Agent多智能体MCP 服务工具调用浏览器控制Hive Aden Tools 的 Azure SQL 管理工具基于 Azure Management REST API 的 MCP 集成实战指南Hive Aden Tools 的 Azure SQL 管理工具基于 Azure Management REST API 的 MCP 集成实战指南 本指南完整人工智能AI Agent多智能体MCP 服务工具调用浏览器控制Hive Aden Tools 的 Tines 安全自动化集成Story 与 Action 的 MCP 工具实战指南Hive Aden Tools 的 Tines 安全自动化集成Story 与 Action 的 MCP 工具实战指南 本指南以 Tines Tool 文档 h人工智能AI Agent多智能体MCP 服务工具调用浏览器控制上一篇终极Floating UI性能优化指南掌握requestAnimationFrame的最佳实践下一篇GoGoGoAndroid虚拟定位终极指南无需ROOT实现精准位置模拟 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考