AI代理金融服务

MCP服务器为AI代理提供钱包管理、转账、加密货币发送、兑换、法币兑换和账单支付等金融服务。

  • by Mr-Money01
  • TypeScript
  • 混合部署
  • 更新于
在 GitHub 查看 Mr-Money01/mcp-server

使用说明

@mrmonei/mcp服务器

MCP服务器 许多 API允许任何AI代理通过自然语言访问钱包、转账、加密货币发送、掉期、出口和账单支付。

适用于Claude Desktop、Cursor和任何兼容MCP的代理平台。


快速开始

克劳德桌面版

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "monei": {
      "command": "npx",
      "args": ["-y", "@mrmonei/mcp-server"],
      "env": {
        "MONEI_API_KEY": "your_api_key_here",
      }
    }
  }
}

重新启动克劳德桌面。您应该在工具菜单中看到可用的Monei工具。

光标(本地)

添加 .cursor/mcp.json 在您的项目中:

{
  "mcpServers": {
    "monei": {
      "command": "npx",
      "args": ["-y", "@mrmonei/mcp-server"],
      "env": {
        "MONEI_API_KEY": "your_api_key_here"
      }
    }
  }
}

光标(通过铁路远程)

{
  "mcpServers": {
    "monei": {
      "url": "https://mcp.monei.cc/sse",
      "headers": {
        "Authorization": "Bearer your_api_key_here"
      }
    }
  }
}

环境变量

变量 必填 默认 描述
MONEI_API_KEY 是(stdio) - 您的Monei API密钥。HTTP/SSE模式下不需要--传递 Authorization: Bearer 改为标题
MONEI_TRANSPORT 没有 stdio 运输方式: stdio, http,或 sse
PORT 没有 3000 HTTP/SSE服务器端口
MONEI_TIMEOUT 没有 30000 请求超时(毫秒)。最多120000
MONEI_API_URL 没有 https://api.monei.cc 覆盖实时API基础URL

运输方式

模式 用例 如何开始
stdio Claude Desktop,本地游标 默认值——只需运行服务器
http 自定义代理、API集成 MONEI_TRANSPORT=http node dist/index.js
sse 光标遥控器,Claude.ai MONEI_TRANSPORT=sse node dist/index.js

在 http 和 sse 模式服务器是无状态和多用户的。每个客户端通过 Authorization: Bearer <key>一个部署的服务器为许多用户服务。


工具参考

账户

monei_get_account

返回经过身份验证的用户的个人资料。

输入: 无

退货:

{
  "id": "string",
  "email": "string",
  "firstName": "string",
  "lastName": "string",
  "phone": "string"
}

示例提示: “我以谁的身份登录?”


钱包

monei_get_wallet

返回NGN余额和所有子钱包。

输入: 无

退货:

{
  "ngnBalance": "number",
  "subWallets": [{ "id": "string", "type": "string", "balance": "number" }]
}

示例提示: “我的钱包余额是多少?”


monei_get_evm_portfolio

返回EVM链的完整代币组合,包括美元价值。

输入:

字段 类型 必填 描述
chainId number Yes 链ID。56=BSC,137=多边形,8453=基础,1=以太坊

示例提示: “我在Base上有什么代币?”


monei_get_solana_portfolio

返回美元价值的SOL和所有SPL代币余额。

输入: 无

示例提示: “显示我的Solana钱包”


monei_get_my_solana_address

返回用户的Solana钱包地址。

输入: 无

示例提示: “我的索拉纳地址是什么?我想收到SOL。”


monei_get_supported_networks

列出所有支持的EVM链及其链ID和名称。

输入: 无

示例提示: “你支持什么锁链?”


存款

monei_generate_deposit_link

生成用户可以打开以存入NGN的支付链接。

输入:

字段 类型 必填 描述
amount number 是 要存入的NGN金额

退货:

{
  "paymentLink": "string",
  "reference": "string"
}

示例提示: “我想把50000韩元存入我的Monei账户”


monei_check_deposit_status

通过参照检查存款状态。

输入:

字段 类型 必填 描述
reference string 是 引用自 monei_generate_deposit_link

示例提示: “我的押金通过了吗?”


NGN支出

monei_send_naira_to_bank

将NGN发送到尼日利亚银行账户。

输入:

字段 类型 必填 描述
amount number Yes 金额(NGN)
bankCode string 是 来自的银行代码 monei_get_banks
accountNumber string 是 10位账号
transactionPin string 是 用户的4-6位交易PIN
narration string 否 传输描述

