
Higress 配置驱动 MCP Server 实战Shebao Tools 社保、公积金、个税与工伤计算工具【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress本文以 Higress 仓库中的mcp-shebao-toolsMCP Server 为例完整解析一个纯配置驱动REST-to-MCPMCP Server 的设计与落地它不编写任何 Go 代码仅凭一份mcp-server.yaml就将社保、公积金、残保金、个人所得税、工伤赔付与工亡赔付等 17 类计算服务转化为 AI 可直接调用的 MCP 工具。读完本文你能掌握 REST-to-MCP 配置格式的每个字段含义server、tools、args、requestTemplate、模板变量的渲染机制以及知识库导入与 MCP Client 集成等完整操作步骤并能照此为任意 REST API 编写同类 MCP Server。一、这是什么一个无需写代码的 MCP Servermcp-shebao-tools是一个模型上下文协议MCPServer 实现集成了社保、公积金、残保金、个税、工伤赔付和工亡赔付的计算功能。它的目录结构非常简洁只包含 4 个文件plugins/wasm-go/mcp-servers/mcp-shebao-tools/ ├── README.md # 英文说明文档 ├── README_ZH.md # 中文说明文档 ├── city_data.xls # 城市数据知识库文件 └── mcp-server.yaml # 核心REST-to-MCP 工具定义与 amap-tools 这类需要用 Go 语言实现Description()、InputSchema()、Create()、Call()四个方法的传统 MCP Server 不同mcp-shebao-tools完全没有 Go 源码。它依赖的是 Higress 内置的REST-to-MCP 能力在插件配置中用 YAML 声明工具的名称、描述、入参和请求模板网关即可自动把 REST API 转成 MCP 工具供 AI 助手调用。这一机制实现在 rest_server.go 中且“内置于所有 MCP server可与 all-in-one 插件配合使用”见 MCP Server 实现指南。从能力上看该 Server 覆盖五大类计算场景社保与公积金输入城市与薪资信息返回缴费明细残保金残疾人就业保障金输入企业员工数量与平均薪资返回应缴金额与优化建议个人所得税输入工资/劳务报酬返回应缴税额工伤赔付输入伤残等级与薪资信息返回各项赔付金额工亡赔付输入相关城市与工资信息返回赔偿金。二、工具全览17 个 MCP 工具及其用途README.md 与 mcp-server.yaml 中列出的工具清单如下按 README 编号工具名功能getCityCanbaoYear根据城市编码查询该城市缴纳残保金的年份getCityShebaoBase根据城市编码和年份查询残保金缴纳基数calcCanbaoCity计算该城市推荐雇佣残疾人人数和节省费用getCityPersonDeductRules查询工资薪金个税专项附加扣除规则calcCityNormal根据工资计算该城市个税缴纳明细calcCityLaobar计算一次性劳务报酬应缴纳税额getCityIns根据城市ID查询该城市社保和公积金缴费信息calcCityYearEndBonus计算全年一次性奖金应缴纳税额getCityGm计算该城市工亡赔偿费用getCityAvgSalary根据城市ID查询该城市上年度平均工资getCityDisabilityLevel根据城市ID查询该城市伤残等级getCityNurseLevel根据城市ID查询该城市护理等级getCityCompensateProject查询所有工伤费用类型getCityInjuryCData查询工伤费用计算规则getCityCalcInjury根据城市ID和费用类型项计算工伤费用getshebaoInsOrg查询指定城市社保政策calculator计算该城市社保和公积金缴纳明细需要留意两处文档与配置的事实差异以 mcp-server.yaml 实际内容为准README 清单中列出了calcCityYearEndBonus全年一次性奖金计税但当前 YAML 中并未定义该工具实际生效的工具为 16 个calcCityLaobar的描述是“计算一次性劳务报酬应缴纳税额”但其requestTemplate.url指向的是/agent/tools/shebao/getInsOrg路径与getCityIns、getshebaoInsOrg共用同一后端接口。从源码结构看这几个查询类工具复用了同一个社保政策查询端点实际劳务报酬计税可能需要后端依据参数自行路由部署前建议以真实调用验证为准。三、mcp-server.yaml 配置全解析整个 Server 的行为完全由 mcp-server.yaml 决定其结构分为serverServer 元信息与tools工具列表两大块。3.1 server 段名称与鉴权凭据server: name: shebao-tools-api-server config: apikey: nameMCP Server 的名称本例为shebao-tools-api-server。按 MCP Server 实现指南 的说明name字段是系统识别并路由请求到目标 MCP Server 的依据必须与加载侧使用的名称完全一致config.apikey第三方后端服务agent-tools.jrit.top的 API 密钥占位符。所有工具的请求模板都通过{{.config.apikey}}引用它密钥因此集中管理、不出现在工具参数中避免了密钥被 AI 侧透传泄露。3.2 tools 段以 calcCityNormal 为例的参数定义calcCityNormal根据工资计算该城市个税缴纳明细是参数最多的工具最能体现参数声明的写法- name: calcCityNormal description: | 根据工资计算该城市个税缴纳明细。 - 输入税前工资、城市名称、城市编码、城市ID等信息。 - 考虑社保、公积金、专项附加扣除等因素。 - 返回个税缴纳明细。 args: - name: salaryPay description: 税前工资 type: integer required: true - name: areaName description: 城市名称 type: string required: true - name: areaCode description: 城市编码 type: string required: true - name: areaId description: 城市ID type: integer required: true - name: sbFlag description: 是否缴纳社保 type: integer required: false # ……其余可选参数gjjFlag、sbCode、sbBase、gjjCode、gjjBase、 # znjyCount子女教育数量、znjyCode子女教育扣除方式、 # zfzjCode住房租金、zfdkCode住房贷款利息、 # jxjyCode继续教育、sylrCode赡养老人、sylrFee赡养老人数量、 # yyzhCount三岁以下婴幼儿照护数量、yyzhCode婴幼儿照护扣除方式、 # avgMonthYanglaoFee平均每月个人养老金 requestTemplate: argsToUrlParam: true url: https://agent-tools.jrit.top/agent/tools/geshui/calcNormal?jr-api-key{{.config.apikey}} method: POST headers: - key: Content-Type value: application/json参数声明的要点type支持string、integer、number、object等 JSON Schema 类型。如工伤计算工具getCityCalcInjury的initInjuryCYiLiaoFeiInfo医疗费等十余个费用项均为object类型嵌套入参required: true/false决定 AI 端调用时的必填校验本例中几乎所有工具都要求“城市三元组”areaName、areaCode、areaId作为必填项以精确定位到城市政策数据description直接写入 MCP 工具的 inputSchema 描述中AI 依赖这些中文描述决定传参因此描述质量直接影响工具调用成功率。3.3 各工具入参速查结合 YAML 定义各工具的必填参数整理如下工具必填参数calcCityNormalsalaryPay、areaName、areaCode、areaIdcalculatorareaName、areaCode、areaIdcalcCityLaobarlaborPay劳务报酬calcCanbaoCityareaName、areaCode、areaId、totalPeople年平均员工数、avgWage年员工平均月薪、insYear残保金缴交年份、minWage残疾人月薪、shebaoBase残疾人社保缴纳基数getCityCanbaoYearareaCodegetCityShebaoBaseareaCode、insYeargetCityIns/getshebaoInsOrgareaIdgetCityAvgSalary/getCityDisabilityLevel/getCityNurseLevelareaIdgetCityCompensateProject/getCityPersonDeductRules无入参getCityInjuryCDataareaId、injuryCDisabilityLevel伤残等级、injuryCNurseLevel护理级别getCityGmareaId、areaName、areaYearAverageSalary上年度月平均工资、avgSalary职工平均工资getCityCalcInjuryareaId、areaName、areaAverageWageAmount、injuryCDisabilityLevel、injuryCNurseLevel、workerAverageWageAmount、initInjuryCYiLiaoFeiInfo医疗费另有停工留薪期工资、评残前后生活护理费、一次性伤残/工伤医疗/伤残就业补助金、伤残津贴、康复费、辅助器具费等 11 个可选费用项3.4 requestTemplate请求如何被构造每个工具末尾的requestTemplate描述了“MCP 工具调用如何变成一次真实的 HTTP 请求”全部 16 个工具遵循统一模式requestTemplate: argsToUrlParam: true # 将工具参数拼接到 URL 查询参数 url: https://agent-tools.jrit.top/agent/tools/...?jr-api-key{{.config.apikey}} method: POST headers: - key: Content-Type value: application/jsonargsToUrlParam: true把 AI 传入的所有工具参数自动拼到 URL 查询串上{{.config.apikey}}Go template 变量取自server.config段渲染后追加为jr-api-key查询参数唯一的例外是getCityPersonDeductRules其headers: []为空列表且不设置 Content-Type。这些字段并非随意约定而是由 REST-to-MCP 引擎的结构体精确解析。在 rest_server.go 中可以确认对应定义// RestToolRequestTemplate defines how to construct the HTTP request type RestToolRequestTemplate struct { URL string json:url Method string json:method Headers []RestToolHeader json:headers Body string json:body ArgsToJsonBody bool json:argsToJsonBody,omitempty // Use args as JSON body ArgsToUrlParam bool json:argsToUrlParam,omitempty // Add args to URL parameters ArgsToFormBody bool json:argsToFormBody,omitempty // Use args as form-urlencoded body Security SecurityRequirement json:security,omitempty } // RestToolResponseTemplate defines how to transform the HTTP response type RestToolResponseTemplate struct { Body string json:body PrependBody string json:prependBody,omitempty // Text to insert before the response body AppendBody string json:appendBody,omitempty // Text to insert after the response body }由此可知本例配置的能力边界YAML 中只用了ArgsToUrlParam此外引擎还支持ArgsToJsonBody参数转 JSON 请求体、ArgsToFormBody转 form-urlencoded 请求体以及responseTemplate用 GJSON Template 把后端 JSON 响应渲染成对 AI 友好的文本。shebao 系列工具未配置responseTemplate意味着后端返回的 JSON 会原样作为工具结果交给 AI 消费——对于结构化计算结果金额、明细这种用法是合理的。参数本身还支持声明式定位。rest_server.go 中RestToolArg的Position字段注释写明参数可放置在query、path、header、cookie、body五个位置Type字段遵循 JSON Schema 类型string、number、integer、boolean、array、objectRequired、Default、Enum、Items数组元素、Properties对象属性均可声明。mcp-shebao-tools 借助argsToUrlParam全局置为 query 位置属于最简配置若后端接口要求参数放在 body 或 header 中可改用上述字段精细控制。此外同文件中的RestMCPConfig还定义了SecuritySchemes、DefaultDownstreamSecurity客户端到网关的默认鉴权与DefaultUpstreamSecurity网关到后端的默认鉴权三项安全配置shebao 配置未启用其上游鉴权完全靠 URL 中的jr-api-key完成。四、使用步骤以下步骤综合了 README.md 与 README_ZH.md 的教程内容。4.1 获取 API Key后端计算服务agent-tools.jrit.top即“聚仁人力”需要凭据访问注册账号README_ZH 给出的注册地址为 check.junrunrenli.com联系服务方开通 MCP 社保计算工具服务并说明账号获得 API Key。4.2 导入城市知识库将 city_data.xls 导入你的 AI 应用知识库。该文件是各工具areaId/areaCode/areaName参数的取值来源——AI 需要先从知识库检索出目标城市的编码与 ID才能正确填充计算工具的必填参数。这是“RAG 工具调用”组合的典型形态知识库提供静态城市数据MCP 工具提供动态计算能力。4.3 配置 API Key在 mcp-server.yaml 的server.config段将apikey字段设置为有效的 API 密钥server: name: shebao-tools-api-server config: apikey: 你的API密钥4.4 集成到 MCP Client在 Higress 控制台/用户的 MCP Client 界面将上述配置添加到 MCP Server 列表。按 MCP Server 实现指南 的插件配置约定配置中还可以附加allowTools白名单只放行指定工具server: name: shebao-tools-api-server config: apikey: 你的API密钥 allowTools: - calculator - calcCityNormal配置生效后MCP Client 即可通过标准 MCP 协议发现这 16 个工具tools/list并在对话中按需调用tools/call例如问“月薪 20000 在北京要缴多少社保和公积金”时AI 可先查知识库取得北京的城市编码再调用calculator工具获得缴费明细。五、适用前提与注意事项版本要求MCP server 插件需要 Higress 2.1.0 及以上版本见 MCP Server 实现指南外部服务依赖所有计算请求最终发往第三方后端 agent-tools.jrit.top需要有效的jr-api-key且网络可达该地址apikey留空时工具调用会携带空密钥调用将失败文档一致性README 清单中的calcCityYearEndBonus未在当前 YAML 中实现如需要全年一次性奖金计税功能需参照现有条目在tools中补充定义参照 MCP Server 实现指南 的 REST-to-MCP 配置格式为对应 REST 端点编写requestTemplate即可无需写代码扩展性REST-to-MCP 引擎内置于所有 MCP server同样适用于 all-in-one 插件的多 Server 合并部署模板语法GJSON Template支持完整的 GJSON 路径语法与 Sprig 函数集可用于更复杂的请求构造与响应改写具体能力边界可参考 rest_server.go 及其测试 rest_server_test.go。六、小结mcp-shebao-tools是 Higress “配置即 MCP Server”理念的一个完整范例一份 YAML 定义了 16 个工具的名称、参数 Schema 与请求模板配合一个城市数据知识库文件就把社保公积金、残保金、个税、工伤与工亡赔付这五类专业性强的计算服务纳入了 AI 的工具调用体系。其实现路径——server.name对齐路由、config.apikey集中管理凭据、args声明入参、argsToUrlParam构造请求——对任何已有 REST API 想要接入 MCP 生态的团队都是可直接照搬的低成本模板。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考