JSON-RPC服务
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-rn88lg3j/json-rpc-tool。
技能介绍
它解决什么问题
JSON-RPC 服务遍地都是:内部工具网关、RPC 中台、各类带 rpc.discover 的 OpenRPC 服务端。但对模型来说,这些服务是黑盒——它不知道服务上暴露了哪些方法、参数长什么样。没有发现机制时,只能猜方法名、猜字段,然后拿到 Method not found 或者结构对不上的返回。
这个技能把「发现 + 调用」做成了两个明确工具,让路由决策留在模型侧,真正的网络请求留在代码侧。
核心能力
scripts.tools.rpc_discover:对指定服务端发起一次 JSON-RPC 调用,请求rpc.discover方法,拿到该服务支持的方法清单。这是 OpenRPC 规范里为 JSON-RPC 服务定义的发现入口。scripts.tools.rpc_call:对任意服务端调用任意 JSON-RPC 方法,只需要给出server、method和字符串化的params。
工作方式
模型是路由层,代码只负责发请求。执行顺序是:
- 先检查 API 密钥。
scripts.config.settings.api_key为空时必须通过 AskUserQuestion 向用户索取,拿到后调用scripts.config.set_api_key(key)落盘。 - 根据用户意图选工具。问「这个服务有哪些方法」走
rpc_discover;要求「用这些参数调某个方法」走rpc_call。 - 提取参数。
params是字符串化的 JSON,需要自行序列化;缺参数时用 AskUserQuestion 追问,不要臆造。 - 以关键字参数调用,例如
scripts.tools.rpc_call(server='...', method='...', params='...')。 - 整理
result["raw"]后展示给用户,同时参考result["success"]和result["message"]判断是否成功。
适用边界与注意点
- API 密钥是硬前置条件。缺少密钥时禁止自行搜索或编造数据,必须先问用户。密钥申请地址为
https://xiaobenyang.com。 - 发现能力依赖服务端确实实现了 OpenRPC 的
rpc.discover。没实现的服务端,这个工具也拿不到方法清单。 - 该技能不做参数类型校验、重试、鉴权头注入或结果 schema 推断。
params的构造完全由调用方负责,传错结构会直接体现为服务端报错。 - 两个工具都只覆盖单个服务端的单次调用,没有批量、并发或长连接复用能力。
使用场景
- 接手一个陌生的JSON-RPC服务,需要先弄清楚它暴露了哪些方法再决定调用方式,用rpc_discover拉取方法清单。
- 已通过rpc_discover拿到方法列表,需要按对方要求的参数结构构造params字符串,调用rpc_call执行具体方法。
- 调用rpc_call返回success为False或message报错,需要查看result["raw"]里的原始返回来定位是参数结构问题还是服务端异常。
- 环境中还没有配置API密钥,首次使用时需要通过询问拿到密钥并用set_api_key保存,否则不能发起任何调用。
适合人员
- 维护内部RPC网关的后端工程师,需要把已有JSON-RPC服务挂进MCP工作流供模型调用。
- 对接第三方OpenRPC规范服务端的集成开发者,需要先发现方法再按参数规范发起调用。
- 给模型编写工具路由逻辑的Agent开发者,需要在rpc_call和rpc_discover之间做意图分流与参数提取。
- 使用MCP客户端调用远程JSON-RPC服务的技术负责人,需要在缺少密钥时按规范引导用户完成配置。