总是打电话 monei_verify_bank_account 首先,在发送之前向用户显示帐户名。

示例提示: “向我的GTBank账户0123456789发送20000韩元”


monei_send_naira_to_user

通过电子邮件或电话将NGN发送给另一个Monei用户。

输入:

字段 类型 必填 描述
receiver string 是 收件人电子邮件或电话号码
amount number Yes 金额(NGN)
transactionPin string 是 用户的4-6位交易PIN

示例提示: “发送5000韩元至john@gmail.com"


银行公用事业

monei_get_banks

返回受支持的尼日利亚银行及其代码的完整列表。

输入: 无

示例提示: “你支持哪些银行?” / “GTBank的银行代码是什么?”


monei_verify_bank_account

验证银行账号并返回账户持有人姓名。

输入:

字段 类型 必填 描述
accountNumber string 是 10位银行帐号
bankCode string 是 来自的银行代码 monei_get_banks

退货:

{
  "accountName": "string",
  "accountNumber": "string",
  "bankCode": "string"
}

在任何银行付款之前,始终调用此功能,并向用户显示帐户名称以供确认。

示例提示: “验证GTBank的帐户0123456789”


加密货币发送

monei_send_crypto_evm

在任何支持的EVM链上发送本机令牌或ERC-20。

输入:

字段 类型 必填 描述
to string 是 收件人钱包地址(0x…)
amount string 是 以字符串形式发送的金额(例如“0.1”)
chainId number 是 链ID
tokenAddress string 否 ERC-20合约地址。省略本机令牌发送

示例提示:

  • “向0x742d发送0.01 ETH…”
  • “在BSC上向0x发送100 USDT…”

monei_send_crypto_solana

在Solana上发送SOL或SPL令牌。

输入:

字段 类型 必填 描述
to string 是 收件人Solana地址
amount string 是 要发送的金额
tokenMintAddress string 否 SPL令牌造币厂地址。忽略SOL发送

示例提示:

  • “向5AH3发送2个SOL…”
  • “将索拉纳的50美元兑换成5AH3…”

代币互换

monei_swap_tokens_evm

在EVM上交换代币。根据令牌是本机令牌还是ERC-20令牌自动路由。

输入:

字段 类型 必填 描述
amount string 是 要交换的金额
chainId number 是 链ID
tokenIn string 否 ERC-20合约待售。出售本地代币时省略
tokenOut string 否 购买ERC-20合约。购买本地代币时忽略
slippageBps number No 基点滑动公差。默认值:50(0.5%)

示例提示:

  • “在基础上将0.1 ETH兑换为USDC”
  • “在Polygon上将100美元兑换成USDT”

monei_swap_tokens_solana

在Solana上交换代币。SOL和SPL令牌之间自动路由。

输入:

字段 类型 必填 描述
amount number string Yes
inputMint string 否 要出售的代币的Mint地址。销售SOL时省略
outputMint string 否 要购买的代币的薄荷地址。购买SOL时省略
slippageBps number No 基点滑动公差。默认值:50(0.5%)

示例提示:

  • “将1 SOL兑换为USDC”
  • “将100美元兑换成SOL”

匝道

monei_get_offramp_quote

获取向NGN出售加密货币的实时汇率。

输入:

字段 类型 必填 描述
token string 是 要出售的代币: USDT, USDC,或 CNGN
network string 是 网络: base, polygon, arbitrum-one, bnb-smart-chain, ethereum, optimism
amount number 是 要出售的代币数量
fiat string 否 要接收菲亚特。违约: NGN

示例提示: “今天在Base卖出100 USDT的价格是多少?”


monei_sell_crypto_for_naira

出售加密货币并将收益存入尼日利亚银行账户。

输入:

字段 类型 必填 描述
amount number 是 要出售的代币数量
token string 是 要出售的代币: USDT, USDC,或 CNGN
network string 是 令牌所在的网络
fiatCurrency string 否 默认值: NGN
bankCode string 是 目标银行代码
accountNumber string 是 目标帐号
accountName string 是 帐户持有人姓名来自 monei_verify_bank_account

退货:

{
  "reference": "string",
  "status": "string",
  "amounts": { "crypto": {}, "fiat": {}, "exchangeRate": 0, "totalFee": 0 },
  "onChain": { "depositAddress": "string" }
}

呼叫 monei_get_offramp_quote 首先显示速率。呼叫 monei_verify_bank_account 为了得到 accountName。在调用此功能之前,请向用户显示两者以供确认。

示例提示: “向我的GTBank账户0123456789出售100 USDT”


