Higress 配置驱动 MCP Server 实战:Shebao Tools 社保、公积金、个税与工伤计算工具

发布时间:2026/11/10 15:11:56

Higress 配置驱动 MCP Server 实战:Shebao Tools 社保、公积金、个税与工伤计算工具 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),仅供参考
延伸阅读

更多相关文章

2026/11/9 23:36:10

Kata Containers在Google Compute Engine上的安装指南

Kata Containers在Google Compute Engine上的安装指南 【免费下载链接】kata-containers Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like container…

2026/11/10 15:14:29

TypeScript工程化基座:Nx+semantic-release一体化实践

1. 项目概述:一个被严重低估的 TypeScript 工程化能力基座“agent-skills”这个名称乍看像某个 AI 智能体的技能插件库,但结合热搜词agent-skills、TypeScript、node、Nx、semantic-release,再叠加全网高频出现的typescript面试、nx二次开发、…

2026/11/10 15:47:57

三极管静态工作点实测四步法:电压-电流协同验证

1. 这不是教科书里的“理想测量”,而是实验室里真实会冒烟、会跳变、会让人抓狂的实操现场你手头有一块搭好的共射极放大电路板,万用表调到直流电压档,红表笔点在集电极,黑表笔接地——读数是8.32V;再测基极&#xff0…

2026/11/11 7:57:58

电工证戴眼镜吗 全国通用的实操考试关键细节

电工证戴眼镜吗 全国通用的实操考试关键细节 实操考试心里没底怕挂科,尤其是对视力有要求的项目,比如电工证考试,戴眼镜会不会影响评分?这是很多考生在备考时最关心的问题之一。尤其是在洛阳涧西区,劳务班组负责人在安排电工岗位人员时,经常遇到员工因…

2026/11/11 7:57:58

特种工证要年审吗 怎么报名才不白交培训费

特种工证要年审吗 怎么报名才不白交培训费 怕考不过白交培训费?特种工证不仅要年审,报名前这些细节你必须知道。 特种工证要年审吗?这个问题在很多打算考证或者已经拿到证的人中都很常见。实际上,特种作业操作证的有效期和复审周期,直接关系到你能不能…

2026/11/11 7:57:58

年审后电工证贴了什么证丢了怎么补办

电工证年审后贴了什么?真实经历告诉你怎么补办 证书过期了不知道怎么复审延期,我身边不少同行都遇到过这个问题,尤其是那些刚拿到证的新手电工,对年审流程一知半解,一不小心就错过了复审时间。今天就用我这些年的真实经历,和大家聊聊【年审后电工证贴了…

2026/11/11 7:57:58

商河县学电工证怎么考不挂科 网上查询成绩有技巧

商河县学电工证怎么考不挂科 网上查询成绩有技巧 实操考试心里没底怕挂科,这是很多商河县学员在报考电工证时的普遍担忧。尤其是在高压电工证、低压电工证等实操内容占比高、操作规范要求严的考试中,一次失误就可能导致整场考试失败。但好消息是,现在通过…

2026/11/11 7:57:58

西乡附近考电工证多少钱,学历不高也能考?别急,看这篇就够了

西乡附近考电工证多少钱,学历不高也能考?别急,看这篇就够了 你是不是也这样, 学历不高怕报不上名 ,担心自己连报名资格都没有,白白浪费时间和精力?别担心,今天就给你讲清楚, 西乡附近考电工证多少钱 ,以及那些你必须知道的报考真相。…

2026/11/11 7:52:58

电工作业培训记录表值不值得考?实操考试心里没底怕挂科怎么办?

电工作业培训记录表值不值得考?实操考试心里没底怕挂科怎么办? 实操考试心里没底怕挂科,这事儿我太懂了。去年我表弟考电工证,光是培训记录表就填了三遍,最后还是因为一个细节没注意被退回,差点错过了考试。很多人和他一样,对电工作业培训记录表这个东…

2026/11/10 8:12:38

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/11 0:02:26

考低压电工证通过率考试真题与备考技巧

低压电工证通过率高不高?学历不高也能考,值不值得考? 你是不是总听说电工证能帮你找高薪工作,但又担心自己学历不够,考不上?其实,低压电工证考试门槛并没有你想象中那么高,关键是方法对不对。这篇文章就告诉你, 考低压电工证通过率到底有多高 ,…

2026/11/11 0:02:26

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名 你是不是也和我一样,刚毕业就听说低压电工证学时必须达标才能上岗?可一打听,发现报名机构五花八门,价格参差不齐, 不知道去哪报名怕被中介坑…

2026/11/10 20:08:15

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