内容
# MCP 退款审批服务器
一款 **MuleSoft 4** 应用,暴露一个 **模型上下文协议(MCP)** 工具,供 AI 代理处理客户退款请求,并为高价值交易提供 **人工审批**。
基于 MuleSoft MCP 连接器,使用可流式 HTTP 传输构建。
---
## YouTube 教程
在这里观看完整的操作指南:
<a href="https://www.youtube.com/watch?v=Khh0RJ8HleQ" target="_blank" rel="noopener noreferrer">
<img
src="https://img.youtube.com/vi/Khh0RJ8HleQ/maxresdefault.jpg"
alt="观看 YouTube 视频"
width="720"
/>
</a>
---
## 概述
**MCP 退款审批服务器** 是一个 Mule 应用,连接 AI 代理系统和人工审核员,用于退款处理。
它暴露一个名为 `issue_refund` 的 MCP 工具,该工具:
1. **验证** 退款资格并检查重复退款。
2. **评估风险** 基于交易金额和风险标志。
3. **自动审批** 标准低价值退款(≤ 50,000 单位)。
4. **暂停人工审批** 高价值或高风险退款。
5. **执行或拒绝** 退款基于审核员的决定。
6. **失败关闭** 如果审批超时、审核员拒绝或发生意外错误。
### 关键功能
| 功能 | 详情 |
| ---------------------- | ----------------------------------------------------------- |
| **协议** | 模型上下文协议(MCP)通过可流式 HTTP |
| **传输** | HTTP POST 和服务器发送事件(SSE) |
| **人工审批** | MCP 诱导高价值退款 |
| **审批阈值** | `50,000` 单位,可配置 |
| **风险检测** | 自动高风险标志,金额大于 `100,000` |
| **超时** | `120` 秒诱导窗口 |
| **故障保护** | 无明确审批不发放退款 |
---
## 架构
```text
┌────────────────────────────────────────────────────────────────────┐
│ AI 代理 / MCP 客户端 │
│ (Claude, Copilot, 自定义 AI, Postman) │
└───────────────────────────┬────────────────────────────────────────┘
│ MCP 可流式 HTTP
│ POST http://localhost:8081/mcp
▼
┌────────────────────────────────────────────────────────────────────┐
│ MCP 退款审批服务器 (Mule 4) │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌────────────────────────┐ │
│ │ 阶段 1 │ │ 阶段 2 │ │ 阶段 3(条件) │ │
│ │ MCP 工具 │──▶│ 验证 & │──▶│ 人工审批 │ │
│ │ 监听器 │ │ 风险检查 │ │ 诱导 │ │
│ │ issue_refund│ │ │ │ (金额 > 50,000) │ │
│ └─────────────┘ └─────────────┘ └────────────────────────┘ │
│ │ │
│ ┌─────────────┐ │ │
│ │ 阶段 4 │◀─────────────┘ │
│ │ 执行或拒绝 │ │
│ │ 退款 │ │
│ └──────┬──────┘ │
└───────────────────────────┼────────────────────────────────────────┘
│ HTTPS POST /api/v1/refunds
▼
┌────────────────────────────────────────────────────────────────────┐
│ 下游退款 API │
│ your-refund-api-host.example.com │
└────────────────────────────────────────────────────────────────────┘
```
---
## 前提条件
| 需求 | 版本 |
| ---------------------------- | ---------------------------------------- |
| **Mule 运行时** | 4.11.0 或更高,推荐 4.11.2 |
| **Java JDK** | 17 |
| **Maven** | 3.8 或更高 |
| **Anypoint Studio** | 7.x,可选 |
| **MuleSoft MCP 连接器** | 1.6.0 |
| **MuleSoft HTTP 连接器** | 1.11.3 |
| **Anypoint 平台访问** | 需要用于 Maven 依赖解析 |
---
## 项目结构
```text
mcp-refund-approval-server/
├── src/
│ └── main/
│ ├── mule/
│ │ └── mcp-refund-approval-server.xml ← 主要 Mule 流
│ └── resources/
│ └── config.yaml ← 应用配置
├── pom.xml ← Maven 构建描述符
├── mule-artifact.json ← Mule 运行时元数据
└── README.md
```
---
## 配置
所有运行时配置都在外部化:
```text
src/main/resources/config.yaml
```
```yaml
http:
host: "0.0.0.0"
port: "8081"
mcp:
serverName: "退款审批 MCP 服务器"
serverVersion: "1.0.0"
endpointPath: "/mcp"
elicitationTimeoutSeconds: "120"
refundApi:
host: "your-refund-api-host.example.com" # 运行前更新
port: "443"
protocol: "HTTPS"
basePath: "/api/v1"
refundsPath: "/refunds"
policy:
approvalThresholdAmount: "50000"
```
> 在启动应用前,用下游退款 API 的主机名更新 `refundApi.host`。
---
## 流设计
应用包含一个主要 Mule 流:
```text
issue-refund-flow
```
### 阶段性操作指南
#### 阶段 1 — 接收工具调用
* 名为 `issue_refund` 的 `mcp:tool-listener` 接收来自 MCP 客户端的调用。
* MCP 会话 ID 存储在 `vars.mcpSessionId` 中。
* 传入的退款负载存储在 `vars.refundRequest` 中。
* 存储的负载可用于错误处理程序和审计日志。
#### 阶段 2 — 验证和计算审批标志
DataWeave 2.0 转换计算以下字段:
| 字段 | 逻辑 |
| ------------------- | --------------------------------------------------------------------- |
| `eligibilityCheck` | 初始始终为 `PASS`;替换为资格服务集成 |
| `duplicateCheck` | 初始始终为 `NONE`;替换为订单管理查找 |
| `amountThreshold` | 如果 `amount > 50000`,则为 `EXCEEDED`,否则为 `WITHIN_LIMIT` |
| `riskLevel` | 如果 `amount > 100000`,则为 `HIGH-VALUE REFUND`,否则为 `STANDARD` |
| `riskFlag` | 如果 `amount > 100000`,则为 `true` |
| `policyCheckResult` | `PASS`、`FAIL_INELIGIBLE` 或 `FAIL_DUPLICATE` |
| `requiresApproval` | 如果 `amount > 50000` 或 `riskFlag == true`,则为 `true` |
#### 阶段 3 — 人工审批诱导
仅当以下条件触发此阶段:
```text
requiresApproval == true
```
`mcp:create-elicitation` 组件:
* 向 MCP 客户端发送审批表单。
* 显示订单详情、金额、风险级别、政策结果和退款原因。
* 需要 `decision` 为 `APPROVE` 或 `REJECT`。
* 需要审核员的理由。
* 最多等待 `120` 秒。
* 返回包含审查员操作和内容的 `elicitationResult`。
#### 阶段 4 — 执行或拒绝退款
| 诱导结果 | 结果 |
| -------------------------------------- | --------------------------- |
| `action=ACCEPT` 和 `decision=APPROVE` | 调用下游退款 API |
| `action=ACCEPT` 和 `decision=REJECT` | 退款被拒绝 |
| `action=DECLINE` | 不执行退款 |
| `action=CANCEL` | 不执行退款 |
| `MCP:REQUEST_TIMEOUT` | 不执行退款 |
对于无需审批的低价值退款,应用直接使用以下内容调用下游退款 API:
```json
{
"approvalDecision": "AUTO_APPROVED"
}
```
---
## 决策逻辑
### 审批路由矩阵
| 金额 | 风险标志 | 政策结果 | 路径 | 是否执行退款? |
| --------- | --------: | ----------------- | -------------------------------- | ------------------ |
| ≤ 50,000 | `false` | `PASS` | 自动审批并调用退款 API | ✅ 是 |
| > 50,000 | `false` | `PASS` | 需要人工审批 | ✅ 仅在审批时 |
| > 100,000 | `true` | `PASS` | 需要高价值审批 | ✅ 仅在审批时 |
| 任意 | 任意 | `FAIL_INELIGIBLE` | 立即拒绝 | ❌ 否 |
| 任意 | 任意 | `FAIL_DUPLICATE` | 立即拒绝 | ❌ 否 |
---
## MCP 工具参考
### 工具:`issue_refund`
**描述:**
为客户订单发放退款。该工具验证资格、检查重复、评估风险,并要求人工审批金额超过 `50,000` 单位。
### 输入模式
```json
{
"type": "object",
"properties": {
"orderId": {
"type": "string",
"description": "订单 ID,例如 ORD-10482"
},
"amount": {
"type": "number",
"description": "最小单位的金额,例如印度卢比的派萨",
"minimum": 1
},
"currency": {
"type": "string",
"description": "ISO 4217 货币代码,例如印度卢比",
"pattern": "^[A-Z]{3}$"
},
"reason": {
"type": "string",
"description": "退款原因",
"minLength": 5,
"maxLength": 500
}
},
"required": [
"orderId",
"amount",
"currency",
"reason"
]
}
```
### 输入参数详情
| 参数 | 类型 | 必需 | 约束 | 示例 |
| ---------- | ------ | -------: | ----------------------------------- | ---------------------- |
| `orderId` | 字符串 | ✅ | 非空字符串 | `"ORD-10482"` |
| `amount` | 数字 | ✅ | 最小值:`1` | `25000` |
| `currency` | 字符串 | ✅ | 三个大写 ISO 4217 字符 | `"INR"` |
| `reason` | 字符串 | ✅ | 介于 5 和 500 个字符之间 | `"商品未配送"` |
> **金额注意:** 对于印度卢比,金额以派萨表示。例如,`25000` 表示 ₹250.00,`100000` 表示 ₹1,000.00。
### 工具响应
#### 自动审批退款
```json
{
"status": "SUCCESS",
"message": "INR 25000 的退款已自动审批并成功发放。",
"orderId": "ORD-10482",
"refundId": "corr-abc-123",
"correlationId": "corr-abc-123"
}
```
#### 人工审批退款
```json
{
"status": "SUCCESS",
"message": "INR 75000 的退款已审批并成功发放。",
"orderId": "ORD-20891",
"refundId": "corr-def-456",
"reviewerReason": "由财务团队验证。客户升级。",
"correlationId": "corr-def-456"
}
```
#### 政策拒绝
```text
退款被拒绝。政策:FAIL_INELIGIBLE。订单:ORD-99999
```
#### 审查员拒绝
```text
退款被审查员拒绝。订单:ORD-20891。审查员原因:审查员检测到重复订单。
```
#### 审查员拒绝
```text
未执行退款。审查员操作:DECLINE。订单:ORD-20891。未处理退款。
```
#### 审批超时
```text
退款审批超时。订单:ORD-20891。未处理退款。请重试或升级。
```
---
## 诱导:人工审批
当需要人工审批时,应用使用 **MCP 诱导** 暂停流程,并通过 MCP 客户端界面请求决策。
### 诱导消息格式
```text
需要退款审批 | 订单:ORD-20891 | 金额:INR 75000 |
风险:STANDARD | 政策:PASS | 原因:客户未收到商品
```
### 诱导表单字段
| 字段 | 类型 | 必需 | 选项 |
| ---------------- | ------ | -------: | --------------------- |
| `decision` | 枚举 | ✅ | `APPROVE`、`REJECT` |
| `reviewerReason` | 字符串 | ✅ | 自由文本解释 |
### 诱导操作
| 操作 | 描述 | 退款结果 |
| --------- | ------------------------------------ | ---------------------- |
| `ACCEPT` | 审查员提交审批表单 | 取决于 `decision` |
| `DECLINE` | 审查员关闭审批表单 | 不执行退款 |
| `CANCEL` | 操作被取消 | 不执行退款 |
### 诱导超时
当在 `elicitationTimeoutSeconds` 内未收到响应时,MCP 连接器引发:
```text
MCP:REQUEST_TIMEOUT
```
应用关闭且不发放退款。
---
## 运行应用
### 选项 1:Anypoint Studio
1. 打开 Anypoint Studio。
2. 选择 **文件 → 导入 → Anypoint Studio → 从文件系统导入 Anypoint Studio 项目**。
3. 选择 `mcp-refund-approval-server` 项目文件夹。
4. 用下游退款 API 详情更新 `config.yaml`。
5. 右键单击项目。
6. 选择 **运行方式 → Mule 应用**。
### 选项 2:Maven 命令行
```bash
cd mcp-refund-approval-server
mvn clean package
mvn mule:run
```
### 选项 3:部署打包的 JAR
```bash
mvn clean package -DskipTests
```
可部署的 JAR 在以下位置创建:
```text
target/mcp-refund-approval-server-1.0.0-SNAPSHOT-mule-application.jar
```
### 验证服务器正在运行
```bash
curl -X POST http://localhost:8081/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "TestClient",
"version": "1.0"
}
}
}'
```
响应应包含:
```json
{
"serverInfo": {
"name": "退款审批 MCP 服务器"
}
}
```
---
## API 参考
### 端点
```text
POST http://localhost:8081/mcp
```
### 所需头部
| 头部 | 值 | 描述 |
| ---------------- | ----------------------------------------- | ------------------------------------ |
| `Content-Type` | `application/json` | 请求正文格式 |
| `Accept` | `application/json` 或 `text/event-stream` | 使用 SSE 进行诱导交互 |
| `mcp-session-id` | 初始化后返回的会话 ID | `initialize` 后必需 |
### MCP 协议流程
```text
客户端 服务器
│ │
│── POST /mcp(方法:initialize) ───────────▶│
│◀── 200 OK {result: {serverInfo, ...}} ───────│
│ [设置 mcp-session-id 头部] │
│ │
│── POST /mcp(方法:tools/list) ───────────▶│
│◀── 200 OK {result: {tools: [issue_refund]}} ─│
│ │
│── POST /mcp(方法:tools/call) ───────────▶│
│ 接受:text/event-stream │
│ │
│◀── SSE 事件:诱导请求 ───────────│
│ │
│── POST /mcp(elicitations/respond) ─────────▶│
│◀── SSE 事件:工具结果 ───────────────────│
```
---
## 示例负载
### 1. 初始化会话
```http
POST http://localhost:8081/mcp
Content-Type: application/json
Accept: application/json
```
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {
"elicitation": {}
},
"clientInfo": {
"name": "PostmanMCPClient",
"version": "1.0.0"
}
}
}
```
**响应**
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2024-11-05",
"capabilities": {
"tools": {},
"elicitation": {}
},
"serverInfo": {
"name": "退款审批 MCP 服务器",
"version": "1.0.0"
}
}
}
```
---
### 2. 列出可用工具
```http
POST http://localhost:8081/mcp
Content-Type: application/json
Accept: application/json
mcp-session-id: {{sessionId}}
```
```json
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}
```
---
### 3. 标准退款:自动审批
```http
POST http://localhost:8081/mcp
Content-Type: application/json
Accept: application/json
mcp-session-id: {{sessionId}}
```
```json
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "issue_refund",
"arguments": {
"orderId": "ORD-10482",
"amount": 25000,
"currency": "INR",
"reason": "商品未配送至客户地址"
}
}
}
```
**响应**
```json
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "{\"status\":\"SUCCESS\",\"message\":\"INR 25000 的退款已自动审批并成功发放。\",\"orderId\":\"ORD-10482\",\"refundId\":\"corr-abc-123\",\"correlationId\":\"corr-abc-123\"}"
}
],
"isError": false
}
}
```
### 4. 高价值退款:需要人工审批
```http
POST http://localhost:8081/mcp
Content-Type: application/json
Accept: text/event-stream
mcp-session-id: {{sessionId}}
```
```json
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "issue_refund",
"arguments": {
"orderId": "ORD-20891",
"amount": 75000,
"currency": "INR",
"reason": "客户收到损坏的产品,在升级后请求全额退款"
}
}
}
```
**SSE 诱导请求**
```json
{
"jsonrpc": "2.0",
"id": "elicit-001",
"method": "elicitations/create",
"params": {
"message": "退款审批请求 | 订单:ORD-20891 | 金额:INR 75000 | 风险:STANDARD | 策略:PASS | 原因:客户收到损坏的产品,在升级后请求全额退款",
"requestedSchema": {
"type": "object",
"properties": {
"decision": {
"type": "string",
"enum": ["APPROVE", "REJECT"],
"description": "批准或拒绝此退款"
},
"reviewerReason": {
"type": "string",
"description": "您的决定原因"
}
},
"required": ["decision", "reviewerReason"]
}
}
}
```
---
### 5. 提交诱导响应:批准
```json
{
"jsonrpc": "2.0",
"id": "elicit-001",
"result": {
"action": "accept",
"content": {
"decision": "APPROVE",
"reviewerReason": "已与仓库团队核实。产品确认在运输途中损坏。退款已授权。"
}
}
}
```
**最终工具结果**
```json
{
"jsonrpc": "2.0",
"id": 4,
"result": {
"content": [
{
"type": "text",
"text": "{\"status\":\"SUCCESS\",\"message\":\"INR 75000 的退款已批准并成功发放。\",\"orderId\":\"ORD-20891\",\"refundId\":\"corr-def-456\",\"reviewerReason\":\"已与仓库团队核实。产品确认在运输途中损坏。退款已授权。\",\"correlationId\":\"corr-def-456\"}"
}
],
"isError": false
}
}
```
---
### 6. 提交诱导响应:拒绝
```json
{
"jsonrpc": "2.0",
"id": "elicit-001",
"result": {
"action": "accept",
"content": {
"decision": "REJECT",
"reviewerReason": "订单已通过其他渠道退款。重复退款请求已拒绝。"
}
}
}
```
**最终工具结果**
```json
{
"jsonrpc": "2.0",
"id": 4,
"result": {
"content": [
{
"type": "text",
"text": "退款被评审者拒绝。订单:ORD-20891。评审者原因:订单已通过其他渠道退款。重复退款请求已拒绝。"
}
],
"isError": false
}
}
```
---
### 7. 提交诱导响应:拒绝
```json
{
"jsonrpc": "2.0",
"id": "elicit-001",
"result": {
"action": "decline"
}
}
```
**最终工具结果**
```json
{
"jsonrpc": "2.0",
"id": 4,
"result": {
"content": [
{
"type": "text",
"text": "退款未执行。评审者操作:DECLINE。订单:ORD-20891。未处理退款。"
}
],
"isError": false
}
}
```
---
### 8. 高风险退款:超过风险阈值
```json
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "issue_refund",
"arguments": {
"orderId": "ORD-55001",
"amount": 150000,
"currency": "INR",
"reason": "企业客户请求批量订单取消和全额退款"
}
}
}
```
> 此请求被归类为 `高价值退款`,始终需要人工审批。
---
## 响应模式
### 下游退款 API 请求:自动批准
```json
{
"orderId": "ORD-10482",
"amount": 25000,
"currency": "INR",
"reason": "商品未送达客户地址",
"approvalDecision": "AUTO_APPROVED",
"correlationId": "mule-corr-id-abc123"
}
```
### 下游退款 API 请求:人工批准
```json
{
"orderId": "ORD-20891",
"amount": 75000,
"currency": "INR",
"reason": "客户收到损坏的产品",
"approvalDecision": "APPROVE",
"reviewerReason": "已与仓库团队核实。产品确认损坏。",
"correlationId": "mule-corr-id-def456"
}
```
### 内部验证负载
```json
{
"orderId": "ORD-20891",
"amount": 75000,
"currency": "INR",
"reason": "客户收到损坏的产品",
"validation": {
"eligibilityCheck": "PASS",
"duplicateCheck": "NONE",
"amountThreshold": "EXCEEDED",
"riskLevel": "STANDARD",
"riskFlag": false,
"policyCheckResult": "PASS"
},
"requiresApproval": true
}
```
---
## 依赖项
### 运行时依赖项
| 依赖项 | 组 ID | 工件 ID | 版本 | 类型 |
| ----------------------- | ------------------------- | --------------------- | -------- | ------------- |
| MuleSoft HTTP 连接器 | `org.mule.connectors` | `mule-http-connector` | `1.11.3` | `mule-plugin` |
| MuleSoft MCP 连接器 | `com.mulesoft.connectors` | `mule-mcp-connector` | `1.6.0` | `mule-plugin` |
### 构建依赖项
| 依赖项 | 组 ID | 工件 ID | 版本 |
| ------------------ | -------------------------- | -------------------- | ------- |
| Mule Maven 插件 | `org.mule.tools.maven` | `mule-maven-plugin` | `4.7.0` |
| Maven 清理插件 | `org.apache.maven.plugins` | `maven-clean-plugin` | `3.0.0` |
### 运行时要求
| 属性 | 值 |
| ------------------------ | ------------------------------------------ |
| **Mule 运行时** | 4.11.0 或更高 |
| **Java** | 17 |
| **最低 Mule 版本** | `4.11.0`,在 `mule-artifact.json` 中声明 |
---
## 将 MCP Inspector 用作 MCP 客户端
当前的 MCP Inspector 版本支持 **诱导**。使用浏览器 UI 而不是 `--cli`,因为交互式诱导流程需要基于浏览器的界面。
### 1. 验证 Node.js 版本
```bash
node -v
```
Node.js 版本 `22.7.5` 或更高版本是必需的。
### 2. 启动 MCP Inspector
```bash
MCP_SERVER_REQUEST_TIMEOUT=180000 \
MCP_REQUEST_MAX_TOTAL_TIMEOUT=180000 \
npx @modelcontextprotocol/inspector@0.22.0
```
### 3. 打开 MCP Inspector
在浏览器中打开以下 URL:
```text
http://localhost:6274
```
### 4. 配置连接
| 设置 | 值 |
| ---------- | --------------------------- |
| 传输 | `Streamable HTTP` |
| 服务器 URL | `http://localhost:8081/mcp` |
<img width="815" height="637" alt="MCP Inspector Streamable HTTP configuration" src="https://github.com/user-attachments/assets/9bf7f62e-db65-4da0-ad90-0f1ab616c9e1" />
### 5. 测试诱导流程
1. 点击 **连接**。
2. 打开 **工具** 标签页。
3. 运行 `issue_refund` 工具。
4. 输入高价值退款的有效负载。
5. 审批诱导表单应显示。
### MuleSoft 诱导模式
| 属性 | 类型 | 要求值 / 规则 |
| ---------------- | ------ | ---------------------- |
| `decision` | 枚举 | `APPROVE`,`REJECT` |
| `reviewerReason` | 字符串 | 要求 |
### 验证诱导能力
连接后,打开 **历史记录** 标签页并检查 `initialize` 请求。
请求必须包含一个 `elicitation` 能力。
如果没有:
1. 断开与服务器的连接。
2. 重新连接。
> MCP 能力仅在初始化期间协商。
---
## 扩展应用程序
### 集成实时资格检查
在第 2 阶段 DataWeave 转换中替换占位符逻辑:
```dataweave
var isEligible = true
var existingRefund = false
```
用实际的 API 集成替换这些存根:
```dataweave
var isEligible = true // 调用资格微服务
var existingRefund = false // 查询订单管理系统
```
在转换之前使用 HTTP 请求操作检索实际的资格和重复退款结果。
### 添加更多货币
`currency` 字段接受任何三字符的 ISO 4217 货币代码,例如:
```text
USD
EUR
GBP
INR
```
当前验证模式仅检查格式:
```text
^[A-Z]{3}$
```
### 调整审批阈值
使用配置的阈值而不是硬编码值:
```dataweave
var threshold = ${policy.approvalThresholdAmount} as Number
var requiresApproval: Boolean = (amount > threshold) or riskFlag
```
### 添加审计日志
在每个决策点后添加一个 HTTP 请求、事件发布、数据库写入或消息队列发布,以向您的治理或可观察性平台发送审计事件。
推荐的审计事件包括:
* 收到工具调用
* 验证完成
* 请求批准
* 收到评审者决定
* 退款执行
* 退款拒绝
* 审批超时
* 意外的错误
---
## 故障排除
| 问题 | 可能原因 | 修复 |
| ------------------------------ | ---------------------------------- | --------------------------------------------------------- |
| 启动时出现 `HTTP:CONNECTIVITY` | `refundApi.host` 不可用 | 更新 `config.yaml` 以使用有效的宿主和端口 |
| 未收到诱导 | 错误的 `Accept` 头部 | 为高价值工具调用使用 `Accept: text/event-stream` |
| 会话 ID 错误 | 缺失 `mcp-session-id` | 复制初始化后返回的会话 ID |
| 120 秒后超时 | 评审者未提交响应 | 增加 `mcp.elicitationTimeoutSeconds` |
| Maven 构建失败 | 缺失 Anypoint 凭证 | 将凭证添加到 `~/.m2/settings.xml` |
| 端口 `8081` 已被占用 | 另一个进程正在使用该端口 | 在 `config.yaml` 中更改 `http.port` |
---
## 参考资料
* [MuleSoft MCP 连接器文档](https://docs.mulesoft.com/mcp-connector/latest/)
* [模型上下文协议规范](https://modelcontextprotocol.io/specification)
* [MuleSoft Anypoint 平台](https://anypoint.mulesoft.com)
* [DataWeave 2.0 语言参考](https://docs.mulesoft.com/dataweave/latest/)
* [Mule 4 错误处理](https://docs.mulesoft.com/mule-runtime/latest/error-handling)
* [MuleSoft 综合文档](https://docs.mulesoft.com/general/)
---
*MCP 退款审批服务器 v1.0.0 — 使用 MuleSoft 4 和 MCP 连接器 1.6.0 构建。*
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器