monei_track_offramp

检查出口交易的状态。

输入:

字段 类型 必填 描述
reference string 是 引用自 monei_sell_crypto_for_naira

状态: initiated → awaiting_deposit → deposit_received → processing → fiat_sent → completed

示例提示: “我的USDT销售情况如何?”


账单支付

monei_get_bill_providers

列出某个账单类别的可用账单和套餐。

输入:

字段 类型 必填 描述
category string 是 AIRTIME, MOBILEDATA, CABLEBILLS,或 UTILITYBILLS
billerName string 条件性 非电力类别所需(例如。 MTN, DSTV)

示例提示:

  • “有哪些MTN数据计划可用?”
  • “你们支持哪些电力供应商?”

monei_pay_bill

支付账单。根据以下内容路由到正确的付款方式 category.

常见输入: category (必填),加上特定类别的字段:

类别 必填字段
AIRTIME phoneNumber, biller, amount
MOBILEDATA phoneNumber, biller, itemCode
UTILITYBILLS meterNumber, disco, amount
CABLEBILLS smartcardNumber, biller, itemCode

所有类别也接受 isSchedule, scheduleData, saveBeneficiary, beneficiaryName.

总是打电话 monei_get_bill_providers 首先获得有效 biller 和 itemCode 价值观。

示例提示:

  • “购买1000 MTN通话时间08012345678”
  • “向我的IKEDC电表支付5000韩元12345678901”
  • “订阅DSTV Compact智能卡1234567890”
  • “每月1号支付我的DSTV”

monei_get_bill_history

返回所有类别的最近账单付款历史记录。

输入: 无

示例提示: “显示我最近的账单付款”


交易

monei_get_transaction_history

返回最近的钱包交易。

输入: 无

示例提示: “显示我最近的交易记录”


monei_get_transaction

按ID或引用获取单个事务。

输入:

字段 类型 必填 描述
reference string 是 事务ID或引用字符串

示例提示: “交易ref_abc123发生了什么?”


常见代理模式

这些自然语言提示开箱即用:

检查余额并发送奈拉

“检查我的余额,然后向我的GTBank账户0123456789发送10000韩元。银行代码是058。”

代理流: get_wallet → verify_bank_account → 与用户确认→ send_naira_to_bank


全部出口流量

“我想在Polygon上向我的Access Bank账户0987654321出售200 USDT”

代理流: get_offramp_quote → get_banks → verify_bank_account → 显示费率+账户名称→ 确认→ sell_crypto_for_naira → track_offramp


购买通话时间

“购买500 Airtel通话时间08098765432”

代理流: get_bill_providers (AIRTIME,Airtel)→ get_wallet → pay_bill


交换和检查

“在Base上将0.05 ETH兑换为USDC,然后向我展示我更新的投资组合”

代理流: get_evm_portfolio → 确认→ swap_tokens_evm → get_evm_portfolio


对等传输

“发送₦2000至jane@example.com从我的Monei钱包”

代理流: get_wallet → 确认余额→ send_naira_to_user


故障排除

工具未显示在Claude Desktop中

  • 检查一下 MONEI_API_KEY 已设置 claude_desktop_config.json
  • 配置更改后完全重新启动Claude Desktop
  • 检查stderr日志: tail -f ~/Library/Logs/Claude/mcp*.log (macOS)

Authentication failed — your API key is invalid or expired

  • 在Monei仪表板中验证您的API密钥
  • 确保 MONEI_ENV 匹配您的密钥所属的环境(沙盒vs实时)
  • 在HTTP/SSE模式下,检查 Authorization: Bearer 正在发送标头

Rate limit exceeded — please wait a moment

  • 服务器自动重试最多3次,并采用指数回退
  • 如果您在工具响应中看到这一点,则重试已用尽——请等待30秒,然后重试

Session not found or expired (SSE模式)

  • SSE会话已过期(1小时TTL)或服务器已重新启动
  • 重新打开 /sse 在大多数情况下,MCP客户端会自动重新连接

工具输入上的Zod验证错误

  • 代理传递了错误的类型(例如。 "100" 而不是 100 金额)
  • 所有金额字段都使用 z.coerce.number() 因此接受字符串数字
  • 如果看到此情况,请检查错误消息中的确切字段名,并修复代理提示

安全

  • API密钥从不出现在日志、错误消息或堆栈跟踪中
  • 事务PIN是请求范围的。从未存储、缓存或记录
  • Zod验证在接触SDK之前运行。无效输入立即被拒绝

许可证

麻省理工学院