前言¶
在對話式開發環境裏,如果要把「查可售商品 → 建單 → 拿支付鏈接 → 跟充值進度」串成一條可復現流程,常見做法是手寫 HTTP 客戶端、自己維護訂單狀態機,再把接口文檔塞進提示詞。步驟多、字段容易漏,Agent 也很難在 pending / processing 之間做對自動輪詢。
下面介紹 SkillHub 社區 Skill「第三方劵碼自動充值」(座標 @user_68dc3d67/recharge-prod-buy)。它用標準 SKILL.md 描述遠端充值 MCP 的連接方式、工具參數和業務編排,讓支持 Skills 的 Agent 按文檔調用 product_list、order_create、order_get 等工具,而不是每次從零拼接口說明。
這是什麼¶
一句話定位: 面向 dev-programming 場景的 Agent Skill,指導模型通過 Streamable HTTP 連接充值 MCP 服務端點,完成商品檢索、下單支付與訂單狀態查詢。
來源與版本: 社區發佈(community),發佈者 user_68dc3d67,當前版本 1.0.0。SkillHub 頁面標註 requires_api_key=false,即 Skill 本身不要求額外 API Key;實際下單仍走遠端 MCP 與支付鏈路。
解決的問題: 把充值相關 MCP 工具的名稱、參數、返回 JSON 結構,以及「查商品 / 下單 / 追單」三類對話場景寫成固定 playbook,減少 Agent 誤用傳輸層或混淆面值與售價。
核心功能¶
Skill 文檔指向的 MCP 服務端點爲:
https://lychee.thinkarts.cn/ys-mcp-server_prod/mcp
連接時必須使用 Streamable HTTP Transport,文檔明確 不支持 SSE Transport。
已覈實的 MCP 工具如下:
| 工具 | 作用 |
|---|---|
product_list |
分頁查詢已上架商品,可按關鍵詞匹配名稱、品牌、分類、顯示名、第三方產品編碼 |
product_get |
按 product_id 查詢單個商品詳情 |
order_create |
爲指定商品與數量創建充值訂單,返回微信、支付寶支付鏈接;同一賬號 + 商品 + 數量的 pending 訂單在 10 分鐘內複用 |
order_get |
按 32 位 order_id 查單;pending 時自動查支付狀態,支付成功後觸發第三方充值;processing 時自動查第三方充值狀態 |
返回格式統一爲 {"success": true/false, "data" 或 "error": ...}。文檔還說明:charge_type 爲 1 表示直充、2 表示卡密;下單金額以 selling_price × quantity 爲準,而非面值 face_value。
安裝與啓用¶
安裝 SkillHub CLI¶
若尚未安裝,可先檢查版本:
command -v skillhub && skillhub --version
未安裝時可按 SkillHub 安裝文檔執行(完整安裝示例):
curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash
安裝本 Skill¶
安裝時必須用 --dir 指向當前 Agent 的 skills 目錄,否則默認落在 ./skills/ 可能不會被識別。官方頁面給出的安裝提示爲:參考 https://skillhub.cn/install/skillhub.md,安裝 @user_68dc3d67/recharge-prod-buy。
CLI 等價命令(skillhub search 結果中給出的形式):
skillhub install recharge-prod-buy --namespace user_68dc3d67 --dir <skills 目錄>
常用路徑示例(來自 SkillHub 安裝文檔):
- Cursor:
~/.cursor/skills/ - Claude Code:
~/.claude/skills/ - Codex:
~/.codex/skills/或項目下的.agents/skills/
安裝完成後,按你所用客戶端的要求重啓或刷新 Skills 加載;SkillHub 抓取頁顯示該 Skill 安裝計數爲 0,若本地未生效,優先覈對 --dir 與客戶端 skills 路徑是否一致。
啓用 MCP 側能力¶
Skill 正文是「如何連 MCP、如何調工具」的說明,並不替代你在客戶端裏配置 MCP。若要在代碼中直連同一端點,文檔給出的 Python 示例使用 fastmcp 的 StreamableHttpTransport(見下文典型用法)。在 Cursor 等環境中,通常還需在 MCP 配置裏添加對應 HTTP 端點,具體以客戶端文檔爲準;Skill 未單獨列出 Cursor MCP 的 json 字段名,此處不臆造配置項。
典型用法¶
1. 用 Python 調用 MCP 工具(文檔示例)¶
下列代碼片段來自 Skill 自帶的連接示例,用於封裝 call_tool:
import asyncio, json
from fastmcp import Client
from fastmcp.client import StreamableHttpTransport
async def call_tool(tool_name: str, arguments: dict) -> dict:
transport = StreamableHttpTransport(url="https://lychee.thinkarts.cn/ys-mcp-server_prod/mcp")
client = Client(transport)
async with client:
result = await client.call_tool(tool_name, arguments)
for item in result.content:
if item.type == "text":
try:
return json.loads(item.text)
except json.JSONDecodeError:
return {"raw_text": item.text}
return {"error": "無返回內容"}
2. 場景:搜索商品¶
用戶問「有哪些移動話費充值」時,Agent 按 Skill 編排調用:
product_list(keyword="移動")
返回中 data.products 含 id、name、face_value、selling_price、third_party_code 等字段,用於向用戶展示可選商品。
3. 場景:搜索並下單¶
用戶說「幫我充 50 元移動話費,號碼 13800138000」時,文檔建議順序爲:
product_list(keyword="移動50")定位product_idorder_create(items=[{"product_id": 1, "quantity": 1}], account_no="13800138000")- 將返回的
payment_links中的wxpay_url、alipay_url交給用戶完成支付
account_no 爲充值目標手機號,文檔要求與用戶確認;金額以售價爲準。
4. 場景:訂單狀態追蹤¶
支付或充值進行中時,對同一 order_id 調用 order_get。文檔說明每次調用會自動檢查支付與第三方充值狀態,無需額外輪詢接口。常見狀態組合包括:pending/pending(待支付)、paid/processing(充值中)、paid/success(完成)、paid/fail(失敗需人工處理)等,詳見 Skill 內狀態表。
適用場景與注意¶
適合誰: 需要在 Agent 工作流裏標準化「話費/卡密類第三方充值」查詢與下單話術的團隊;分類爲 dev-programming,側重把 MCP 工具接進對話,而非替代財務或合規審批。
限制與注意:
- 傳輸層必須用 Streamable HTTP,誤用 SSE 會導致連接失敗。
- 下單會產生真實支付鏈接與資金往來,生產使用前需自行評估遠端服務
lychee.thinkarts.cn的合規性與賬號安全。 order_create在 10 分鐘內對相同賬號、商品、數量複用 pending 單,重複發起對話時可能拿到同一訂單而非新單。- SkillHub 統計(抓取資料):評分 100000,下載 867,安裝 0;數據隨 SkillHub 更新可能變化,以頁面爲準。
結尾¶
「第三方劵碼自動充值」把充值 MCP 的端點、四類工具與三類業務編排寫進 SKILL.md,適合作爲 Agent 側的可覈對操作手冊。安裝與座標以 SkillHub 爲準:
- 官方 API 頁:https://api.skillhub.cn/user_68dc3d67/recharge-prod-buy
- SkillHub 展示頁:https://www.skillhub.cn/skills/user_68dc3d67/recharge-prod-buy